Hola amigos:
Os escribo para ver si alguien me podría ayudar en un problemilla que tengo con la USART. Intento configurar un micro con una PWM y q pueda transmitir en modo Síncrono maestro, al mismo tiempo necesito contar los pulsos que va dando la PWM(La mejor opción creo que seria por interrupción del Timer2).Simulándolo en Proteus en principio la parte de la USART y PWM me funciona bien, pero cuando pongo la interrupción del Timer 2 la USART deja de funcionar(o por lo menos el PIN que da la señal de reloj síncrona). Soy novatillo con el CCS y ando a tortas con él... me da que es porque el proteus para la USART debe de necesitar el vector interrupción y luego yo al poner el del Timer 2 fastidio algo...pero no se...
El codigo es el siguiente: (Si borro la interrupción en negrita, la USART me funciona bien...
)
#include <18F4450.h>
#fuses HSPLL,NOWDT,NOPROTECT,noDEBUG,NOLVP,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)
#use rs232(baud=50k,xmit=PIN_C6, rcv=PIN_C7,bits=8, SYNC_MASTER)
#byte PORTC=0Xf82
#use fast_io (C)
#INT_TIMER2
void interrupcion (void)
{//esto lo pongo por poner alguna linea.Aki en realidad iria la rutina para contar los pulsos
int i;
i=0;
}void main()
{
//activo interrupcion timer2
enable_interrupts(INT_TIMER2);
enable_interrupts(GLOBAL);
//configuro la PWM
set_tris_C(0);
PORTC=0;
setup_ccp1(CCP_PWM_plus_2);
SETUP_TIMER_2(T2_DIV_BY_4,116,1);
Set_PWM1_duty(58);
while(1)
{//envio cada 1s el numero 170
putc(170);
delay_ms(1000);
}
}
Seguro que es una tonteria que soy incapaz de ver, pero no se muy bien como hace el ccs las interrupciones...
muchas gracias de antemano