Vai al contenuto
PLC Forum


millis concatenato


kemosabe

Messaggi consigliati

 

poi guardiamo di trovare una soluzione.

GiRock, mi riferivo alla scrittura sull'EEPROM, se eventualmente servisse, non ai problemi esposti da kemosabe.

 

 

Ciao, Ale.

Link al commento
Condividi su altri siti


  • Risposte 91
  • Created
  • Ultima risposta

Top Posters In This Topic

  • kemosabe

    30

  • Livio Orsini

    22

  • ilguargua

    21

  • GiRock

    6

Quello che farei adesso, cercare di capire se modificare, bool buttonpressed() con un for o con degli if, per poter entrare nello switch, oppure smontare lo switch e con degli if else con passaggio di stato, fare le chiamate alle varie istruzioni .

 

grazie

 

Link al commento
Condividi su altri siti

 

Dovresti dire quale risultato ti prefiggi.

Buona idea.
Dovresti pensare in pseudocodice o con un diagramma di flusso, non in termini di questo o quell'altro costrutto, che è solo una conseguenza della logica e del flusso di programma che vuoi realizzare.

Sarebbe come programmare un viaggio in automobile pensando a quali marce utilizzare invece che all'itinerario... e se usassi un'auto elettrica?

ciao

rodolfo

Link al commento
Condividi su altri siti

 

il mio scopo primario era quello di trasformare un listato come questo:

 

 

in un ciclo continuo ma senza il consenso dello SWITCH, per attivare i vari passaggi in automatico.

Come sempre vi chiedo di non darmi soluzioni, ma di capire come posso arrivarci....forse.....

Se stavate attenti, nella pagina precedente aveva chiarito quale era lo scopo.

 

Ciao, Ale

Link al commento
Condividi su altri siti

 

Quello che farei adesso, cercare di capire se modificare, bool buttonpressed()

Questa sarebbe la cosa più veloce da fare.

 

 

con un for o con degli if,

Perchè? Secondo me non ti servono for o if, cerca di capire come funziona il flusso del programma, cosa fa buttonPressed()? Cosa succede se ritorna false? E se ritorna true? E a te cosa serve?

 

Ciao, Ale.

Link al commento
Condividi su altri siti

 

Se stavate attenti, nella pagina precedente aveva chiarito quale era lo scopo.

 

Ale non si può tutte le volte rileggere la discussione dall'inizio:smile:

Ma anche il messaggio precedente non è che sia molto chiaro.

Comunque il consiglio di rodolfok è valido a prescindere.

C'è la brutta abitudine di iniziare a codificare senza aver prima progettato le fiunzioni in ragione di quello che si desidera realizzare.

Questo vale non solo per kemosabe, ma anche per i programamtori più esperti.;)

Link al commento
Condividi su altri siti

 

C'è la brutta abitudine di iniziare a codificare senza aver prima progettato le fiunzioni in ragione di quello che si desidera realizzare.

Presente!

Ho passato un paio di settimane abbondanti a scrivere una libreria per un display (questa), la classica cosa che inizi con "che vuoi che sia, scrivo 2 righe e sono a posto" e poi ti sfugge di mano... Bene, mi sono basato ovviamente sulla documentazione ufficiale, ho scritto una marea di funzioni (con un sacco di overload e compagnia bella), programma di test, etc. Tutto bene? Insomma, anche no, perchè il display serviva inizialmente per un progetto (per il quale ho scritto anche un altra libreria per interfacciarmi a degli scanner laser Sick) che poi ha preso un altra piega, quindi in pratica non l'ho mai usato, e quando mi capiterà di usarlo so già che mi accorgerò di aver scritto il superfluo e tralasciato il necessario...:(

 

Ciao, Ale.

Link al commento
Condividi su altri siti

 

OTTIMO lavoro

Grazie Gio! Essere apprezzato da uno come te mi ripaga di tanto tempo e bestemmie spese (per concludere poco o nulla, come è nel mio stile...).

 

 

Ciao, Ale.

Link al commento
Condividi su altri siti

 

la classica cosa che inizi con "che vuoi che sia, scrivo 2 righe e sono a posto" e poi ti sfugge di mano...

 

Capita anche a me, però appena me ne rendo conto mi fermo, faccio un bel reset e ... riordino idee e progetto.

 

Poi io, per mentalità, non mi avventuro nelle librerie di base (cerco di usare quelle già fatte:smile:). Da giovane ho fatto anche qualche cosa di questo genere, ora sono orientato solo verso applicazioni "fisiche".

 

Comunque ti sei fatto un bel mazzo, ed hai anche reso disponibile a tutti il tuo lavoro.  Complimenti per la pazienza e .... per l'altruismo.

