vorrei imparare a programmare i PIC - BaroneRosso.it - Forum Modellismo

Torna indietro   BaroneRosso.it - Forum Modellismo > Elettronica > Circuiti Elettronici


Rispondi
 
Strumenti discussione Visualizzazione
Vecchio 13 novembre 09, 18:05   #1 (permalink)  Top
User
 
Data registr.: 03-08-2009
Residenza: Pistoia
Messaggi: 279
vorrei imparare a programmare i PIC

ciao a tutti,ho 16 anni e vorrei imparare a progrmmare i pic per gestire varie cosette visto che sono utilizzabili in tanti modi...
con il computer me la cavo abbastanza benino. L'unico linguaggio che conosco (per conosco intendo, ci so scrivere) è l'html e so qualcosa sui css...
so che ci sono 3 diversi linguaggi di programmazione tra i quali il C è il più semplice per un neofita come me. So anche i principianti di solito partono con il pic16f84 giusto? e poi?
quali programmi devo scaricare? mi devo leggere tutte le 88pagine del datasheet di quel pic?
devo seguire una particolare guida?
scusate per la moltitudine di domande, spero rispondiate ad almeno alcune...
grazie 1000!!!
Luca
ilbrunge3D non è collegato   Rispondi citando
Vecchio 15 novembre 09, 13:08   #2 (permalink)  Top
User
 
L'avatar di lucriz
 
Data registr.: 14-02-2008
Residenza: Lauria (PZ)
Messaggi: 339
ciao

se vuoi iniziare coi pic presumo tu abbia almeno le basi dell'elettronica, quindi i componenti di base passivi, reti, filtri, componenti attivi.
Detto ciò, i manuali dei pic sono un tantino complessi per iniziare, presumono che tu abbia già una buona conoscenza di elettronica digitale e dei microprocessori, le conoscenze di una scuola superiore, tipo perito elettronico o informatico vanno benissimo.

Se hai già il bagaglio suddetto puoi iniziare acquistando uno starter kit di quelli che trovi sul sito della microchip, includono demoboard, programmatore e cdrom con tutto il software che serve.

per la programmazione puoi scegliere o l'assembler o il C o il basic. Io ho iniziato direttamente con il C, in quanto già lo conoscevo bene. In ogni caso il C non è semplicissimo come linguaggio.

In alternativa, puoi saltare a piè pari tutta la roba di sopra e inizi con i picaxe, che sono dei pic che si programmano in basic, questi si che sono semplicissimi da imparare. Per info cerca con google.
lucriz non è collegato   Rispondi citando
Vecchio 15 novembre 09, 22:50   #3 (permalink)  Top
User
 
Data registr.: 03-08-2009
Residenza: Pistoia
Messaggi: 279
ciao, grazie della risposta, purtroppo non ho conoscenze da perito elettronico etc perchè come ho già scritto ho solo 16 anni e reti,flitri ,componenti passivi attivi etc li conosco solo perchè mi servivano magari per cavolate vrie, ho fatto ricerchine su guggule me li son comprati e usati ma di altra roba non ne conosco molto..il programmatore ho già visto che me lo posso anche fare..il pic me lo compro e per il link pic-pc uso un'adattore usb-bus...ora mi informo sul stò picaxe...il nome m'spira...
a presto
luca
ilbrunge3D non è collegato   Rispondi citando
Vecchio 16 novembre 09, 13:25   #4 (permalink)  Top
User
 
Data registr.: 28-05-2005
Residenza: Roma
Messaggi: 660
Il consiglio per cominciare è sempre lo stesso:leggi approfonditamente il datasheet!! Tutto quanto!! Anche l'indice!! Non dirò che è una lettura semplice ma d'altronde ciò cui brami non è una forma di conoscenza elementare.... .

Se veramente sei all'inizio sei ancora in tempo per imparare l'assembler, il posto migliore dove cominciare è studiare tutte le istruzioni assembler del pic stesso che ti interessa, le trovi sempre sul suo datasheet e non dimenticare mai che il PIC è una macchina nata per essere programmata in assembler, tutti gli altri linguaggi di programmazione ad alto livello sono e resteranno sempre delle forme adattate.

Ti consiglio invece di cominciare con il PIC16F628A che è pin-to-pin compatibile con l'F84 ma molto più economico e molto più versatile, potente e con più memoria.

Se poi sei veramente intenzionato a proseguire con i pic compra un buon programmatore USB che ormai la seriale è obsoleta.

