| PicManía by RedRaven |
Búsqueda personalizada
|
TÉCNICAS EN C |
||
|
|
|
Esta serie de contenidos titulada Técnicas en C pretende mostrar con ejemplos comentados la forma de implementar ciertos procesos muy usuales durante el uso de los Microcontroladores PIC de las series 16F y 18F. |
|
|
|
|
Midiendo un pulso. 2ª Parte. Tiempo en Alto mediante INTCCP |
|
|
|
|
|
| A.- Conceptos involucrados: |
|
| B.- Técnica a Aplicar: |
|
|
|
|
|
|
| C.-
Implementación en C: |
|
|
setup_ccp2(CCP_CAPTURE_RE); // Configuro captura de 1er flanco de subida flagToggleFlanco = 0; // inicializo el Flag para cambiar de flanco enable_interrupts(int_rda); // Habilito las interrupciones necesarias enable_interrupts(int_ccp2); enable_interrupts(global); |
||
|
| #int_ccp2 void handle_ccp2_int(){ if(flagToggleFlanco==0){ // He recibido Flanco de Subida t1=get_timer1(); // Guardo en t1 el valor de TMR1 al Flanco de Subida setup_ccp2(CCP_CAPTURE_FE); // Configuro para capturar siguiente flanco de Bajada flagToggleFlanco=1; // Indico que el siguiente flanco será de Bajada } else { // He recibido Flanco de Bajada t2=get_timer1(); // Guardo en t2 el valor de TMR1 al Flanco de Bajada setup_ccp2(CCP_CAPTURE_RE); // Configuro para capturar siguiente flanco de subida flagToggleFlanco=0; // Indico que el siguiente flanco será de Subida set_timer1(0); // Reinicio TMR1 if(flagHayDatos==0){ // Si los datos anteriores han sido procesados ... flagHayDatos=1; // Indico que ya hay nuevos datos de flancos para calcular } } } |
||
|
| D.- Ejemplo funcionando: |
|
|
|
|
Esta página se modificó el 27/12/2008
|