![]() |
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); } } |
Se imposti TRISA = 5, i bit 0 e 2 che vuoi usare come uscite sono definiti come ingressi... prova con TRISA = 0! Michele |
Citazione:
Ma anche così ... //#use standard_io(A0) #use fixed_io(a_outputs=PIN_A0, PIN_A2) set_tris_a(00); non funziona lo stesso :( |
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 |
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: |
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: |
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!! |
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... |
Citazione:
Michele |
Citazione:
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 21:09. |
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