Se avrai difficoltà ti aiuteremop volentieri.
SoldatoSemplice non è collegato   Rispondi citando
Vecchio 16 novembre 09, 14:00   #5 (permalink)  Top
User
 
L'avatar di lucriz
 
Data registr.: 14-02-2008
Residenza: Lauria (PZ)
Messaggi: 339
Citazione:
Originalmente inviato da SoldatoSemplice Visualizza messaggio
Il consiglio per cominciare è sempre lo stesso:leggi approfonditamente il datasheet!! Tutto quanto!! Anche l'indice!! Non dirò che è una lettura semplice ma d'altronde ciò cui brami non è una forma di conoscenza elementare.... .
concordo, non è certo una passeggiata, da qualche parte bisogna pur cominciare
Citazione:
Originalmente inviato da SoldatoSemplice Visualizza messaggio
Se veramente sei all'inizio sei ancora in tempo per imparare l'assembler, il posto migliore dove cominciare è studiare tutte le istruzioni assembler del pic stesso che ti interessa, le trovi sempre sul suo datasheet e non dimenticare mai che il PIC è una macchina nata per essere programmata in assembler, tutti gli altri linguaggi di programmazione ad alto livello sono e resteranno sempre delle forme adattate.
certo la serie 12 e la 16 le programmi pure in assembler,
ma con che guadagno?
facilità di sviluppo? manutenibilità del codice? non credo.
velocità di esecuzione? in minima parte, visto che le sezioni critiche si possono programmare in assembler.
Il C nacque per questo, fornisce un linguaggio strutturato che è un pelo sotto l'assembler in termini di velocità, ma ad un abisso di distanza per tutto il resto.
Certo, se devi fare programmini semplici o programmini che necessitano di estrema ottimizzazione allora può anche andare l'asm, per il resto è un suicidio.
Se poi adduci lo scopo didattico allora niente da dire, scrivere programmi in asm è sempre un ottimo esercizio mentale e aiuta a comprendere benissimo l'architettura sottostante.
Poi il C è un linguaggio trasversale, lo trovi ovunque dal microcontrollore al mainframe, quindi può essere un buon investimento per un lavoro futuro.
lucriz non è collegato   Rispondi citando
Vecchio 16 novembre 09, 16:29   #6 (permalink)  Top
User
 
Data registr.: 28-05-2005
Residenza: Roma
Messaggi: 660
Se tu mi parli di un dsPIC30F allora ti posso concedere che magari realizzare alcune parti in "alti linguaggi" può essere comodo, ma in questo genere di processori l'esadecimale finale è generato, mai da un unico linguaggio ad alto livello, quanto più da un'amalgama di una moltitudine di linguaggi di programmazione, che possono raggiungere alte rese, tanto che sia le applicazioni, sia gli sviluppatori per questo genere di super prototipi sono molto rari, tanto che questi stessi PIC sono rari da trovare in un comune negozio.

