mikella Postat Martie 2, 2016 Partajează Postat Martie 2, 2016 Cum pot afisa ca in linkul atasat? Stiu cum sa creez caracterul bucata cu bucata si apoi sa in scriu in ramul lcd. Daca ar fi sa afisez doar un numar fix pe lcd ma descurc, folosind comenzile print "ascii" si "cursor" problema este ca eu vreau sa afisez valoarea unei variabile cu fontul ca in link. Va rog daca poate cineva sa ma indrume cu o ideie de pornire macar. https://www.google.com.cy/search?q=16x2+lcd+large+font&sa=X&biw=1301&bih=641&tbm=isch&tbo=u&source=univ&ved=0ahUKEwj8o6_gtKLLAhWHj3IKHU2_AX4QsAQIIw#imgrc=VyNnEXvyQYsLSM%3A Link spre comentariu
Liviu M Postat Martie 2, 2016 Partajează Postat Martie 2, 2016 Unele afisoare ofera posibilitatea de a defini caractere personalizate. Ce vezi in linkul pe care l-ai postat sunt probabil astfel de caractere. Link spre comentariu
mikella Postat Martie 3, 2016 Partajează Postat Martie 3, 2016 Exact, iar un caracter mare este format din mai multe caractere mai mici. Cum ar fi segmentele de la un afisaj cu 7 segmente, si le combini pentru a forma un întreg. Da cum sa combin aceste bucati pentru a le folosi ca unul singur? Link spre comentariu
UDAR Postat Martie 3, 2016 Partajează Postat Martie 3, 2016 Habar n-am de FlowCode dar , în principiu, memoria RAM-CG a LCD-ului fiind limitată, reții acolo doar caracterele primare ( 8*5) pe care ți le-ai definit și apoi scrii cîte un macro sau funcție sau ce-o fi pentru fiecare caracter mare . Exemplu : O mare - Scrie 1,1 ( colt_stanga_sus, linie_sus, colt_dreapta_sus) ; Scrie 2,1 ( colt_stanga_jos,linie_jos,colt_dreapta_jos) denumirile din paranteze referindu-se la caracterele pe care ți le-ai definit . E doar o idee, nu știu dacă merge ! Link spre comentariu
mikella Postat Martie 3, 2016 Partajează Postat Martie 3, 2016 Cam asa ar trebui sa fie. Dar cum asociez toate comenzile alea cu o cifra. Adica daca valoarea variabilei este 1 cum afisez acel 1. Plus ca valoarea afisata se schimba mereu. Sa scriu un macro pentru fiecare cifra? Link spre comentariu
UDAR Postat Martie 3, 2016 Partajează Postat Martie 3, 2016 Din păcate cred că trebuie un macro pentru fiecare caracter - literă sau cifră . Link spre comentariu
Elison Postat Martie 3, 2016 Partajează Postat Martie 3, 2016 @mikella, pentru inspiratie ai un exemplu de scriere pe LCD cu font custom. Eu am definit doar cifrele zero,unu si doi, ramane sa le definesti tu pe restul. Mai ai de facut o functie care sa detemine caracterele care trebuie afisate si pozitia lor pe display. Variabila poz. o pasezi cu prefixul "FCV_" (ex:zero(FCV_POZITIE0) neaparat scrise cu litere mari, altfel ai eroare la compilare. Functiile sunt definite in zona de cod suplimentar C, e mai putin de scris, scapi de multe macro si codul este mai usor de urmarit. Dupa cum ai vazut, pe display se pot scrie doar patru caractere in acelasi timp. Pentru primul caracter pozitia este 0, pentru al doilea este 8 s.a.m.d.Poti sa modifici functiile ca sa ai pozitii de la zero la patru. CustomFont.rar Link spre comentariu
mikella Postat Martie 3, 2016 Partajează Postat Martie 3, 2016 Exact asta aveam nevoie! Sa iti dea Dumnezeu sanatate ca ti-ai facut timp sa ma ajuti. Completez eu mai departe restul de caractere. Daca mai am nelamuriri o sa revin, dar sper sa ma descurc si singur. Link spre comentariu
mikella Postat Martie 4, 2016 Partajează Postat Martie 4, 2016 Hai ca m-am impotmolit. Cum asociez variabila "pozitie0" cu numarul care il scriu pe lcd? Adica pozitie0=2 scrie 2, pozitie0=3 scrie3 ....si tot asa. Proiectul meu final ar fi un vitezometru care afiseaza doar doua cifre (10km/h de exemplu). Am reusit sa fac citirea senzorului si pot sa afisez cu font normal, dar nu se va vedea foarte bine din mers, de asta am nevoie de fontul mare. Link spre comentariu
Elison Postat Martie 4, 2016 Partajează Postat Martie 4, 2016 (editat) E simplu, o sa vezi in arhiva atasata cum se face afisarea valorii citite de pe un canal analogic.E testat pe o placa de dezvoltare si caracterele arata mult mai bine ca in simulare.Inlocuieste variabila nr cu variabila ta.Daca nu te descurci, pune codul tau aici si ma ocup eu de partea de afisare. BigFontE.rar Editat Martie 4, 2016 de Elison Link spre comentariu
mikella Postat Martie 4, 2016 Partajează Postat Martie 4, 2016 O sa imi ia ceva timp sa rumeg toate functiile scrise acolo, dar trebuie sa le inteleg pana la urma. Iti multumesc frumos pentru ajutor! Link spre comentariu
Elison Postat Martie 4, 2016 Partajează Postat Martie 4, 2016 (editat) Poate pare complicat, dar nu este chiar asa. Exista functiile de tip void, care sunt facute sa printeze un caracter mare format din caracterele mici(8x5), definite la inceput si scrise in memoria RAM a LCD-ului prin intermediul functiei scrie_ram. Functia de printare a unui caracter mare are si un parametru de tip char (poz) prin care i se transmite in ce pozitie trebuie sa inceapa scrierea caracterului pe display. In partea de calcul se determina care sunt cifrele (denumite SEG0,SEG1,SEG2,SEG3) din care este formata variabila, la mine "nr", la tine turatie. Cand se cunosc aceste cifre, se determina pozitia in care se va afisa fiecare cifra pe display. Asta se face cu o instructiune switch, sunt patru instructiuni pentru ca eu aveam de afisat patru caractere. Tu ai nevoie doar de doua, spuneai ca variabila ta are doar doua caractere. Eu am scris cea mai mare parte a codului in C, se putea face si altfel, de fapt intotdeauna exista mai multe cai de a rezolva o problema, poate eu nu am ales-o pe cea mai simpla si in mod sigur se mai poate simplifica mult, insa trebuie sa ai chef si timp pentru asta. Mai exista pe acolo doua instructiuni if, una se uita daca variabila s-a modificat si doar atunci scrie caracterele pe display, iar cealalta nu afiseaza prima cifra daca este egala cu zero. Probabil ca daca faceam programul asa cum se face de obicei in flowcode, il intelegeai mai usor, dar sunt convins ca o sa-l intelegi si asa. Important este sa termini ce ai inceput si sa functioneze exact asa cum ti-ai dorit. Daca o sa faci multe proiecte in flowcode, o sa reusesti sa scrii tot programul intr-un singur icon, se poate si arata bine, mult mai bine. Multumesc pentru urari si iti doresc multa sanatate ! Editat Martie 4, 2016 de Elison Link spre comentariu
mikella Postat Martie 4, 2016 Partajează Postat Martie 4, 2016 In mare am inteles ce face fiecare functie. Am modificat putin fcf-ul pentru ce am eu nevoie. Asta este doar o schita, mai urmeaza sa adaug si doua intrari adc pentru citire nivel benzina si temperatura, plus calculele pentru citire viteza. Acum este construit ca un frecventmetru.Cu ce program deschid fisierul in care ai desenat caracterele? Sanatate! BigFontFinal.rar Link spre comentariu
Elison Postat Martie 4, 2016 Partajează Postat Martie 4, 2016 Asa cum este acum, programul tau sta intr-o bucla infinita. Desi nu folosesti nicaieri timer 0, am vazul ca pe undeva il resetezi. Maine o sa ma uit mai atent si daca am timp, o sa verific partea de afisare. Cred ca mai intai ar fi bine de stiut cum o sa masori turatia,in ce gama, cum o sa implementezi asta in program. Aici vad doar doar un flag care iti da secunda si bucla infinita. Intrebarea ta probabil ca se refera la fisierele care au extensia .dsn, acestea se deschid cu Proteus si sunt create cu versiunea 7.4. Link spre comentariu
mikella Postat Martie 5, 2016 Partajează Postat Martie 5, 2016 Bucla se executa doar când flag=0. Acolo trebuia sa resetez timer2, am uitat sa modific la loc. In simulare in proteus merge softul. Daca injectez semnal pa A0 măsoară frecventa corect. 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