TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: RALF2 en 23 de Octubre de 2009, 23:03:58
-
Que tal amigos!
Aqui les coloco un ejemplito que trae un poco de todo para ver si es util :mrgreen:
El programa lo que hace es disparar una interrupcion cada 10ms, lee el adc y muestra su contenido en una lcd ;-)
#include <16F877a.h>
#device adc = 10
#use delay (CLOCK = 4000000)
#fuses XT,NOWDT,NOLVP
#define LCD_ENABLE_PIN PIN_B0
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#include <lcd.c>
#int_ccp2
void mostrar(void)
{
long valor;
valor = read_adc(adc_read_only);
printf(lcd_putc,"%4lu",valor);
lcd_gotoxy(1,1);
set_timer1(0);
}
void main()
{
lcd_init();
ccp_2 = 10000;
setup_ccp2(ccp_compare_reset_timer);
setup_timer_1(t1_internal|t1_div_by_1);
set_timer1(0);
setup_adc(adc_clock_internal);
setup_adc_ports(an0);
set_adc_channel(0);
enable_interrupts(int_ccp2);
enable_interrupts(global);
while(1);
}
-
Excelente ejemplo RALF2!
A modo de información el módulo CCPx configurado en modo evento especial funcionaria como trabaja el timer2 junto a PR2, osea el registro CCPx trabaja como un registro programable de período de 16 bits para el Timer1. Y en el caso del CCP2 aparte de resetear el Timer1 comienza una conversión analógica/digital. :-/
Saludos!
-
Gracias suky!
Luego ire colocando mas ejemplos de lo que vaya aprendiendo en el CCS!
Saludos
-
Bravo Ralf2!!! :)
-
Muy bueno.
Te aconsejaria setear un flag y la conversion y muestreo en LCD hacerla en el main(), de esa forma descargas la rutina de interrupcion bien rapido.
-
Muchas gracias amigos!
Tienes toda la razon MGLSOFT :mrgreen:
LO hice con la intencion de practicar usando el modulo CCP_2, las interrupciones, el ADC y el printf ;-)
Claro en una aplicacion mas real eso seria, como comentas, lo deseable para no detener el programa principal mucho tiempo :mrgreen:
Todavia me falta mucho por aprender del CCS pero mientras mas lo estudio mas me gusta!
Y no he terminado con los ejemplos :shock: pronto subiere otros :-/
Saludos