Pagina 1 di 1

Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 8 gen 2013, 19:46
da Marcohm
Salve a tutti :D
Ho comprato due PIC12F675 e per testarli ho scritto un semplice programma che consiste nel far lampeggiare un led, ma una volta programmato è attivo solo il pin GP4 che è perennemente a livello logico alto e il programma non viene praticamente eseguito.
Potreste darmi un aiuto? Magari ho errato nella configurazione del PIC.
Per realizzare il progetto uso MPLAB IDE v8.87 e il compilatore HITEC-C.

Codice: Seleziona tutto
#include <htc.h>
#include "delay.h"

__CONFIG(FOSC_INTRCCLK & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF);

void main(void){

GPIO = 0b100000;

while(1){

GP0 = 1;
DelayMs(500);
GP0 = 0;
DelayMs(500);

}
}


Edit TF: Modificato titolo. "PIC12F675" non è un titolo ma la sigla di un microcontrollore.

Re: PIC12F675

MessaggioInviato: 8 gen 2013, 20:01
da AjKDAP
Ti consiglio di leggerti il datasheet per prima cosa.

Vedrai che per usare i pin come uscita digitale devi per prima cosa disabilitare il comparatore con l'istruzione:
Codice: Seleziona tutto
CMCON=7;

poi settare tutti i pin analogici in digitale:
Codice: Seleziona tutto
ANSEL=0;

ed infine ma non meno importante devi impostare adeguatamente il registro TRISIO:
Codice: Seleziona tutto
TRISIO=0;


Ora dovresti essere in grado di usare ogni pin del PIC come uscita digitale e potrai far lampeggiare il tuo led :mrgreen: (a parte il pin GP3 che può essere configurato solamente come MCLR oppure come ingresso digitale).

Ciao

Re: Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 8 gen 2013, 20:13
da Marcohm
Grazie mille Foto UtenteAjKDAP :D
Sei stato molto esaustivo nel rispondere.
Purtroppo i vari errori che ho commesso sono dati dalla superficialità che ho avuto nel leggere il datasheet, in quanto l'ho sfruttato solo per sapere quali bit mettere ad 1 e quali a 0. #-o

Provo e ti do risposte, anche se credo non ce ne sia bisogno. :ok:

Re: Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 9 gen 2013, 12:34
da Marcohm
Buongiorno :)
Ho provato a modificare il programma ma non va ugualmente, ho pure letto il Datasheet, ma niente da fare.
Il programma modificato è questo:
Codice: Seleziona tutto
#include <htc.h>
#include "delay.h"

__CONFIG(FOSC_INTRCIO & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF);

#define LED  GP2

void main(void){

INTCON = 0;
PIE1 = 0;
CMCON = 7;
ANSEL = 0;
TRISIO = 0;
GPIO   = 0;
WPU = 0;
IOC = 0;
ADCON0 = 0;

while(1){

LED = 1;
DelayMs(100);
LED = 0;
DelayMs(100);

}
}


Dove sta l'errore? :(

Re: Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 9 gen 2013, 13:13
da Paolino
Prova a dare una lettura a questo articolo.

Ciao.

Paolo.

Re: Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 10 gen 2013, 18:12
da Marcohm
Ciao Foto UtentePaolino, ho letto il tuo articolo, ho scaricato il nuovo MPLAB e il compilatore XC8, ma non va ugualmente.
Ho compilato il programma che tu hai introdotto nell'articolo, ma non va.

Re: Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 10 gen 2013, 22:31
da Paolino
Fai uno zip del progetto e allegalo qui. Poi vediamo.

Ciao.

Paolo.

Re: Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 19 gen 2013, 18:01
da Marcohm
Ciao, scusatemi se sto rispondendo solo adesso, ma finalmente oggi sono arrivato alla soluzione.
Praticamente non spegnevo il comparatore e il convertitore A/D.
Ho anche scoperto che tra i ragazzi alle prime armi (quale io sono) è il problema più comune.

Grazie per il supporto :)

Re: Problema con programma per lampeggio con PIC12F675

MessaggioInviato: 19 gen 2013, 19:17
da Paolino
Però nel codice originale che ti ho suggerito di guardare c'erano lo spegnimento dei comparatori e del modulo analogico/digitale...

Ciao.

Paolo.