Pages: 1 [2]   Go Down
Author Topic: Un delay che cambia tutto...  (Read 2102 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prova a spostare quel delay 1000 in fondo al loop, se non altro almeno prima vede i tasti premuti ed esegue le relative cose, poi aspetta 1 sec.

Un delay di 1 secondo è distruttivo ovunque tu lo metta.
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3391
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prova a spostare quel delay 1000 in fondo al loop, se non altro almeno prima vede i tasti premuti ed esegue le relative cose, poi aspetta 1 sec.

Un delay di 1 secondo è distruttivo ovunque tu lo metta.

lol .. è distruttivo, catastrofico, una cosa disumana, da ergastolo smiley ... dipende sempre cosa devi fare, posso comprare un I7 e fargli fare solo un timer da 1 secondo, quello che faccio del m.controllore o microprocessore sono affari miei ... l'istruzione esiste e usarla o no è una mia scelta. Perchè non impicchiamo quello che ha creato l'istruzione delay()?  smiley-eek-blue
Dai su non esageriamo. pls
« Last Edit: January 24, 2013, 08:46:01 am by pablos » Logged

no comment

Milano, IT
Offline Offline
Newbie
*
Karma: 0
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora! smiley il deley non mi serve, ne prima ne dopo; non è questo il punto!
Il nodo della questione è: i dati son sono random puoi resettare 10 volte e avrai sempre le stesse letture:
Con deley: menu=1 level=1
Senza: menu=0 level=0
I tasti li posso collegare o scollegare ma non cambia nulla!
Logged

Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prova a spostare quel delay 1000 in fondo al loop, se non altro almeno prima vede i tasti premuti ed esegue le relative cose, poi aspetta 1 sec.

Un delay di 1 secondo è distruttivo ovunque tu lo metta.

lol .. è distruttivo, catastrofico, una cosa disumana, da ergastolo smiley ... dipende sempre cosa devi fare, posso comprare un I7 e fargli fare solo un timer da 1 secondo, quello che faccio del m.controllore o microprocessore sono affari miei ... l'istruzione esiste e usarla o no è una mia scelta. Perchè non impicchiamo quello che ha creato l'istruzione delay()?  smiley-eek-blue
Dai su non esageriamo. pls

Appunto, non esageriamo. E non generalizziamo. Leggi la mia battuta come risposta al tuo commento: spostare delay(1000) da un punto all'altro così "almeno primva vede i tasti premuti..." ecc. non cambia nulla. Il problema è che i segnali vengono campionati una volta al secodo, e ritardare prima o dopo la loro campionatura non modifica questo fatto.


(edit: nella fretta avevo dimenticato questo: smiley )
« Last Edit: January 24, 2013, 11:34:28 am by tuxduino » Logged

Milano, IT
Offline Offline
Newbie
*
Karma: 0
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qui il punto è rimane perchè!

 smiley-mad
« Last Edit: January 24, 2013, 11:07:38 am by dvluca » Logged

Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qui il punto è rimane perchè!

 smiley-mad

Che in italiano significa ?
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3391
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qui il punto è rimane perchè!

 smiley-mad

Che in italiano significa ?
da buon polemico, me lo stavo chiedendo anch'io  smiley smiley

comunque si capisce dai ... togli "è" e metti "che", aggiungi "è il " prima di perchè smiley
« Last Edit: January 24, 2013, 01:18:05 pm by pablos » Logged

no comment

Milano, IT
Offline Offline
Newbie
*
Karma: 0
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Qui il punto è e rimane: perchè?
Non voglio polemizzare, mi trovo solo in una situazione nella quale non sono in grado di capire una cosa apparentemente semplice come questa. E con umiltà, chiedo  cosa mi sfugge...
« Last Edit: January 24, 2013, 03:35:32 pm by dvluca » Logged

Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Giuro: non ci ero arrivato...  smiley-roll-sweat
Logged

Offline Offline
Edison Member
*
Karma: 26
Posts: 1339
You do some programming to solve a problem, and some to solve it in a particular language. (CC2)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora tornando a bomba...

- puoi postare il lnk alla libreria Button che usi ?
- hai provato a far girare il codice togliendo la chiamata delay(1000) ?
- perché c'è una delay(500) su menu==6 ?
- togli i print() di debug quando togli delay(1000) perché verrebbero eseguiti a velocità folle smiley
- c'è un errore:
Code:
        (menu=menu++);
Le parentesi sono inutili, ma l'errore vero lo trovi confrontando quella riga con il modo in cui incrementi level, un paio di righe più sotto...

Un consiglio: credo che il codice risulterebbe più leggibile se invece di una serie di if() usassi l'istruzione switch, tipo:
Code:
switch(menu) {
    case 1:
        // fai qualcosa
        break;

    case 2:
        // fai qualcosa
        break;

    // ecc.
}

Ora che ho scritto questa pappardella credo di avere capito qual è il problema: l'analisi della voce di menu dovresti farla solo quando rilevi la uniquePress.
Ovvero (ometto per chiarezza la gestione del livello):

Code:
// se è stata rilevata la pressione del tasto menu:
if(tastomenu.uniquePress()) {
    // incrementa il numero del menu
    (indovina :-P )
    // esegui il codice relativo al menu attuale
    switch(menu) {
        // ecc. come indicato più sopra
    }
}

In questo modo le funzioni del menu vengono eseguite solo quando si rileva la pressione del tasto ed il cambio di nuemero di menu.
Questo ti permette di eliminare i delay().

Spero di esserti stato d'aiuto.
Logged

Milano, IT
Offline Offline
Newbie
*
Karma: 0
Posts: 22
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ti ringrazio, diciamo che questo approccio è quello che cercavo, posterò il link questa sera.
Logged

Pages: 1 [2]   Go Up
Jump to: