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. 3ª Parte. Tiempo en Alto mediante INTRB |
|
|
|
|
|
A.- Conceptos involucrados: |
|
B.- Técnica a Aplicar: |
|
|
|
|
|
|
|
|
C.-
Implementación en C: |
|
set_tris_b(0b10000000); // Habilito como entrada RB7 para interrupción RB enable_interrupts(int_rda); // Habilito las interrupciones necesarias enable_interrupts(int_rb); enable_interrupts(global); |
||
|
##int_rb void handle_rb_int(){ estado_portb_actual=input_b(); if ((!bit_test(estado_portb_anterior,4))&& (bit_test(estado_portb_actual,4))){hay_flanco_de_bajada=0;} if(hay_flanco_de_bajada!=0){ // He recibido Flanco de Subida t1=get_timer1(); // Guardo en t1 el valor de TMR1 al Flanco de Subida } else { // He recibido Flanco de Bajada t2=get_timer1(); // Guardo en t2 el valor de TMR1 al Flanco de Bajada 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 } } } |
||
|
Esta página se modificó el 27/12/2008
|