Per il rimanente 98% delle applicazioni (tra cui rientra la totalità delle possibili necessità di un aeromodellista: sai che c'è un utente qui che ha sviluppato un regolatore brushless con un serie 16F? Chiedi di Ivan) possono essere egregiamente risolte da un pic serie 16F.

Ho visto utenti passare da un pic 16F ad un 18F solo perchè non avevano abbastanza pin a disposizione, ed usare solo il 3% delle potenzialità di un processore 18F.

Alcune delle più elementari tecniche come il multiplexing sviluppato via firmware o il multi-PWM sempre via firmware sono cose ostiche e di solito vengono delegate alle risorse hardware di un PIC, questo perchè svilupparle via software complicherebbe di non poco il codice stesso, in pratica il motivo per cui i programmatori assembler sono così pochi è presto detto: programmare in un linguaggio difficile ma dalle potenzialità nettamente superiori agl altri linguaggi(almeno per questo tipo di architettura) è difficile.

Alla fine: Vuoi usare bene i PIC? Impara l'assembler, avrai in questo modo il controllo di ogni singolo bit.
SoldatoSemplice non è collegato   Rispondi citando
Vecchio 17 novembre 09, 12:47   #7 (permalink)  Top
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Citazione:
Originalmente inviato da SoldatoSemplice Visualizza messaggio
Se tu mi parli di un dsPIC30F allora ti posso concedere che magari realizzare alcune parti in "alti linguaggi" può essere comodo, ma in questo genere di processori l'esadecimale finale è generato, mai da un unico linguaggio ad alto livello, quanto più da un'amalgama di una moltitudine di linguaggi di programmazione, che possono raggiungere alte rese, tanto che sia le applicazioni, sia gli sviluppatori per questo genere di super prototipi sono molto rari, tanto che questi stessi PIC sono rari da trovare in un comune negozio.

Vorrei capire cosa intendi per amalgama di linguaggi di programmazione: nel 'C' nativo Microchip è possibile wrappare routine in assembler o scrivere parti in assembler all'interno dello stesso codice , basta usare la direttiva #asm......
forse intendi le librerie disponibili sia in C che in assembler, queste però utilizzano sempre lo stesso linguaggio.

I DSPic si trovano facilmente sia da R&S che tramite Microchip direct che vende pure a privati.


Per il rimanente 98% delle applicazioni (tra cui rientra la totalità delle possibili necessità di un aeromodellista: sai che c'è un utente qui che ha sviluppato un regolatore brushless con un serie 16F? Chiedi di Ivan) possono essere egregiamente risolte da un pic serie 16F.

Vero solo in parte, se hai necessità di velocità di elaborazione anche per scopi semplici è meglio passare alla serie 18Fxxxxx, la differenza di costo è irrisoria.


Ho visto utenti passare da un pic 16F ad un 18F solo perchè non avevano abbastanza pin a disposizione, ed usare solo il 3% delle potenzialità di un processore 18F.

E questo è un male o forse consente in un secondo tempo di implementare altre funzioni senza dover cambiare micro ? Ripeto parliamo di differenze di costo dell'ordine di 1 euro.....


Alcune delle più elementari tecniche come il multiplexing sviluppato via firmware o il multi-PWM sempre via firmware sono cose ostiche e di solito vengono delegate alle risorse hardware di un PIC, questo perchè svilupparle via software complicherebbe di non poco il codice stesso, in pratica il motivo per cui i programmatori assembler sono così pochi è presto detto: programmare in un linguaggio difficile ma dalle potenzialità nettamente superiori agl altri linguaggi(almeno per questo tipo di architettura) è difficile.

Alla fine: Vuoi usare bene i PIC? Impara l'assembler, avrai in questo modo il controllo di ogni singolo bit.
Concordo che l' assembler, essendo il linguaggio a più basso livello, è sicuramente più efficiente e meno esoso di risorse, a patto però che sia utilizzato veramente bene, ha l'enorme svantaggio di richiedere tempi di sviluppo, test e debug molto più lunghi che linguaggi ad alto livello.

L'assembler è ottimo per realizzare delle piccole macro o routine in cui è richiesta la massima velocità ed efficienza del codice, od ove le risorse hw siano molto limitate. E' praticamente impossibile sviluppare applicazioni complesse, real-time, multitasking et similia in assembler, a meno di non avere molto tempo a disposizione e moltissima esperienza.

Il controllo di ogni singolo bit lo si ottiene anche utilizzando compilatori 'C' non per nulla la stessa Microchip ( e non solo lei ma anche Cypress, Atmel, Freescale) fornisce gratuitamente il compilatore 'C' e numerose librerie pronte all'uso.

Imparare bene un linguaggio come il 'C' consente poi di utilizzare lo stesso anche in ambiente P.C. per interfacce utente o simili poichè le funzioni base seguono lo standard ANSI in quasi tutti i S.O. windows o linux che sia.

Il mio consiglio è di fare qualche esperimento con l'assembler usando i PIC della serie 12, poi passare alla serie 18Fxxxx ed imparare molto bene a programmare in 'C', investirai bene il tuo tempo e ti divertirai di più.

IMHO

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando
Vecchio 17 novembre 09, 14:47   #8 (permalink)  Top
User
 
Data registr.: 28-05-2005
Residenza: Roma
Messaggi: 660
Ci credo che puoi comprare un dsPIC su internet sul sito microchip o si RS, oserei dire che solo questi grandissimi distributori hanno questo genere di attrezzature, se io vado al piccolo negozietto di elettronica che ho sotto casa è normale che lui non abbia un dsPIC.

Quasi nessuna applicazione è in grado di apprezzare la differente velocità (almeno nelle applicazioni che quasi tutti noi usiamo) avere un impulso di 1 microsecondo oppure uno di mezzo microsecondo non è influente, perchè nessuno di noi avra mai bisogno di un orologio atomico nell'aeromodellismo (senza nulla togliere a questa nobile arte), e poi quello che dicevo io era diverso, io dicevo semplicemente che di solito si passa a pic più grandi per ovviare a problemi che non si è in grado di risolvere via software, ma è dalla notte dei tempi che si sa che se vuoi qualcosa che sia fatto bene, un pò devi penare, è una cosa normale.

Tu mi dici che passeresti ad un 18F perchè pensi che con quello che risparmi in un prossimo futuro potresti ottenere un miglioramento delle prestazioni? Allora io ti rispondo che nella quasi totalità dei casi per ottenere qualcosa di migliore si deve cambiare tutto quello che c'è intorno, quindi ecco che l'ipotetico guadagno è vano.

Ma su una cosa siamo d'accordo: per routine particolarmente complesse è vantaggioso usare il C o simili, non mi sognerei di dire il contrario, ma è altrettanto vero che usare il C per controllare un LCD non è una cosa vantaggiosa..... fammi un esempio di un applicazione così complessa che non è sviluppabile in assembler, applicabile nel nostro campo.

Detto questo resta inteso che ognuno è liberissimo di usare ciò che preferisce.

Ciao
SoldatoSemplice non è collegato   Rispondi citando
Vecchio 04 dicembre 09, 22:23   #9 (permalink)  Top
User
 
Data registr.: 03-08-2009
Residenza: Pistoia
Messaggi: 279
ecco fatto! alla fine ho deciso per il "C"... dopo una 50ina di pagine di guida (leticate varie con la mi mamma perchè io dicevo di studiare ma non cosa ) e una quindicina di ottimizzazione per i pic, finalmente ora ho "imparato" ( non si finisce mai di imparare). Ho fatto 4 programmini e mi diverto moltissimo!
il 16f84a è veramente ottimo per iniziare e l'mplab con hitec-c per compilatore vanno davvero bene. Come programma per programmare i pic ho scelto ICprog, fatto bene anche lui...
prossimo passo: interfacciarci un display lcd per "printeffare" un pò di roba...
che bello! mi diverto davvero tanto!
ilbrunge3D non è collegato   Rispondi citando
Vecchio 05 dicembre 09, 00:46   #10 (permalink)  Top
User
 
L'avatar di marcosinatti
 
Data registr.: 10-06-2007
Residenza: Sansepolcro (Ar)
Messaggi: 1.948
Segui i consigli di Elnonino.
Il C è ottimo per il pic, te lo dice uno che programma i pic in basic e in assembler, ma non ha mai avuto tempo e voglia di imparare ad usare il C!!!
Adesso lo rimpiango molto.
Comunque nel campo del modellismo userai l'assembler per le routine veloci, come gli interrupt per leggere gli impulsi della ricevente mentre utilizzerai linguaggi ad alto livello per fare calcoli con variabili a 16 o più bit, che in assembler ti farebbero impazzire.
Senza contare tutte le librerie pronte che trovi per il C.
Io ho fatto un progetto di uno stabilizzatore per elicotteri usando pic 18 ma ti assicuro che un DsPic non ci sarebbe stato male, perchè ho faticato molto con il 18, specialmente per ottenere una discreta definizione sulla lettura di 4 canali radio che in base al tipo di ricevente possono arrivare contemporaneamente, in sequenza o sovrapposti 2 a 2.
http://www.baronerosso.it/forum/elim...licottero.html
Quindi inizia con i 12 o 16 in assembler, approfondisci i 18 in C e poi puoi passare tranquillamente ai DsPic quando ne sentirai la necessità.

Ultima modifica di marcosinatti : 05 dicembre 09 alle ore 00:52
marcosinatti non è collegato   Rispondi citando
Rispondi

Bookmarks




Regole di scrittura
Non puoi creare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è Attivato
Le faccine sono Attivato
Il codice [IMG] è Attivato
Il codice HTML è Disattivato
Trackbacks è Disattivato
Pingbacks è Disattivato
Refbacks è Disattivato


Discussioni simili
Discussione Autore discussione Forum Commenti Ultimo Commento
come programmare i pic Nello82 Circuiti Elettronici 16 31 marzo 09 11:51
vorrei imparare a programmare pic elicottero78 Circuiti Elettronici 4 20 ottobre 08 11:27
Programmare PIC 18F8627 Paperinik. Circuiti Elettronici 1 25 gennaio 08 11:41
Programmare Pic 16c745 ettore72 Circuiti Elettronici 3 17 gennaio 08 10:21
Programmare pic 16c745 elizoom Circuiti Elettronici 12 19 gennaio 06 12:38



Tutti gli orari sono GMT +2. Adesso sono le 06:04.


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