Se si può postare solo su arduino allora sono fuori tema, speriamo di no.
Io con il linguaggio C non sono una cima, sto imparando, ma faccio sempre un passo più lungo della mia gamba.
Mi è venuta la felice idea di provare SimulAvr ma subito mi sono accorto che il atmega328 non è supportato.
Allora ho guardato un pò di codice e mi è sembrato facile aggiungere supporto per il 328, ma mi sbagliavo.
Tutti i micro supportati hanno indirizzo base dell' EEprom che inizia a 0x3c tranne il 328 che è 0x3f, quindi in eeprom.h hanno definito i registri come costanti:
enum _eeprom_constants
{
EEPROM_BASE = 0x3c, /* base eeprom mem addr */
EEPROM_SIZE = 4, /* EECR, EEDR, EEARL, EEARH */
EECR_ADDR = 0x3c,
EEDR_ADDR = 0x3d,
EEARL_ADDR = 0x3e,
EEARH_ADDR = 0x3f,
EEPROM_WR_OP_CLKS = 2500, /* clocks used to simulate write 2.5-4.0 ms
write time */
EEPROM_MWE_CLKS = 4, /* hw clears EEMWE after 4 clocks */
};
Mentre per il 328 dovrei avere :
EEPROM_BASE = 0x3f,
EECR_ADDR = 0x3f
EEDR_ADDR = 0x40
EEARL_ADDR = 0x41
EEARH_ADDR = 0x42
Ora chiedo "lesto" o altri che con il C ne sa più di me che faccio abbandono le speranze o c'è qualcuno che ci vuole dedicare un pò del suo tempo?
Ciao.
boh... immagino che le gonfirurazioni le hai "rubate" dall'ide arduino... allora dovrebbero funzionare, ma chissà... bhè al massimo un atmega nuovo costa 5 euro ;D
boh... immagino che le gonfirurazioni le hai "rubate" dall'ide arduino...
Rubateee, ma come ti permetti, io dall'ide non ruberò mai nulla (forse).
No dai apparte gli scherzi, quei dati sono desunti dal datasheet, non penso ci siano nell'ide, al massimo nel bootloader.
In pratica, lo sviluppo di SimulAvr è stato abbandonato da tempo. Io ho introdotto i dati per fargli riconoscere il 328 e fintantochè non ho introdotto la simulazione dell'eeprom del 328 compilava, dopo non compilava più uscendo con errore. Ho capito che l'errore deriva dal fatto che l'indirizzo base dell'eeprom e la stessa in tutti i micro supportati, quindi lo sviluppatore l'ha definita con enum per tutti i micro.
Il valore di quelle variabili dei cambiare in base al micro simulato e io non ho idea di come implementarlo.
Ok ciao, butto la spugna... per adesso.
boh sinceramente son nabbo anch'io con arduino & l'elettronica in generale, son bravo solo a programmare
Quello di cui stai parlando è il delizioso intreccio tra hardware e software che sto cercando di imparare da arduino...
Se quei valori sono tirati fuori dal datasheet dovrebbero essere giusti, però senza il programma/gli errori sottomano non posso far nulla, e al momento sono un pò preso tra esami, un paio di progetti e la compilazione di gentoo...
però al solito, se posti gli errori magari si risolve così