Sari la conținut
ELFORUM - Forumul electronistilor

Lucreaza cineva cu FLOWCODE ?


bercioiu

Postări Recomandate

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

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 de ardiles
Link spre comentariu

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. Posted Image

timer.txt

Editat de mikella
Link spre comentariu

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

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 de ardiles
Link spre comentariu

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

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

@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

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. Posted Image

Editat de mikella
Link spre comentariu

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 de Elison
Link spre comentariu

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

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 de Elison
Link spre comentariu

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

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 de Elison
Link spre comentariu

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 de mikella
Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări