YO5VAE Postat Februarie 3, 2016 Partajează Postat Februarie 3, 2016 Buna seara. Am nevoie de ajutor intr-un program pe care trebuie sa il fac. Ca si configuratie, arduino, 1 push-button si un display cu touch Nextion HMI. Butonul este un buton de start. Cand arduino porneste, apare un meniu din care se pot alege 3 functii cu rol asemanator. Functiile respective fac niste citiri analogice si trimit valorile pe serial dar in acelasi timp le afiseaza si pe display. Se selecteaza pe touch functia dorita iar uC-ul sare in functia respectiva si asteapta butonul de start sau butonul "back" de pe touch. Nu e greu de facut cu un while. Daca se apasa back sistemul sare inapoi in functia principala (in meniul cu 3 functii). Daca se apasa butonul de start, functia incepe si isi face treaba...masoara...trimite...etc., si ... se termina. Programul iese din functia respectiva inapoi in loop. Eu am nevoie ca la sfarsitul programului, daca nu se apasa butonul "back" pe touch, functia sa mi se repete. Adica programul sa imi sara inapoi la inceputul functiei si sa astepte start sau back pe touch. Teoretic as putea sa fac treaba prin mai multe bucle while (la inceput si sfarsit) sau prin reapelarea functiei in care sunt la sfarsitul programului, dar aceste 2 variante nu mi se par a fi variantele corecte. Poate are cineva o viziune diferita pe care as putea sa o implementez. Multumesc anticipat. PS1. Inca nu am nici o bucata de cod PS2. Interfatarea cu touch-ul nu o vad ca o problema, acesta fiind destul de destept. Link spre comentariu
nico_2010 Postat Februarie 4, 2016 Partajează Postat Februarie 4, 2016 Cred ca ar trebui sa incepeti de aici: https://github.com/itead/ITEADLIB_Arduino_Nextion Este libraria afisorului LCD. Apoi puteti "broda" pe marginea ei pana obtineti ceea ce doriti. Spre exemplu, puteti folosi in loop functia 'switch case" pentru a selecta o subrutina, sau alta care sa faca ceea ce va doriti. Link spre comentariu
YO5VAE Postat Februarie 4, 2016 Autor Partajează Postat Februarie 4, 2016 Multumesc pentru raspuns. Pentru functie loop nu imi fac probleme. Imi fac probleme pentru fiecare subrutina in parte, fiindca la terminarea subrutinei, programul sare inapoi in loop unde a ramas, si anume dupa subrutina. Eu as vrea ca programul sa imi sara inapoi la inceputul subrutinei si sa astepte start sau back. Link spre comentariu
nico_2010 Postat Februarie 4, 2016 Partajează Postat Februarie 4, 2016 Multumesc pentru raspuns. Pentru functie loop nu imi fac probleme. Imi fac probleme pentru fiecare subrutina in parte, fiindca la terminarea subrutinei, programul sare inapoi in loop unde a ramas, si anume dupa subrutina. Eu as vrea ca programul sa imi sara inapoi la inceputul subrutinei si sa astepte start sau back. Nu va opreste nimeni ca subrutina sa fie de acest tip: void subrutina_x(void){while (startButton==HIGH){//aici este continutul subrutinei}return;} Cat timp butonul startButton nu este actionat se va executa subrutina. Link spre comentariu
YO5VAE Postat Februarie 4, 2016 Autor Partajează Postat Februarie 4, 2016 Multumesc. O sa incerc si revin cu rezultatele, dar abia saptamana viitoare. Momentan astept un audit :( Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum