|
|
|
![]() |
|||||||
| Arcade | Registrazione | Blogs | Regolamento | Feedback | FAQ | Lista Utenti | Calendario | Segna come Letti |
| Ultimi 5 blog pubblicati su PcTuner Blog | ||||||
|
||||||
![]() |
|
|
Strumenti Discussione | Modalità Visualizzazione |
|
|
#1 |
|
B&M Coasterman
|
F.A.Q. sui PICmicro
Quante volte ci è capitato di perdere la testa per una settimana nella programmazione di un pic, per scoprire che era una fesseria che ci bloccava?
__________________Con questo thread voglio raccogliere le principali f.a.q. riguardanti i PICmicro, con le domande che da tanto ci ponevamo e le risposte ai problemi più svariati in modo da non bloccarci nella stesura del nostro programma (e per evitare i soliti 3d di aiuto ) INDICE 1 Globali 2 Architettura 3 Periferiche 3.1 Input/Output 3.2 Timer 3.3 A/D Converter 4 Link utili 1. Globali Cos'è un PICmicro, per gli amici PIC? Un PIC è un circuito integrato, che al suo interno ha tutta la circuiteria necessaria per far parte della grande famiglia dei microcontrollori. NON è quindi un microprocessore, poiché il microcontrollore ha una serie di periferiche mancanti nel microprocessore. Per una spiegazione più dettagliata, fare riferimento al corso. Ho sentito che si programmano col computer: che linguaggi posso usare? I linguaggi utilizzabili sono molti: si va dall'assembler, al c, basic e tanti altri. Non esiste il linguaggio ideale: ognuno ha i suoi pro e contro. Ad esempio, l'assembler è ostico da imparare e programmare per un newbie, ma ha il vantaggio di essere "gratis", di poter essere trovato in molti source e tutorial e di poter fare applicazioni che con altri linguaggi sarebbe difficile. Il C è una via di mezzo: coniuga la relativa facilità di programmazione con il fatto di trovare qualche compilatore gratis. Qualche, infatti i compilatori più completi sono a pagamento. Il basic invece è il linguaggio più semplice, ma in questo caso nessun compilatore free ci verrà incontro. Ho compilato il mio bel file *.hex, ora come lo inserisco nel PIC? Per poter inserire il nostro file esadecimale nel pic, abbiamo bisogno di un supporto hardware e software. Hardware perché abbiamo bisogno di un programmatore (ludipipo, propic2 clone, ecc), e software come interfaccia per poter usare il programmatore con il nostro pc. I software dipendono in base al programmatore scelto: ce ne sono di universali come ICprog, altri si usano solo con certi programmatori (es: EpicWin funziona solo con programmatori paralleli). 2. Architettura 2.1. Memoria Il pic che sto usando ha 400 byte di ram disponibili, eppure se inserisco tot variabili che non superano "x" bytes il compilatore (o l'assemblatore) mi da errore! La memoria, in un pic, è divisa solitamente in 4 banchi. Questi si selezionano tramite due bit (2^2=4) e ci permettono di sfruttare tutta la memoria. 3. Periferiche 3.1. Input/Output Ho provato in mille modi, ma la porta RA4 del mio 16F84 si ostina a non dare segno di output! La porta RA4 di questo PICmicro, poiché è condivisa con il modulo timer, è di tipo open-collector (a collettore aperto): bisognerà quindi inserire una resistenza di pull-up per usarla come un normale output. Non funzionano tutte le porte x del mio pic. Ah, ha l'adc! Ecco, i pin di entrata dell'adc sono gli stessi della porta x usata come I/O digitale; Bisogna quindi impostare (solitamente tramite il registro ADCON1) i pin voluti come ingresso o uscita digitali, poiché di default sono impostati come ingresso analogico. 3.2. Timer Perché il mio cronometro/orologio/xxx non riesco a farlo preciso preciso? La risposta sarebbe lunghetta, qui. In qualsiasi caso, comunque, c'è qualcosa di errato nel programma che non aggiorna i secondi proprio alla cadenza di 1hz. Ma fin qui ci eravamo arrivati tutti ![]() isogna innanzitutto controllare di NON mettere assolutamente mano al registro TMRx (dove x è il n° del timer) per ridurre il conteggio e adattarlo al proprio quarzo: infatti appena si modifica questo registro, prima di cominciare nuovamente ad incrementarsi passerà qualche ciclo di clock, prezioso per i nostri timings. Se siamo sicuri che il programma sia giusto, c'è anche da chiedersi se il quarzo dia la frequenza giusta. 3.3. A/D Converter Perché quando metto l'output alto a qualche porta il valore dell'adc sballa? Tipico caso di tensione di alimentazione poco stabilizzata (mi è capitato anche con alimentatori perfettamente stabilizzati, ma switching). Spesso succede quando la Vref+ e Vref- sono prese direttamente dal positivo e dalla massa del PICmicro: alzando un pin di output, la tensione di alimentazione del PIC si abbassa (anche di poco), ottenendo quindi letture errate. 4. Link utili - Guida alla programmazione in assembly --> Guida al linguaggio assembly, di Camillo Ferrari - Guida alla programmazione in PICBASIC --> Introduzione al PicBasic, di Massimiliano Pischedda - FiserTek --> Il "best seller" per programmare in C - Pic By Example --> La controparte che insegna l'assembly Ultima Modifica di Matro : 26-03-2007 20.59.51. |
|
|
|
| Advertising | |
|
|
|
|
|
#2 |
|
B&M Coasterman
|
Aggiunti i link e sistemato qualche punto, se avete qualcosa da segnalare lo aggiungerò
__________________![]() |
|
|
|
|
|
#3 |
|
Registered User
|
Ciao Matro,
volevo solo segnalarti che qualche compilatore free di basic c'e' anche se ha dei limiti di codice ed e' il Mikrobasic, tra l'altro c'e' anche il Microc e Micropascal della Mikroelettronica. A presto |
|
|
|
|
|
#4 |
|
Super Moderator
|
Vorresti aggiungere anche le nostre guide?
__________________http://www.pctuner.net/articoli/Pic/...(Parte_Prima)/ http://www.pctuner.net/articoli/Pic/...o_in_PICBASIC/ ![]() ![]() ![]() Tu non sai niente, Jon Snow! |
|
|
|
|
|
#5 |
|
Registered User
|
Sarebbemolto utile aggiungere in queste FAQ un programma di esempio semplicissimo (il classico "hello world"... che in PIC equivale a... far lampeggiare un led), ma presentato nei vari linguaggi: ASM, C, e un paio di BASIC.
__________________Naturalmente, anche se semplice, il listato dovrebbe essere ampiamente commentato... Io sono 3 giorni che cerco un listato base, ma ne ho trovati una decina diversi, ognuno dei quali "pensa" che sia inutile commentare una parte del listato... per cui alla fine non riesco a capire quali sono le cose fondamentali da fare in un programma di base. Allora, una cosa da fare è impostare la configuration word, e fin qui ok; ma poi i vari "ORG", "INCLUDE", "DEFINE" e "EQU" quand'e' che servono? sempre, mai, a volte.... e a COSA servono?
-- JumpJack --
------------------ Meglio sys 16384 o sys 64738?
|
|
|
|
|
|
#6 | |
|
Registered User
|
Quote:
Comunque queste FAQ sono fatte per risolvere piccoli dubbi/problemi che possono occorrere agli inizi, non è una guida alla programmazione; piuttosto puoi consultare le millemila guide online (tipo la mia ), o comprarti un libro!!Ultima Modifica di BitBerzerkir : 02-10-2008 20.04.57. |
|
|
|
|
|
|
#7 | |
|
Registered User
|
Quote:
-- JumpJack --
------------------ Meglio sys 16384 o sys 64738?
|
|
|
|
|
|
|
#8 |
|
Registered User
|
un how-to per neofiti
ciao, ho scritto un how-to su come connettere un PIC 16F627
al pc tramite porta seriale. Ho descritto nel dettaglio tutte le connessioni e ho riportato il codice C completo per programmare il PIC. L'articolo è su http://digilander.libero.it/giampow/.../pic_rs232.pdf Ciao Giampaolo |
|
|
|
|
|
#9 |
|
Registered User
|
interessante. Suppongo vada bene anche per 628a?
__________________
-- JumpJack --
------------------ Meglio sys 16384 o sys 64738?
|
|
|
|
|
|
#10 |
|
Registered User
|
sì, dovrebbe andare bene anche per il 16f628A,
le differenze con il 16F627 sono minime (credo che riguardino solo la dimensione della ROM). Comunque in HI-LITE puoi scegliere da interfaccia il pic che usi. Se hai consigli da darmi per migliorare l'articolo, te ne sono grato. Ciao |
|
|
|
|
|
#11 | |
|
Registered User
|
Quote:
E pàoi farebbe sicuramente comodo avere uno stampato della "breadboard", piuttosto che una foto, oppure un elenco delle connessioni usate, perche' dalle foto è quasi impossibile capire come vanno collegati i fili! E poi mi chiedevo se sarebbe possibile realizzare il circuito senza RS-232, visto che per me è impossibile trovarlo senza ordinarlo: magari con una seconda alimentazione, a 12V o quello che serve? Quanto al listato, nella variabile TEST posso inserire quello che mi pare? P.S: Ah, sarebbe anche utile capire come cavolo si usa HI-TIDE... Come tutte le "prospettive" di Eclipse, non si capisce una mazza di come si usa!!!
-- JumpJack --
------------------ Meglio sys 16384 o sys 64738?
Ultima Modifica di jumpjack : 15-03-2009 15.50.59. |
|
|
|
|
|
|
#12 |
|
Registered User
|
Salve a tutta la comunita' ho notato che i link proposti in questo messaggio non mi funzionano, portano a pagina non trovata, sono io che sono imbranato
mi interessava leggere le guide che stavate proponendo sulla programmazione con PicBasic. |
|
|
|
![]() |
Per le vostre immagini su questo forum potete usare PcTunerUp! Iscriviti gratuitamente alla nostra newsletter. |
| Utenti attualmente attivi che stanno leggendo questa discussione: 2 (0 utenti e 2 visitatori) | |
| Strumenti Discussione | |
| Modalità Visualizzazione | |
|
|