Go Down

Topic: 23 I/O ATmega328 (Read 1 time) previous topic - next topic

ilmandorlone

nelle specifiche di arduino uno parlano di 14 pin I/O e e 6 analog.
nel datasheet dell'Atmega328 di ATMEL parlano in vece di 23 pin I/O
ora mi chiedevo se via software si potessero recuperare questi pin e capire meglio quali sono perché anche se si riuscisse a far diventare i pin rx(0) tx(1) e i pin analogici dei normali pin I/O sarebbero 20 e non capisco dove sono gli altri 3.
la domanda è come fare a usufruire di tutti e 23 i pin digitali.

m_ri

secondo me,non tutti sono riportati sulle connessioni..per esempio,se non ricordo male,atmega2560 ha 84 I/O..ma come forse sai,la mega non ha tutte 'ste connessioni..

ratto93

Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..
Se corri veloce come un fulmine, ti schianterai come un tuono.

leo72


Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..

Non è complicato, è che:
1) non puoi farlo sull'Arduino perché su quei pin ci sono circuiti o funzioni addizionali: ad esempio, sul pin di reset c'è un circuito aggiuntivo mentre sui pin del quarzo c'è un risonatore ceramico esterno. Puoi disattivare il pin di reset ma dopo non puoi più programmare il micro. Puoi impostare lùil risonatore interno ma dopo non funziona più gran parte del codice di Arduino perché è sviluppato per lavorare a 16 MHz.
2) devi poi accedere a quei pin usando i registri e manipolandoli direttamente, non hai le funzioni digitalRead/Write capaci di utilizzare quei pin.

ratto93



Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..

Non è complicato, è che:
1) non puoi farlo sull'Arduino perché su quei pin ci sono circuiti o funzioni addizionali: ad esempio, sul pin di reset c'è un circuito aggiuntivo mentre sui pin del quarzo c'è un risonatore ceramico esterno. Puoi disattivare il pin di reset ma dopo non puoi più programmare il micro. Puoi impostare lùil risonatore interno ma dopo non funziona più gran parte del codice di Arduino perché è sviluppato per lavorare a 16 MHz.
2) devi poi accedere a quei pin usando i registri e manipolandoli direttamente, non hai le funzioni digitalRead/Write capaci di utilizzare quei pin.

Alludevo a quanto hai esposto è che con una mano rotta non riesco a dilungarmi molto  :smiley-mr-green:
Se corri veloce come un fulmine, ti schianterai come un tuono.

leo72


con una mano rotta non riesco a dilungarmi molto  :smiley-mr-green:

Ohi....  :smiley-eek:

ilmandorlone

il mio progetto non si basa su arduino ho un atmega328 indipendente dal la modulo arduino quindi non avrei problemi nel fatto che nel mio progetto posso anche non mettere il bottone reset ma comunque almeno come posso sfruttare i pin analogici come pin digitali da codice e come devo impostare le porte 0 e 1 in modo da regolarizzare perché non si comportano da veri e propri pin I/O?
almeno da arrivare a 20 porte

Dario Gogliandolo

Puoi sempre usare un multiplexer...
Video demonstration of my Dashboard OBDII -> http://goo.gl/m8Pqp

pelletta


il mio progetto non si basa su arduino ho un atmega328 indipendente dal la modulo arduino quindi non avrei problemi nel fatto che nel mio progetto posso anche non mettere il bottone reset ma comunque almeno come posso sfruttare i pin analogici come pin digitali da codice e come devo impostare le porte 0 e 1 in modo da regolarizzare perché non si comportano da veri e propri pin I/O?
almeno da arrivare a 20 porte


I pin analogici li puoi usare come digitali semplicemente dichiarandoli come tali, ad esempio il pin analogico A0 diventa pin digitale 14, A1 15, A2 16, A3 17, A4 18, A5 19 quindi nel setup
Code: [Select]
pinMode(14,OUTPUT); // A0
....
pinMode(19,INPUT); // A5

Per i pin 0 e 1 digitali se non usi la seriale sono dei normalissimi pin come gli altri.
Ciao

Madwriter




Puoi usare il pin del reset, se non ricordo male Aref e i due del quarzo come uscite opzionali ma la cosa è alquanto complicata da fare..

Non è complicato, è che:
1) non puoi farlo sull'Arduino perché su quei pin ci sono circuiti o funzioni addizionali: ad esempio, sul pin di reset c'è un circuito aggiuntivo mentre sui pin del quarzo c'è un risonatore ceramico esterno. Puoi disattivare il pin di reset ma dopo non puoi più programmare il micro. Puoi impostare lùil risonatore interno ma dopo non funziona più gran parte del codice di Arduino perché è sviluppato per lavorare a 16 MHz.
2) devi poi accedere a quei pin usando i registri e manipolandoli direttamente, non hai le funzioni digitalRead/Write capaci di utilizzare quei pin.

Alludevo a quanto hai esposto è che con una mano rotta non riesco a dilungarmi molto  :smiley-mr-green:

ora capisco cosa intendevi nell'altro topic quando ho detto hce Menniti era un razzo a scrivere  :smiley-roll:
"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

ilmandorlone


ilmandorlone

un ultima domanda non mi ricordo in che progetto me ne aro accorto ma avevo notato che i pin digitali 0(RX<-) e 1(TX->) non si comportavano molto bene

m_ri

in cosa non si comportano bene..comunque,se non sbaglio,Rx è collegato al chip dell'usb attraverso una resistenza di 1 kOhm..ma nn sono sicuro..

Go Up