Semplice lampeggio led con 12F683
Ciao a tutti, come da titolo voglio realizzare un semplice lampeggio led sulla porta GP2 di un pic12F683, questo il codice
dovrebbe eseguire all'infinito l'inversione di stato della porta dopo una pausa di circa 500ms ma non so perché la porta resta sempre a livello alto.
Ho controllato con l'oscilloscopio pensando alla routine di ritardo (che peraltro ha sempre funzionato su altri PIC) e in effetti l'uscita è stabile a livello alto.
L'ambiente di sviluppo è MPLAB IDE 8.86 e il programmatore PICkit2, il micro è montato su breadboard al quale è aggiunto solo il led con relativa resistenza limitatrice e alimento per le prove con lo stesso programmatore.
E' la prima volta che programmo questo PIC ho sbagliato forse la configurazione di qualche registro?
- Codice: Seleziona tutto
#include <htc.h>
#include "delay.c"
__CONFIG (FCMDIS & IESODIS & BORDIS & UNPROTECT & MCLRDIS & PWRTEN & WDTDIS & INTIO);
#define _XTAL_FREQ 8MHZ
#define LED GPIO2
void main (void) {
//selezione della frequenza dell'oscillatore interno a 8MHz
OSCCON=0b01110000;
//attendo che l'oscillatore si stabilizza
while(!HTS) {}
TRISIO=0b111111011;
GPIO=0;
ADCON0=0;
OPTION=0b10000011; //GPIO pull-ups disabilitate
INTCON=0b00100000; //disabilitato interrupt globale
while(1){
LED^=1;
DelayMs(250);
DelayMs(250);
}//fine while
}//fine main
dovrebbe eseguire all'infinito l'inversione di stato della porta dopo una pausa di circa 500ms ma non so perché la porta resta sempre a livello alto.
Ho controllato con l'oscilloscopio pensando alla routine di ritardo (che peraltro ha sempre funzionato su altri PIC) e in effetti l'uscita è stabile a livello alto.
L'ambiente di sviluppo è MPLAB IDE 8.86 e il programmatore PICkit2, il micro è montato su breadboard al quale è aggiunto solo il led con relativa resistenza limitatrice e alimento per le prove con lo stesso programmatore.
E' la prima volta che programmo questo PIC ho sbagliato forse la configurazione di qualche registro?
.