raf hoy

captura de tiempos en flancos ascendente y descendente

Discussion created by raf hoy on Jan 5, 2012
Latest reply on Jan 20, 2012 by raf hoy

estoy tratando de capturar loss tiempos del tpm1 por input capture del mc9se8e8 de flancos ascendente y descendente y las medidas me dan erroneamente ... capturo los pulsos de un control sony y los datos del tpm1cov no concuerdan con los establecidos,,,
utilizo reloj interno 4mhz y los datosleidos del tpm1cov los envio via serial el pc
solamante estoy leyendo el flanco de subida que es el que contiene el valor tpm1cov
al leer el flanco de subida este tpm1cov contiene valor del tiempo entre el flanco de bajada y el de subida,,
lo que se debe visualizar en el hiperterminan deben ser 2400...1200...600 que son los tiempos de los pulsos que demora el start..en 1 y un cero aproximadamente--

 

estoy trabajando con reloj interno de 4MHZ

GRACIAS

 

 

 

MC9SE8SE8

#include <hidef.h> /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
#include <stdio.h>


void interrupt VectorNumber_Vtpm1ch0 ISR_TPM1C0SC_CH0F( void) {

vvv=TPM1C0SC ;
TPM1C0SC_CH0F = 0;
if(PTAD_PTAD6==0){; //flanco de BAJADA


TPM1CNTH=0;
TPM1CNTL=0 ;
T1=0 ;

} else
T2=TPM1C0V ;

}



void main(void) {

/* CONFIGURACION DEL SOPT1
SOPT1_COPT = 00 disable perro guardian copt es desabilitado;
SOPT1_STOPE =0 stop modo desabilitado //( SOPT1 & 0x3F );
SOPT1_TPM1PS=1 Configuración de pin entrada de input capture pta6 canal 0 */
SOPT1= 0B00000100 ;

/*CONFIGURACION DEL TPM1SC
TPM1SC_TOIE =0 No habilitamos interrupciones por overflow
TPM1SC_CPWMS=0 Todo canal input capture
TPM1SC_PS =2 ;PS=2 División 1/4
TPM1SC_CLKSB =0 Frecuencia para modulo bus 4 mhz ;rate clock
TPM1SC_CLKSA =1 Frecuencia para modulo bus 4 mhz ;rate clock */
TPM1SC=0B00001010 ;


/*CONFIGURACION DEL TPM1C0SC
TPM1C0SC_CH0IE=1 Habilitada interrupción por input capture por canal 0
TPM1C0SC_MS0A= 0 Input capture
TPM1C0SC_MS0B= 0 Input capture
TPM1C0SC_ELS0B=1 Captura flanco de subida y bajada
TPM1C0SC_ELS0A=1 Captura flanco de subida y bajada */
TPM1C0SC=0B01001100 ;

serial transmicion
SCIBDH =0X00 ; /* Hardware interrupts from LBKDIF disabled,
Hardware interrupts from RXEDGIF disabled */
SCIBDL =0X1F ; /* When BR = 1 to 8191, the SCI baud rate = BUSCLK/(16×BR).
See also BR bits in */
SCIC1 =0X00 ; /*RxD and TxD use separate pins,USO NORMAL.
Provided LOOPS = 1, Rsrc=0 selects internal loop;
Normal- start + 8 data bits (LSB first) + stop.
No hardware parity generation or checking.Even parity.*/
SCIC2 =0X0C ;/*Hardware interrupts TDRE,TC,RDRF,IDLE disableds.


for(; {


asm wait;//modo de bajo consumo

DIEZMIL= T2/10000+48;
AUX= T2%10000;
MIL= AUX/1000+48;
AUX2= AUX%1000;
CENTENAS= AUX2/100+48 ;
AUX3=AUX2%100;

DECENAS = AUX3/10+48;
UNIDADES = AUX3%10+48;

SCID=DIEZMIL;
while(!(SCIS1 &0X80));
SCID=MIL;
while(!(SCIS1 &0X80));
SCID=CENTENAS;
while(!(SCIS1 &0X80));
SCID=DECENAS;
while(!(SCIS1& 0X80));
SCID=UNIDADES ;
while(!(SCIS1& 0X80));


SCID= 10;
while(!(SCIS1& 0X80));
SCID= 13;
while(!(SCIS1& 0X80));
}
}

Outcomes