Ata Postat Noiembrie 16, 2016 Partajează Postat Noiembrie 16, 2016 Seara buna. Va solicit ajutorul la terminarea unui cod, pentru 16F628A, care comanda un pot. digital MCP. In cod sunt 2 switches, fiecare (apasate pe rand), ar trebui sa comande o schimbare de valoare in MCP, iar la eliberare sa se revina la valoarea initiala, Numai switch 2, este ok, switch 1, ruleaza in bucla, scade valoarea, revine la loc si tot asa. Nu stiu cum sa fac sa stea la valoarea setata si cand nu este apasat sa revina la valoarea initiala. L-am simulat in Proteus. Am folosit compilator CCS-PCW. Codul. + schema, rar atasat. Multumesc anticipat Rar.rar Link spre comentariu
ratza Postat Noiembrie 17, 2016 Partajează Postat Noiembrie 17, 2016 Ai pus acoladele aiurea la primul buton. Link spre comentariu
Ata Postat Noiembrie 17, 2016 Autor Partajează Postat Noiembrie 17, 2016 (editat) Multumesc pentru raspuns, nu stiu programare, m-am inspirat din alte programe la modificari. Cum trebuiesc puse? Intai am pus in cod cate un buton si mergea ok, cand le-am pus pe amandoua am reusit sa fac sa mearga doar cate unul, din modificari... Editat Noiembrie 17, 2016 de Ata Link spre comentariu
Bandi Szasz Postat Noiembrie 18, 2016 Partajează Postat Noiembrie 18, 2016 Daca descrii putin mai indetaliat ce sa faca te pot ajuta. Nu sunt familiar cu modelul respectiv de potentiometru dar presupun ca este pe 8biti, adica valoarea maxima ce se poate transmite este 255. In main variabila pot_data este incarcat cu valoarea de 255 iar la apasarea butonului este incrementat cu +10 care este deja in afara valorii maxime a potentiometrului. Link spre comentariu
Ata Postat Noiembrie 18, 2016 Autor Partajează Postat Noiembrie 18, 2016 (editat) Salut. 255 este ca sa seteze potul la valoare maxima, sa plece de la un capat modificarea. Nu este problema cu + sau - , tot asa face la butonul 1, daca modific codul sa mearga B1, nu mai merge B2..., daca folosesti pentru simulare Proteus, pun fisierul cu simularea. 628A.rar Editat Noiembrie 18, 2016 de Ata Link spre comentariu
Bandi Szasz Postat Noiembrie 18, 2016 Partajează Postat Noiembrie 18, 2016 Nu folosesc compilatorul CCS-PCW deci fara un hex nu pot testa comportamentul. Oricum dupa analizarea codului pentru switch1 e definit un comportament total diferit fata de switch2, nu mai vorbind de faptul ca la al doilea "if" unde este comentat cu "// revenire la maxim" este pus ";" ( punct cu virgula) care pur si simplu anuleaza conditia if si executa codul de dupa if, iar acel "break;" intrerupe "while(True)" ul principal care oda oprit se opreste si PIC-ul din executat cod.. Dupa schema butoanele sunt cu pull-up deci in momentul apasarii butonului o sa se execute if-ul care compara cu == 0 , unde e pus pot_data + 10, pot_data este deja 255.. Functioneaza corect cu switch 2 findca sunt parantezele puse airuea. Daca vrei sa il faci tu sa mearga sa mai inveti programare atunci iti pot explica pe privat daca vrei cam cum trebuie facut. Daca il vrei doar functional atunci descrie ce face exact fiecare buton si il rescriu eu. Link spre comentariu
Ata Postat Noiembrie 18, 2016 Autor Partajează Postat Noiembrie 18, 2016 Multumesc pentru raspuns. La 60 de ani nu mai stau sa invat, dar cat de cat ma descurc, programul i-l facusem sa mearga in primavara, dar am fost plecat si a umblat nepotul la pc si la "lamurit" cu jocurile, Cand am venit am repus imaginea de Win, dar nu am mai stiut cu ce am compilat si am deschis cu alt compilator si s-a f..t. Asta trebuie sa faca, la apasarea unui buton sa modifice valoarea si cand nu mai apas sa revina la valoarea initiala, oricare buton. Pun si hexul sa poti vedea in proteus. Hex.rar Link spre comentariu
Ata Postat Noiembrie 18, 2016 Autor Partajează Postat Noiembrie 18, 2016 Uite si varianta cu un buton care merge, poate este mai usor de adaugat inca un buton. 1 Sw..rar Link spre comentariu
Ata Postat Noiembrie 19, 2016 Autor Partajează Postat Noiembrie 19, 2016 Gata l-am facut. Multumesc de ajutor. 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