BaroneRosso.it - Forum Modellismo

BaroneRosso.it - Forum Modellismo (https://www.baronerosso.it/forum/)
-   Circuiti Elettronici (https://www.baronerosso.it/forum/circuiti-elettronici/)
-   -   mi arrendo :( (https://www.baronerosso.it/forum/circuiti-elettronici/126326-mi-arrendo.html)

illez 24 marzo 09 18:20

mi arrendo :(
 
Possibile che non mi riesca di far funzionare un programmino così semplice su un PIC?
Modello "hallo world" :wink: accendi e spegni dei led.

la programmazione in circuit ha funzionato al primo colpo (che chiulo :P) unico problema i led collegati non si accendono :(

Mi dite che c...chio c'è di sbnagliato in questo codice?

Uso un pic12F629, il MCLR è collegato con un diodo e una resistenza da 10K di pullup (come da schema per l'ICSP)
Poi ho un led tra la massa e una resistenza da qualche centinaio di ohm che collego ai vari piedini per verificare se si accende e... nisba :( le varie righe commentate sono dei tentativi che ho fatto non conoscendo bene l'effetto delle direttive standard_io e fixed_io
Porca trota :angry:


#include <12F629.h>
#fuses INTRC_IO, NOWDT, NOMCLR, NOBROWNOUT
#use delay(clock=4000000)

//==========================
void main()
{
// #use standard_io(A)
set_tris_a(05);
// #use fixed_io(a_outputs=PIN_A0, PIN_A2)

while(1)
{
output_high(PIN_A0);
output_high(PIN_A2);
delay_ms(500);
output_low(PIN_A0);
output_low(PIN_A2);
delay_ms(500);
}
}

MSchiepp 24 marzo 09 19:43

Se imposti TRISA = 5, i bit 0 e 2 che vuoi usare come uscite sono definiti come ingressi... prova con TRISA = 0!

Michele

illez 24 marzo 09 21:02

Citazione:

Originalmente inviato da MSchiepp (Messaggio 1425917)
Se imposti TRISA = 5, i bit 0 e 2 che vuoi usare come uscite sono definiti come ingressi... prova con TRISA = 0!

Michele

Si, hai ragione. Il codice copiato era una delle prove perché non riesco a capire.

Ma anche così
...
//#use standard_io(A0)
#use fixed_io(a_outputs=PIN_A0, PIN_A2)
set_tris_a(00);


non funziona lo stesso :(

MSchiepp 24 marzo 09 21:28

Non ho capito che micro usi... se usi il 12F629 il rtegistro TRISA non esiste... in ogni modo devi disabilitare il comparatore che ha gli ingressi sui pin che usi (CMCON = 0x07)

Michele

illez 24 marzo 09 22:03

Seguito il tuo consiglio (giustissimo, dovrei leggermi il datasheet :uhm:)
Modificato in:
#include <12F629.h>
#fuses INTRC_IO, NOWDT, NOMCLR, NOBROWNOUT
#use delay(clock=4000000)

//==========================
void main()
{
// #use fast_io(A)
//#use fixed_io(a_outputs=PIN_A0, PIN_A2)
// set_tris_a(00);
setup_comparator(NC_NC_NC_NC); // Turn off the comparators

while(1)
{
output_high(PIN_A0);
output_high(PIN_A2);
delay_ms(500);
output_low(PIN_A0);
output_low(PIN_A2);
delay_ms(500);
}
}


non va lo stesso:

illez 24 marzo 09 22:28

Ho fatto un ultimo tentativo seguendo la discussione riportata qui:

ecco il codice:

#include <12F629.H>
#fuses HS,NOWDT,NOPROTECT,PUT,NOMCLR,BROWNOUT

#byte PORTA = 5

main()
{
setup_comparator(NC_NC_NC_NC); // Turn off the comparators
set_tris_a(0x00);

PORTA = 0x06;

while(1);
}

Provo a collegare il terminale del led ai +5 e funziona (test stupido ma andava fatto); lo collego ai vari pin a0 a1 etc e nisba.

Nemmeno questo va...

rinuncio.

Do foco a questo pic.
:angry:

Mrk89 24 marzo 09 23:04

un consiglio spassionato che ti do, cerca un codice HEX qualsiasi su internet e programma quel PIC, non vorrei che sia il PIC che non va.
Il led lo accendi tramite resistenza o direttamente dall'uscita del PIC?
E poi, CAMBIA COMPILATORE!!

illez 24 marzo 09 23:25

Questa è una prova che farò quanto prima.
Il led lo accendo sul +5 che viene fornito alla basetta dal pickit2.
Uso il compilatore ccs, perché, non va bene? :uhm:
A me sembra buono...

MSchiepp 24 marzo 09 23:56

Citazione:

Originalmente inviato da illez (Messaggio 1426477)
Uso il compilatore ccs, perché, non va bene? :uhm:
A me sembra buono...

Se scarichi l'ultima versione di MPLAB è compresa una versione demo, ma perfettamente usabile per progetti medio piccoli, del compliatore HiTec, molto meglio e ti posso dare più assitenza...

Michele

Mrk89 25 marzo 09 00:04

Citazione:

Originalmente inviato da MSchiepp (Messaggio 1426550)
Se scarichi l'ultima versione di MPLAB è compresa una versione demo, ma perfettamente usabile per progetti medio piccoli, del compliatore HiTec, molto meglio e ti posso dare più assitenza...

Michele

MPLAB non è solo assembler?
Io utilizzo MikroC, per quello che devo fare mi trovo bene!!
Poi per simulare i circuiti prima di crearli utilizzo proteus, programma di simulazione elettronica che implementa anche i PIC ed altri micro controllori


Tutti gli orari sono GMT +2. Adesso sono le 12:13.

Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002