messu Postat August 10, 2017 Autor Partajează Postat August 10, 2017 Mda, minunea a luat sfarsit, aseara cand am facut proba pe microcontroller. Din nou, a functionat corect de 3-4 ori, dupa care s-a blocat. Atasez fisierul, fcf_avr, desi ma gandesc o sa fie cam greu de urmarit. Asa cum spuneam, nu stau bine la programare si am facut cum am stiut.... Ca idee, TMR2, porneste de fiecare data cand se intra in macro "T_A", "Stby_TIP" sau "Stby_AIR". Secundele sint incrementate in macro "Sec" si oprirea automata in macro "Auto_Stby" Cam asta e... Momentan incerc sa fac acest Auto Standby, bazat pe intarzierile produse de ciclurile normale de executie ale softului. Daca nu merge nici asa...nu mai stiu.... ss.zip Link spre comentariu
nico_2010 Postat August 10, 2017 Partajează Postat August 10, 2017 Iti pot da un sfat: apuca-te si invata un limbaj de programare si uita de programarea "vizuala". Folosind aproape oricare din limbajele de programare ai un control mai strict asupra registrilor din microcontroller. Link spre comentariu
messu Postat August 10, 2017 Autor Partajează Postat August 10, 2017 Multumesc de sfat ! E corect si stiu asta. Din pacate, la varsta mea si la cat as programa, cred ca nu se mai justifica... Link spre comentariu
nico_2010 Postat August 10, 2017 Partajează Postat August 10, 2017 Ba da, se justifica. Varsta nu este un motiv si nici o scuza. Ca exemplu, te invit sa te uiti putin in sectiunea "ARM" Link spre comentariu
Elison Postat August 10, 2017 Partajează Postat August 10, 2017 In flowcode nu este recomandat sa apelezi o intrerupere in bucla principala a programului, asa cum se intampla la tine cu intreruperea generata de timer2 (Stby_TIP si Stby_Air ruleaza in bucla principala). Felul in care folosesti aceasta intrerupere nu este corect ( se poate si in bucla principala, dar cu o activare/dezactivare foarte atent gandita). Incearca sa folosesti niste flaguri care sa conditionezi incrementarile care au loc in macro Sec, in functie de logica pe care o are programul tau. Activeaza intreruperea inainte de bucla principala, asa cum ai facut cu Int0 si Int1. Link spre comentariu
messu Postat August 10, 2017 Autor Partajează Postat August 10, 2017 Multumesc de sugestie! Am sa incerc sa gasesc o cale ... Link spre comentariu
messu Postat August 11, 2017 Autor Partajează Postat August 11, 2017 N-am reusit sa descurc problema cu intreruperi pe TMR, asa ca am facut, mult mai...rudimentar, e drept, cu contor pe bucle. Pare ca merge brici. Nu s-a mai blocat deloc. Sigur, temporizarea nu este foarte exacta, dar cum nu vreau sa potrivesc ceasul dupa statia de lipit, ci doar sa asigur o oprire automata, de siguranta, se pare ca e o alternativa acceptabila. Multumumesc tuturor pentru sugestiile facute ! 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