Autor Tema: CCP_2 en modo de disparo especial!  (Leído 2761 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
CCP_2 en modo de disparo especial!
« 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  ;-)

Citar
#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);

}




Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: CCP_2 en modo de disparo especial!
« Respuesta #1 en: 23 de Octubre de 2009, 23:18:33 »
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!
No contesto mensajes privados, las consultas en el foro

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: CCP_2 en modo de disparo especial!
« Respuesta #2 en: 24 de Octubre de 2009, 07:38:57 »
Gracias suky!
Luego ire colocando mas ejemplos de lo que vaya aprendiendo en el CCS!

Saludos

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: CCP_2 en modo de disparo especial!
« Respuesta #3 en: 24 de Octubre de 2009, 11:22:29 »
Bravo Ralf2!!!  :)

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: CCP_2 en modo de disparo especial!
« Respuesta #4 en: 24 de Octubre de 2009, 20:48:29 »
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.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: CCP_2 en modo de disparo especial!
« Respuesta #5 en: 24 de Octubre de 2009, 21:21:22 »
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