Programar el PIC24F08KA101

Hola a todo el mundo!

Estoy realizando mi Proyecto Final de Carrera, el cual consta de 2 placas que se comunicarán mediante ZigBee.

En una de ellas quiero obtener información de un sensor de temperatura y un detector de luminosidad a través del PIC24F08KA101. He conseguido que el ICD2 me reconozca el dispositivo y le he grabado un programa que simplemente enciende 2 Leds de manera intermitente. El problema es que el programa lo hago para que el ciclo se haga cada 500 ms, pero el circuito lo hace cada 6 seg. Incluso variando el delay, sigue haciéndolo cada 6 seg.

Alguien sabe si este micro tiene algún registro especial que he de tocar?? He estado mirando el datasheet y no encuentro que puede fallarme. Ahora mismo no tengo el código aquí, pero en cuanto llegue a casa lo subo!

Gracias a todo el que pueda aportar luz al asunto!!

Saludos!

Hola de nuevo!

Aqui os dejo con el código que tengo hasta el momento. Es simplemente para comprobar el funcionamiento de la placa pero, commo os decia, el tema del tiempo no está correcto. Si alguien puede ayudar lo agradeceré!!

Saludos!


#use rs232(UART1,baud=9600,parity=N,bits=8)

#use i2c(Master,Fast,sda=PIN_B9,scl=PIN_B8)

void main()
{
setup_wdt(WDT_OFF);
setup_timer1(TMR_DISABLED);

while (1) {
output_low (PIN_B14);
output_low (PIN_B15);
delay_ms(250);
output_high (PIN_B14);
output_high (PIN_B15);
delay_ms(250);
}
}


Y aquí el código .h

#include<24F08KA101.h>
#device ICD=TRUE

#FUSES NOWDT //No Watch Dog Timer
#FUSES NOWRTB //Boot block not write protected
#FUSES NOBSS //No boot segment
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOWRT //Program memory not write protected
//#FUSES FRC_DIV
//#FUSES IESO //Internal External Switch Over mode enabled
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
//#FUSES OSCIO //OSC2 is general purpose output
//#FUSES POSCFREQ_H
//#FUSES SOSC_HIGH
//#FUSES NOCKSFSM //Clock Switching is disabled, fail Safe clock monitor is disabled
//#FUSES WPOSTS16 //Watch Dog Timer PostScalar 1:32768
//#FUSES WPRES128 //Watch Dog Timer PreScalar 1:128
//#FUSES NOWINDIS //Watch Dog Timer in Window mode
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOPUT //No Power Up Timer
//#FUSES BORV_LOW
#FUSES MCLR //Master Clear pin enabled
#FUSES ICSP1 //ICD uses PGC1/PGD1 pins
#FUSES DEBUG //Debug mode for use with ICD
//#FUSES DSWDT2147483648
//#FUSES DSWDTCK_LPRC
//#FUSES RTCCK_SOSC
//#FUSES DSBOR
//#FUSES DSWDT

#use delay(clock=48000000)
 
Última edición:
Hola otra vez!!

Tras estar revisando el datasheet, y comparando con la configuración que le di al otro micro (18F4550), he añadido un par de FUSES más, y ahora ya me hace caso cuando le vario el delay. Posteo la modificación, por si alguien se encuentra en mi misma situación!!

#FUSES NOWDT //No Watchdog Timer
#FUSES NOWRTB //Boot block not write protected
#FUSES NOBSS //No boot segment
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOWRT //Program memory not write protected
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES PR //Primary Oscillator
#FUSES NOCKSFSM //Clock Switching is disabled, fail Safe clock monitor is disabled
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES ICSP1 //ICD uses PGC1/PGD1 pins
#FUSES DEBUG //Debug mode for use with ICD

Espero sirva de algo!

Saudos
 
Atrás
Arriba