Hola muchachos, me he comprado el libro de Angulo "Microcontroladores Avanzados dsPIC" y es un buen libro, explican en una forma clara los módulos y como funciona un dsPIC pero tiene un problema los ejemplos están en asembler, pero igual se los recomiendo.
He estado revisando los timer, y he cojido un ejemplo pequeño de microchip, que utiliza el timer1, como temporizador síncrono y prescaler de 1:1 para hacer bascular la patita RD1. Sin embargo cuando lo compilo me salen varios errores todos relacionados a la librería Timer.h, no reconoce WriteTimer1(), ReadTimer1(), etc.
Alguien porfavor puede cargar este archivo y hacerlo compilar con el C30, porque no puedo usar el timer.h..?, como se lo usa, o se la llama..?.
El programita es este
#include "p30f4011.h"
#include <timer.h>
unsigned int timer_value; /*valor entero sin signo */
void __attribute__((__interrupt__)) _T1Interrupt(void)
{
PORTDbits.RD1 = 1; /* RD1 en alto */
WriteTimer1(0); /* */
IFS0bits.T1IF = 0; /* Clear Timer interrupt flag */
}
int main(void)
{
unsigned int match_value; /* valor entero sin signo */
TRISDbits.TRISD1 = 0; /* RD1 como salida */
PORTDbits.RD1 = 1; /* RD1 en alto */
/* Habilitando interrupción del timer 1, prioridad 1 */
ConfigIntTimer1(T1_INT_PRIOR_1 & T1_INT_ON);
WriteTimer1(0); /* lo cargamos con cero */
match_value = 0xFFF;
/* configuración del timer1 temporizador síncrono, y prescaler 11 */
/* PR1=match_value, timer1 no funciona en modo espera */
OpenTimer1(T1_ON & T1_GATE_OFF & T1_IDLE_STOP &
T1_PS_1_1 & T1_SYNC_EXT_OFF &
T1_SOURCE_INT, match_value);
/* Wait till the timer matches with the period value */
/* esto hace bascular al RD1 en tiempos síncronos */
while(1)
{
timer_value = ReadTimer1();
if(timer_value >= 0x7FF)
{
PORTDbits.RD1 = 0; /* RD1 en bajo */
}
}
CloseTimer1();
}
/* gracias */