Go Down

Topic: Sbaglio qualcosa con arduino 1.0? (Read 971 times) previous topic - next topic

Martinix

Buon giorno,
è da un pò che non "giocavo con Arduino" ed oggi per uan cosatta lho ripreso in mano, ma sorpresa il banalissimo programmino:

void setup()
{
  pinMode (10,OUTPUT);
}

void loop()
{
  digitalWrite (10,HIGH);
  delay (1000);
  digitalWrite (10,LOW);
  delay (2000);
}

non funziona, o meglio lo compila senza errori, ma di fatto il led NON lampeggia.
Ora sto sbagliando alla grande qualcosa, o (io) ho qualche problema sul PC ?
uso arduino 1.0 su macchina linux (opensuse) a 64bit

altri programmi fungono bene :(

grazie  buona giornata by Andrea
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

Michele Menniti

Ma se carichi il blink originale cosa succede?
Sei sicuro di aver collegati il LED sul pin 10?
Hai messo una resistenza in serie al led da 220-330 ohm?
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

Martinix

fa lo stesso con il programmino "blink" originale, ovvero non blinka.

i led son su una basetta con collegamento ipper collaudato (uso sempre quella da tempi immemorabili), e se uso per esempio un programmino per accendere e spegnere il led via seriale in quel sistema tutto funge....

credo ci siano problemi con delay e volevo appunto chiedere se dalla 0022 alla 1.0 fosse cambiato qualcosa....
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

Michele Menniti

Certamente sono cambiate delle cose, ma non al livello di non far funzionare il blink; purtroppo non uso la 1.0 e non so dirti di più.
Hai riprovato con la 0022/23 sulla stessa basetta?
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

leo72

Sei incappato in uno degli errori presenti nella toolchain Avr di Gnu presenti nelle distribuzioni più recenti.
Che distribuzione usi? Che versioni hai di avr-gcc, binutils-avr e avr-libc? Immagino che avr-gcc sia alla 4.5 e binutils-avr alla 2.22...

Al posto di delay usa _delay_ms(1000), per usarla però devi includere l'header file <util/delay.h>, se funziona allora è il core di Arduino che non va, se continua a non funzionare allora è la toolchain.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Martinix

no, ora la riscarico e provo...... (anche se di sto pc mi fido poco penso reinstallero su altro disco per prova dopo)
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

leo72


se continua a non funzionare allora è la toolchain.

E' questo il problema, ci metto la mano sul fuoco.
E' uno di quei bug in cui sono incappato io mesi fa e che mi hanno fatto dannare.

leo72

@Martinix:
lascia perdere l'IDE, il bug è nella toolchain.


Sei incappato in uno degli errori presenti nella toolchain Avr di Gnu presenti nelle distribuzioni più recenti.
Che distribuzione usi? Che versioni hai di avr-gcc, binutils-avr e avr-libc? Immagino che avr-gcc sia alla 4.5 e binutils-avr alla 2.22...

Martinix

cavolaccio, con _delay_ms(1000) funge alla grande!!!!!!  :smiley-eek-blue: :smiley-eek-blue:
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

Martinix

#10
Mar 29, 2012, 04:41 pm Last Edit: Mar 29, 2012, 04:43 pm by Martinix Reason: 1
@leo:
avr-gcc = 4.6.2
binutil-avr = 2.22
avr-libc=1.7.1

uso opensuse 12.1 64bit
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

leo72


@leo:
avr-gcc = 4.6.2
binutil-avr = 2.22
avr-libc=1.71

uso opensuse 12.1 64bit

Allora delay non ti dovrebbe funzionare per via di binutils-avr 2.22, se non ricordo male.
Con avr-gcc 4.6.2 dovresti avere problemi a compilare sketch quali l'ArduinoISP.

La questione della toolchain è dolorosissima, sotto Linux. Ti potrei consigliare di scaricarti lo script da AvrFreaks che compila la toolchain con le patch Atmel per sistemare tutto ma se non sai dove poi metterla è un problemino. L'alternativa è scaricarti la versione 1.0.1RC1 dell'IDE di Arduino a cui hanno allegato anche alla versione Linux la toolchain patchata che funziona (quasi) senza problemi. Il (quasi) è riferito al bug del codice di dimensioni superiori ai 128 kB.

Martinix

posso povare la Rc sai indicarmi dove la posso reperire?

grazie da andrea

p.s. la cosa che mi terrorizza non è il delay, ma se ci son altre rogne più subdole imbosate da qualche parete  =(
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

Quote
L'alternativa è scaricarti la versione 1.0.1RC1 dell'IDE di Arduino a cui hanno allegato anche alla versione Linux la toolchain patchata che funziona (quasi) senza problemi. Il (quasi) è riferito al bug del codice di dimensioni superiori ai 128 kB.


Penso che sia proprio la cosa più sensata, sempre se usi solo arduino ide e non altri ide.

Però se _delay_ms funge allora il problema e nel core Arduino, bho prova un po _delay_us(1000) occhio che sono 1ms magari li metti in ciclo 500.

La cavolata è che l'ide sopprime tutti i warning del compilatore, e così è difficile indagare.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Martinix

#14
Mar 29, 2012, 05:04 pm Last Edit: Mar 29, 2012, 05:14 pm by Martinix Reason: 1
confermo, con arduino 1.0.1RC1 il problema (almeno quello del delay) è scomparso come per magia :)

(ci son altri ide sotto linux per ardiono a pate kdevelop, che però con la 1.0 non va ancora)
Le informazioni date, son suggerimenti, osservazioni, ma come le applicate è a vostro rischio e pericolo!

Go Up