Show Posts
Pages: 1 ... 227 228 [229] 230 231 ... 390
3421  International / Generale / Re: Accedere ad una SRAM parallela on: April 29, 2012, 07:20:52 am
Grazie Astro
3422  International / Generale / Re: dritta su lcd on: April 29, 2012, 07:17:31 am
Ho idea che il nostro amico non si fidi molto di noi
Torto non ha, su questo post e' entrata la feccia del forum, leo, uwe, menny...  smiley
3423  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 05:44:04 am
dopo pranzo, dopo un sonnellino, ci lavoro

grazie per avermi seguito in queste mie elugubrazioni mentali  smiley
3424  International / Generale / Re: Accedere ad una SRAM parallela on: April 29, 2012, 05:40:05 am
ma restando invece sull'UNO, conosci progetti che usano una RAM i2C ?
Viene vista da ArduinoUno come se fosse Ram interna ?
3425  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 05:32:38 am
questo e' un trucco, prima dichiari tempo unsigned e poi nell'IF la fai diventare Signed.

Questa e' la soluzione ?

Cioe' la risposta finale e': Quando si usa un IF le due variabili in gioco devono essere entrambe Signed o entrambe Unsigned. Non possono essere una Signed ed un'altra Unsigned ?
3426  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 05:07:33 am
per distrazione ti ho scritto di fare il cast ad "unsigned long" invece devi farlo a "long", oppure dichiara Tempo direttamente come long.
modifica un attimo il mio codice come dici te, e lo posti e lo testo subito, Tempo non lo devi toccare come variabile, e nemmeno Scroll time
il tutto deve essere chiaro e funzionale con Tempo Unsigned long e ScrollTime INT
3427  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 05:03:19 am
Nemmeno il secondo funziona
Code:
unsigned long Tempo;
// unsigned int  ScrollTime; // TUTTO OK
int  ScrollTime; // SI BLOCCA

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

void loop ()
{

Tempo=millis();

 if (Tempo > ((unsigned long)(ScrollTime + 300)))
    {
     digitalWrite(13, HIGH); 
     delay (300);
    ScrollTime = millis();
    }
 else
    digitalWrite(13, LOW); 
}

Che si fa ?
Io uso IDE1.0 su Win7-64 con ArduinoUnoR1
3428  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 05:01:52 am
Nemmeno il Primo di Leo funziona
Code:
unsigned long Tempo;
// unsigned int  ScrollTime; // TUTTO OK
int  ScrollTime; // SI BLOCCA

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

void loop ()
{

Tempo=millis();

 if (Tempo > ((unsigned long)ScrollTime + (unsigned long)300))
    {
     digitalWrite(13, HIGH); 
     delay (300);
    ScrollTime = millis();
    }
 else
    digitalWrite(13, LOW); 
}

aspettate l'ultimo
3429  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 04:59:56 am
Allora, ritestato quello di astro
NON FUNZIONA
Code:
unsigned long Tempo;
// unsigned int  ScrollTime; // TUTTO OK
int  ScrollTime; // SI BLOCCA

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

void loop ()
{

Tempo=millis();

 if ((unsigned long) Tempo > (ScrollTime + 300))        
    {
     digitalWrite(13, HIGH);  
     delay (300);
    ScrollTime = millis();
    }
 else
    digitalWrite(13, LOW);  
}

Riprovo i due tuoi
3430  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 04:57:25 am
e io te lo riprovo subito,,spetta un attimo
3431  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 04:53:02 am
semplice, imparare

e se mostri sacri come te, astro e lesto, che tale siete in ambito di programmazione rispetto a me, non sanno spiegare perche' quest IF non si verifica, vuol dire che il tutto non e' banale.

Se vogliamo ammettere che c'e' un bug in arduino allora io chiudo qui, ma se si vuole dire che questo comportamento e' normale lo si deve spiegare

Il comportamento secondo me deve essere questo:
Il led deve lampeggiare fino all'overflow della variabile, da li' in poi deve stare sempre fisso, perche' l'IF e' sempre True.

Questo con Unsigned Int funziona, con Int no, perche' ?
Le ultime prove vanno nella direzione della corretta gestione del casting credo, ma con unsigned Int perche' va tutto liscio senza aggiungere nulla al codice ?
E cmq anche gli utimi tentativi Vostri sono falliti, quindi nessuno per ora conosce la spiegazione
3432  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 04:47:10 am
niente da fare, nessuno dei due

Scrivo a Massimo ?  smiley-yell
3433  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 03:53:23 am
Non funziona,

la devo aggiungere alla lista (piccolissima) delle volte in cui Testato batte Astro ? smiley

Code:
unsigned long Tempo;
// unsigned int  ScrollTime; // TUTTO OK
int  ScrollTime; // SI BLOCCA

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

void loop ()
{

Tempo=millis();

 if ((unsigned long)Tempo > (ScrollTime + 300))
    {
     digitalWrite(13, HIGH);  
     delay (300);
    ScrollTime = millis();
    }
 else
    digitalWrite(13, LOW);  
}
3434  International / Generale / Re: Accedere ad una SRAM parallela on: April 29, 2012, 03:04:22 am
molto interessante  smiley
x iscrizione
3435  International / Generale / Re: Ram+Seriale+Overflow on: April 29, 2012, 02:42:55 am
Usa questo, e vedrai,

con UNSIGNED INT l'IF fa il suo dovere, dopo un minuto overflow e led sempre fisso
con INT niente da fare, l'overflow avviene dopo 30 secondi (giustamente la meta' del tempo di Unsigned Int), ma il led resta spento
Code:
unsigned long Tempo;
unsigned int  ScrollTime; // TUTTO OK
//int  ScrollTime; // SI BLOCCA

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

void loop ()
{

Tempo=millis();

 if (Tempo > ScrollTime + 300)
    {
     digitalWrite(13, HIGH); 
     delay (300);
    ScrollTime = millis();
    }
 else
    digitalWrite(13, LOW); 
}
Pages: 1 ... 227 228 [229] 230 231 ... 390