Liviu M Postat Iunie 8, 2015 Partajează Postat Iunie 8, 2015 Trebuie sa modifici bitii de configurare, in asa fel incat b2..b0 (bitii LS, FOSC) = 100. Cum faci asta depinde de compilator (la xc8 sunt niste directive #pragma, la mikroc se face in nu's ce fereastra de configurare)... Link spre comentariu
ardiles Postat Iunie 8, 2015 Partajează Postat Iunie 8, 2015 (editat) Multumesc LiviuM, la ce pagina in manual e treaba descrisa? Fosc este cumva prescalerul Timer1? ciudat este ca Timer1 nu-i activ...folosesc doar intreruperea TMR0 LE: la pagina 86 am gasit acolo zice de configuration word, care l-am scris : 0x3F94, doar asta scriu la toate "proiectele" cu 12f683. INTOSCIO oscillator: I/O function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN m-am prins, Fosc e frecventa oscilatorului. Editat Iunie 8, 2015 de ardiles Link spre comentariu
mikella Postat Iunie 9, 2015 Partajează Postat Iunie 9, 2015 (editat) Cine ma poate arunca o privire pe ce am facut eu in flowcode si sa verifice daca am configurat bine oscilatorul si daca am greseli. Programeaza picul fara erori iar cand pornesc montajul se aprind doar cateva patratele la lcd si cam atat. Atasez codul cat si schena dupa care am construit montajul. Montajul ar trebui sa fie un timer cu afisare pe lcd. Schimbati extensia din txt in fcf si ar trebui sa mearga. timer.txt Editat Iunie 9, 2015 de mikella Link spre comentariu
Elison Postat Iunie 9, 2015 Partajează Postat Iunie 9, 2015 In schema ai un oscilator cu cuart iar PIC16F628 este configurat la oscilator RC CLKOUT. In realitate programul din PIC nu ruleaza,nu ai clock. Trebuie sa fii atent si la configurare, pune XT in loc de RC CLKOUT. Link spre comentariu
ardiles Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 (editat) referitor la problema mea din postarea #315 sau 317, rezolvarea a fost urmatoarea: am schimbat configuration word din 0x3f94 in 0x3f95, nu mai am CLKout pe pinul respectiv. @mikella, esti 100%convins ca ai facut legaturile corect la LCD si microcontroler? pentru ca o sa-ti iau proiectul postat ca documentatie de inspitatie cum se conecteaza un LCD la microcontroler si ce ai facut in fcf. PS: nu vreau sa te induc in eroare! ci doar a te determin sa verifici inca odata, ca in alte situatii cand am simulat hex-uri cu LCD(facute de altcineva, eu nu am avut experienta), pinii de la LCD erau conectati diferit, cel putin erau conectati de la D7-D4...la tine vad ca sunt legati de la D1 la D4... Editat Iunie 10, 2015 de ardiles Link spre comentariu
Liviu M Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 am schimbat configuration word din 0x3f94 in 0x3f95, nu mai am CLKout pe pinul respectiv. Ciudat, cu 5 la sfarsit ar trebui sa ai clkout pe GPIO4: 101 = INTOSC oscillator: CLKOUT function on GP4/OSC2/CLKOUT pin, I/O function on GP5/OSC1/CLKIN Link spre comentariu
mikella Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 Pai asa imi apar conexiunile la component macro, nu pot sa conectez altfel.O sa modific in program sa vada cristalul si incerc din nou.Chiar daca lcd ar fi conectat gresit, trebuia sa aprinda ledurile macar. Link spre comentariu
ardiles Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 @liviuM, sunt perfect de acord cu tine...s-ar putea(mai mult ca sigur), sa fie de la compilator. @Mikella, a fost doar o parere! nu am realizat(nici macar simulat), vreun program cu flowcode care sa contina LCD....a fost doar un sfat, din microexperienta mea; uite aici http://www.elforum.info/topic/16953-masina-de-bobinat-trafo/page-10, postarea #136, este dovada experientei mele cu lcd si microcontroler. este un fisier DSN se deschide cu protheus(am vazut ca ai experienta cu eagle), cu aceasta ocazie ti-l recomand ca si simulator. Link spre comentariu
mikella Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 (editat) Aveati dreptate cu conexiunea lcd-ului, atasez schema corecta mai jos. Am modificat oscilatorul din program si a pornit doar dupa ce am schimbat condensatorii la cristal.Cristalul este de 12mhz. Aveam 33 pico si am pus 15 pico, de 22 nu gasesc momentan. Cat de tare influenteaza valoarea lor? Dupa cum se pare o secunda in montajul meu dureaza mai mult decat in realitate. De unde remediez buba asta, sa pun delay mai mic de o secunda? Cu cat? Mai exact ce cauzeaza aceasta marire de timp ca sa stiu pe viitor? Stiam de proteus dar inca nu am reusit sa vad exact cum sa il folosesc, urmeaza si asta. Editat Iunie 10, 2015 de mikella Link spre comentariu
Elison Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 (editat) Secunda ta dureaza mai mult pentru ca in fcf-ul postat de tine aveai clock speed 4Mhz iar in montaj ai pus unul de 12Mhz.E o mare diferenta,nu? Daca ai cuart de 12Mhz la configurare trebuie sa pui HS in loc de XT.Vezi datasheet 16F628. Editat Iunie 10, 2015 de Elison Link spre comentariu
mikella Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 Am modificat si in program frecventa la cuart. Maine modific si HS in loc de XT. Am citit datashetul picului da se pare ca nu am inteles. Multumesc de sfaturi! Link spre comentariu
Elison Postat Iunie 10, 2015 Partajează Postat Iunie 10, 2015 (editat) Acum am vazut ca mai ai o problema in macro selectare_program,acolo nu are ce cauta un delay. De fapt asta e marea problema.Acolo trebuie sa modifici tot,trebuie sa faci niste calcule astfel incat secunda sa fie una precisa. Poti sa te inspiri din acest exemplu, asta dupa ce schimbi extensia in fcf. 3. Digital Clock.txt Editat Iunie 10, 2015 de Elison Link spre comentariu
mikella Postat Iunie 11, 2015 Partajează Postat Iunie 11, 2015 In mod normal nu ar trebui sa bag delay in macro, dar acel delay este executat doar cand buton=1 si in acelasi timp numarator_timp=1. In aceste conditii nu adauga delay-ul la secunda. Am modificat la oscilator HS iar interupt la 1:32 de la 1:1, ca nu este nevoie sa citeasca valoarea butonului asa des. Acum secunda este aceiasi si fizic nu doar in simulare. Din flowchartul cu ceasul nu ma pot inspira. Eu numararea o fac in functie de buton nu automat. Daca are cineva nevoie de flowchart pentru timer il postez aici. Va multumesc pentru ajutorul acordat! Link spre comentariu
Elison Postat Iunie 11, 2015 Partajează Postat Iunie 11, 2015 (editat) Tu folosesti intreruperea sa citesti starea butonului, se putea la fel de bine si fara interupere daca nu aveai delay in main si foloseai intreruperea generata de timer 0. Timerul 0 trebuia sa-l folosesti pentru a-ti genera cu precizie secunda si in acest fel nu era nevoie de delay in main,delay care face ca, pe durata lui , programul sa nu vada starea butonului. Cand ai nevoie de precizie mare trebuie sa profiti de avantajul oferit de intreruperi, probabil ca nu e cazul in aplicatia ta. In macro main, la inceput, ai LCD display start,aceasta trebuia pusa inainte de bucla while(). Este suficient sa faci initializarea afisajului o singura data, asa este recomandat. Probabil ca ai corectat aceasta greseala. Editat Iunie 11, 2015 de Elison 1 Link spre comentariu
mikella Postat Iunie 11, 2015 Partajează Postat Iunie 11, 2015 (editat) Da am corectat aceasta greseala. Mi-am dat seama de ea cand am vazut ca lcdul clipea la fiecare secunda.Deocamdata sunt la inceput de drum cu flowcode, cand o sa experimentez mai mult timp o sa ma prind ce si cum cu timeru. Ce nu am inteles din flowchartul "ceas digital" este de ce "if inter1=75" ? Valoarea asta ce reprezinta sau cum se calculeaza? Asta inseamna ca la fiecare 75 intreruperi sec=sec+1, si asa se genereaza timpul fara a folosi delay? Editat Iunie 11, 2015 de mikella 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