Link al commento
Condividi su altri siti

Sul fatto di creare un diagramma di flusso, vi dico subito che non saprei come fare, nel senso che non sapendo esattamente quello che contiene questo listato, non saprei dedurne il procedimento.

Se non vi dispiace vorrei procedere per quello che posso capire.

Come giustamente dice Ale, vedo che c'è un Bool per il pulsante , e poi ci sono vari return alla fine delle funzioni.

io partirei con il capire cosa fanno questo due cose, sul bool capisco che può essere di due solo stati: true e false, tipo perdonatemi l'accoppiamento, digital write  high e low.

quello che non conosco e leggendo manuali non comprendo è l'uso di return.

 

grazie

 

Link al commento
Condividi su altri siti

 

Sul fatto di creare un diagramma di flusso, vi dico subito che non saprei come fare, nel senso che non sapendo esattamente quello che contiene questo listato, non saprei dedurne il procedimento.

 

Non devi fare il diagramma di flusso del listato, ma dovresti descrivere quello che vuoi realizzare.

Non è necessario il diagramma di flusso, ma una descrizioni delle varie operazione che il tuo sistema devrà fare per realizzare quello che vuoi.

Ad esempio.

All'accensione tutti i Leds lampeggiano per 5" poi si spengono in attesa del comando.

Premendo il pulsante il LED rosso inizia a lampeggiare alla velocità di 2 lampeggi al secondo.

Premendo nuovamente il pulsante il LED rosso smette di lampeggiare ed inizia a lampeggiare il LED blù alla velocità di 1 lampeggio al secondo.

........

e via così.

 

Io i diagrammi di flusso li ho eseguiti solo nello scritto dellae prova di esame di calcolo autoamtico e solo perchè era espressamente richiesto. Solitamente io scrivo la descrizione dettagliata di quello che fa la macchina, questa descrizione archiviata assieme al listato mi permetto, dopo qualche decennio, di capire quello che avevo fatto per far funzionare una determinata macchina. Mentre durante lo sviluppo mi è servita per realizzare il codice.

Link al commento
Condividi su altri siti

beh, allora è semplice. In pratica devo sostituire l'ingresso dato dal pulsante con un qualche tipo di loop che faccia procedere il programma in automatico.

Quindi memorizzare in qualche " stato " la posizione dove mando in esecuzione un certo punto del programma, e al termine del quale quello " stato" cambi e ridia al loop principale la memoria dello "stato" in modo da farlo procedere in un'altro loop e cosi via, per poi avere l'ultima memoria di " stato" che mi faccia ricominciare daccapo.

 

Che ne dici?, puo' andare?

 

grazie

Link al commento
Condividi su altri siti

 

Che ne dici?, puo' andare?

 

No, non è che sia molto chiaro.

In pratica, se ho capitobene, vorresti fare quello che fa il primo esempio che ti ho scritto.

 

Prova a descrivere non quello che divrebbe fare il programma, ma quello che devono fare quei benedetti 3 LEDs, così come ho fatto io.

Se la descrizione delle operazion i fisiche del dispositivo è chiara, poi la codifica viene praticamente in automatico.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Buongiorno kemosabe,

Qualche consiglio, non strettamente legato alle tue ultime richieste :

 

Apri una nuova discussione, focalizzata su un problema preciso, e proseguiamo la. Questa mi pare che sia diventata troppo lunga e disarticolata, saltare tra le varie pagine per seguire gli esempi non è molto agevole, poi hai postato perlomeno 2 o 3 esempi diversi, e si fatica a capire di quale stiamo parlando.

 

Se hai dei led neopixel e se interessato a quelli, scegli un esempio diverso da quello che hai postato, che pare scritto da chi di Arduino ne capisce poco o nulla. Oltre alla scrittura sulla EEPROM che ti ho già fatto notare, contiene anche un altro "errore" tipico dei principianti, cioè usa i pin 0 e 1 per il pulsante ed i led. Perchè è sbagliato? Perchè quei pin sono fisicamente collegati al convertitore USB-seriale, quindi usandoli ti giochi la possibilità di fare un debug con la porta seriale, e potresti anche avere dei problemi nel caricamento dello sketch.

 

 

Ciao, Ale.

Link al commento
Condividi su altri siti

 

 

Apri una nuova discussione, focalizzata su un problema preciso,

 

Si è la soluzione miglioreche evita confusioni e snellisce le risposte.

Visto che  kemosabe ha seguito il tuo consiglio, questa la chiudiamo così da evitare disguidi.

Link al commento
Condividi su altri siti

Ospite
Questa discussione è chiusa alle risposte.

×
×
  • Crea nuovo/a...