Pages: 1 2 3 [4] 5 6 ... 36   Go Down
Author Topic: Topic permanente di programmazione newbie  (Read 22207 times)
0 Members and 1 Guest are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Perchè non memorizzi il catalogo dei micro in una eeprom esterna ,così ti puoi allargare con il numero dei micro supportati a tutti i pdip.

Ma perché deve complicarsi la vita quando ha 32k di flash a disposizione, hai voglia a memorizzare micro  smiley-grin
Logged

Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-roll-sweat dici che bastano per tutti i micro a 8 bit pdip?
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Perchè non memorizzi il catalogo dei micro in una eeprom esterna ,così ti puoi allargare con il numero dei micro supportati a tutti i pdip.
Perché ormai l'HW è definito e non può usare componenti aggiuntivi. Inoltre avere tutto in un unico firmware è per lui molto vantaggioso, dato che il firmware sarà disponibile per il download dal sito della rivista. Quindi la gente dovrà flashare 1 sola cosa. (così ho capito)
Logged


Deep south of Italy
Offline Offline
Faraday Member
**
Karma: 7
Posts: 2961
The quieter you become, the more you can hear
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok, capito.
Ma per espansioni future... smiley-wink
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

smiley-roll-sweat dici che bastano per tutti i micro a 8 bit pdip?

Facciamo due conti utilizzando le matrici che ho consigliato a Michele, ipotizzando di memorizzare i dati di 100 micro abbiamo quanto segue:

20*100 = 2000 byte  per le descrizioni
3*100   = 300 byte   per le signature
4*100   = 400 byte   per i fuse e i dati accessori
--------------------
Totale    2700 byte

Direi che volendo ci entra pure tutto il catalogo Atmel delle mcu a 8 bit e avanza molto spazio  smiley-grin


« Last Edit: March 06, 2012, 10:57:43 am by astrobeed » Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 412
Posts: 11987
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Noto con piacere che Leo e BB si passano la palla, BB!!!! smiley-twist dopo tutta la questione di ieri ancora parliamo di modifiche hardware?
 smiley-eek-blue
Leo, hai capito benissimo smiley-lol, in realtà i firmware da flashare saranno tre:
micro master PC
micro master stand-alone
micro key+lcd
i primi due sono alternativi, cioè metto l'uno o l'altro, perché non credo di riuscire a tirare fuori un unico firmware in grado di riconoscere la presenza dell'altro micro e gestire i messaggi seriali di conseguenza. Ricordo a tutti che TUTTE LE LINEE sono occupate e non potevo usare la comunicazione I2C quindi li ho collegati tramite seriale standard; in pratica sul pcb master ho un connettore seriale che all'occorrenza mi serve come presa per un convertitore usb-seriale esterno (per collegamento al PC) oppure per il dialogo col PCB keypad+LCD20x4, gestiti da un altro 328P che ovviamente avrà il suo firmware.
Tutto sarà gratuitamente scaricabile dal sito di Elettronica In, a questo punto mi pare che la soluzione di Astro sia perfetta, non penso nemmeno che si arrivi ad un centinaio, e comunque una parte sarebbero incompatibili con i segnali, credo, quindi perdere un paio di K di flash è qualcosa di fattibilissimo, addirittura mi verrebbe la tentazione di usare la ram a questo punto smiley-wink che ne dite?
Comunque fra poco mi metto al lavoro, ho altri dubbi da levarmi:
ho letto che il tiny2313 usa un HVSP un po' "potenziato", con un paio di segnali in più, no problem, ma voglio capire ora cosa succede col riconoscimento automatico; inoltre sono curiosissimo di provare un ATmega8 che avevo fatto fuori a suo tempo, proprio morto, non bricked smiley-red, ma che qualche segno di vita forse lo dava, vediamo che succede anche qui.

A dopo  smiley
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

credo, quindi perdere un paio di K di flash è qualcosa di fattibilissimo, addirittura mi verrebbe la tentazione di usare la ram a questo punto smiley-wink che ne dite?

In realtà non credo che metterai più di 20 modelli diversi di micro, anche perché puoi inserire solo quelli disponibili in case dip il che esclude molti modelli di micro, p.e. il MEGA2560.
Rifacendo i conti per 20 modelli abbiamo :

20x20 = 400
20x3  =  60
20x4  =  80
------------
Totale  540 byte.

Sicuramente entrano senza problemi nella ram visto che te ne serve poca per far funzionare lo sketch, però a mio avviso i dati statitici è sempre bene caricarli nella flash piuttosto che nella ram o nella EEPROM.


Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 412
Posts: 11987
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

La riga dell'array della signature mi dà errore di compilazione:

41: error: hexadecimal floating constants require an exponent
42: error: expected initializer before 'signature'

l'istruzione è questa:
Quote
char byte signature [3] [20] = { {0x1E,0x95,0x0F},
                                 {0x1E,0x93,0x0D},
                                 {0x1E,0x91,0x0A},
                                 {0x1E,0x93,0x0C}
                               };
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, il compilatore ha ragione. O char o byte, mica puoi dichiararlo di 2 tipi diversi  smiley-lol
E poi hai invertito le dimensioni dell'array, nel tuo modo vuoi creare un array di 3 elementi da 20 caratteri l'uno, a te serve l'opposto, quindi:

Quote
byte signature [20] [3] = { {0x1E,0x95,0x0F},
                                 {0x1E,0x93,0x0D},
                                 {0x1E,0x91,0x0A},
                                 {0x1E,0x93,0x0C}
                               };
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, il compilatore ha ragione. O char o byte, mica puoi dichiararlo di 2 tipi diversi  smiley-lol

Questo è colpa mia, quando ho fatto copia e incolla è successo un casino del quale non mi sono accorto, ci va solo byte, adesso correggo l'esempio originale.

Quote
E poi hai invertito le dimensioni dell'array, nel tuo modo vuoi creare un array di 3 elementi da 20 caratteri l'uno, a te serve l'opposto, quindi:

No queste sono giuste, 3x20 e non 20x3, visto che è la signature.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Compila con 3x20 e vedi se non ti da errore.  smiley-razz
3 elementi da 20 caratteri l'uno, qui abbiamo invece il caso inverso: dobbiamo memorizzare tanti elementi da 3 caratteri l'uno, serve una matrice x*3, con x che è il numero di signature da contenere
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Compila con 3x20 e vedi se non ti da errore.  smiley-razz

Mi sa che stamattina sto ancora dormendo, hai ragione anche i due valori dell'inizializzazione sono invertiti tra loro, questo è quello che succede quando si scrive al volo del codice senza provarlo.  smiley-cry
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21624
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi sa che stamattina sto ancora dormendo, hai ragione anche i due valori dell'inizializzazione sono invertiti tra loro, questo è quello che succede quando si scrive al volo del codice senza provarlo.  smiley-cry
Dalle mie parti si dice che "sbaglia anche il prete all'altare" smiley-wink
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 412
Posts: 11987
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Diciamo che la mia dichiarata in Topic fatale ignoranza non mi ci ha fatto capire nulla, al solo comando "byte" ero arrivato ma non capivo l'errore successivo, evidentemente quello dell'inversione, ed il fatto che la prima istruzione avesse 20, 20 non mi ha aiutato a capire.
COmunque ieri sera ho messo a punto grosso modo l'impostazione del 4° byte dell'array signature, mi servono 6 valori per le possibili combinazioni di EFuse e Tipo di Programmazione; sono state fondamentali le prove hw che ho descritto nell'altro Topic. Grazie a tutti, oggi altra giornataccia, ci sentiamo appena possibile.
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5608
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io cambierei l'hardware  smiley
(battuta per iscrizione)
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Pages: 1 2 3 [4] 5 6 ... 36   Go Up
Jump to: