Buenas, estoy intentando hacer parpadear un led cada 2 segundos en cualquier puerto de un dspic30f4013, usando una interrupcion interna.
Estoy programando en ccs. el codigo va mas o menos asi.
#include <30F4013.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES CKSFSM //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES NOBROWNOUT //No brownout reset
#device ICSP=1
#use delay(clock=32MHz,crystal=8MHz)
#define LED PIN_A11
#bit RB7=0x06.7 //Identificador para el bit RB7
#INT_TIMER1
void timer1_isr(void)
{
RB7=~RB7; //Togle RB7
set_timer1(0x0BDC);//carga del TMR1
}
void main()
{
set_tris_b(0b01111111); //configura RB7 como salida el resto como entrada
RB7=0;//Inicializo RB7
setup_timer1(TMR_INTERNAL | TMR_DIV_BY_1, 2);
enable_interrupts(INT_TIMER1);
enable_interrupts(INTR_GLOBAL);
set_timer1(0x0BDC);//Carga del TMR1
while(true);//Bucle infinito hasta interrupción
}
Lo he hecho con el wizard y añadiendo ejemplos qu encuentro x la red, pero me quedan muchas dudas ya que soy muy novato. como encontre el ejemplo fue de un pic, nose si estara bien, ya que no logro cambiar al pin que quiero x ejemplo el A11 intente con un define (#define LED PIN_A11) pero me da error a la hora de usarlo, como podria cambiar RB7 por el pin que quiero A11, ya que en el ejemplo viene la direccion es del pin rb7 (#bit RB7=0x06.7 //Identificador para el bit RB7) he buscado en el datasheet del dspic pero no encuentro como saber cual seria la direccion del puerto A11 estoy muy verde. por que no simplemente puedo usar el define y cambiar RB7 por LED.
Otra pregunta es cual seria la direccion del timer1 en el dspic ya que no la encuentro para poder cambiarla en el codigo ( set_timer1(0x0BDC);//carga del TMR1).
y de donde sacan esta direccion ( set_tris_b(0b01111111); //configura RB7 como salida el resto como entrada) para saber cual debo poner si uso el pin A11.
Cualquier ayuda les agradezco que llevo dias buscando x la web y solo veo ejemplos de pic mas no de dspics. Y debo usar ccs.