Sari la conținut
ELFORUM - Forumul electronistilor

Afisare text mare pe un lcd graphic cod bascom si numarator!


Cilibiu

Postări Recomandate

   Texttolcd = Fusing(volt2 , "#.#") <<<<<< asta vreau sa modific sa nu mai apara 0.0, daor 
Cu
   Texttolcd = Fusing(volt2 , "#") <<<<<<doar un #, fara punct si fara al doilea #
ai incercat?
Se poate folosi asa daca nu deranjeaza punctul de la sfarsit.
Texttolcd = Fusing(volt2 , ".")
sau
Texttolcd = Fusing(volt2 , "#.")
Link spre comentariu
  • Răspunsuri 73
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • Cilibiu

    36

  • iulian2010

    17

  • Liviu M

    16

  • francezu

    2

Top autori în acest subiect

Imagini postate

Din cate stiu a doua varianta am incercato si tot nu vrea, trebuie neaparat #.#!!!Prima varianta nu am incercat, dar am incercat sa pun "0", si cere obligatoriu ca mai sus. nu cred ca merge cu "-"

Link spre comentariu

Se poate folosi asa daca nu deranjeaza punctul de la sfarsit.

Texttolcd = Fusing(volt2 , ".")
sau
Texttolcd = Fusing(volt2 , "#.")
Interesant, in helpul de la bascom scrie altceva (vezi postul meu anterior). :nebunrau: Uite de-aia prefer c-ul. :rade:
Link spre comentariu

Multumesc de ajutor, oricum vroiam fara si sa rezolvat.Am terminat ce miam propus sa fac, uitativa la topicul meu cu computer moto, si o sa intelegeti de ce am deschis eu topicurile astea! :101

Link spre comentariu

Am reventi cu o intrebare legata de COUNTER!

eu am codul acesta :

dim n as wordconfig portd.0= inputn=0doif pind.0=1 thenn=n+1locate 1,1lcd nend ifloopend
Intrebarea mea este,cat de repede reactioneaza atmelul la aceasta comanda?

Pe pinul d.0 voi avea inpulsuri intre 0 si 300hz, la 300hz va reactiona bine? fara sa sara vreun inpuls?

Link spre comentariu

In principiu trebuie sa vezi listing-ul generat de compilator, si pe baza insructiunilor asm sa calculezi perioada buclei do..loop. Apoi se calculeaza frecventa maxima detectata ca fiind: Fmax=1/2*Tloop, unde Tloop este perioada buclei.

Codul nu mi se pare corect, nu detectezi nicicum palierul negativ al semnalului, si daca frecventa este mai mica decat cea limita, contorul se poate incrmenta de mai multe ori pentru acelasi impuls. Poate gresesc totusi, nu folosesc bascom, si nici Atmel.

Link spre comentariu

Pe pind.0 este legat o rezistenta de 1k la masa.Atmelu are quart de 8mhz, in main program do-loop nu am nici o intarziere bagata "wait", iar in main program am 400 randuri-comenzi, nu stiu in cat timp realizeaza o comanda! Dar ma gandesc ca totul depinde si de quart si ca ar fi formul asta: tcomanda=quart/400, unde tcomanda= in cat timp o realizeaza, quart unde este 8mhz, si 400 numarul de comenzi la total, deci ar veni tcomanda=800000/400, tcomanda=20khz , acum nu stiu daca am scris bine dar presupun, deci comanda va fi accesata de 20000 de ori intro secunda, am zis bine?Va rog corectatima daca am scris numa prosti!

Link spre comentariu

Eu faceam referire la bucla do...loop din codul pt counter, nu la bucla programului principal. Nu se calculeaza pe baza instructiunilor bascom ( limbaj de nivel inalt), pentru ca pot avea timp de executie variabil, in functie de parametrii, etc. Repet , trebuie sa vezi asm-ul generat de compilator. O instructiune asm se executa in unul sau mai multe cicluri masina, scrie in datasheet. Durata unui ciclu masina depinde de oscilatorul de tact, formula de calcul o gasesti tot in datasheet. Calculezi astfel durata buclei do..loop si cu formula din postul de mai sus afli frecventa limita.Mai exista o metoda: setezi compilatorul sa genereze fisiere cof/coff si folosesti Proteus pt simulare, avand astfel posibilitatea sa faci debug la nivel de cod sursa ( bascom). Mai departe setezi un breakpoint la inceputul buclei si vezi cat dureaza executia codului intre doua declansari succesive ale breakpoint-ului respectiv.Mai mult nu te pot ajuta, nu folosesc Atmel. Spor la calcule!

Link spre comentariu

Pai counterul este printre cele 400 de randuri, de acea am luat in calcul tot, eu aici am pus doar codul pentru counter.O sa vad in realitate cum e, este mai simplu in realitate,pun un generator de ton, setat la 300hz, si ii dau drumu pentru o secunda, in generator am sa setez tipul cat sa stea on, deci il voi seta la 1 secunda, iar dupa ce sa oprit generatorul vad pe afisaj daca am valoarea 300, asa e mai simplu!O sa mai caut si alte variante.Mersi de ajutor!

Link spre comentariu

Am reventi cu o intrebare legata de COUNTER!va reactiona bine? fara sa sara vreun inpuls?

Cred ca cea mai potrivita solutie e folosirea intreruperilor.Banui ca printre pinii controllerului sunt si unii care sa seteze o intrerupere in cazul in care isi schimba starea. Nu-ti ramane decat ca atunci cand vine o intrerupere sa incrementezi o variabila si din cand in cand sa testezi variabila respectiva.
Link spre comentariu

Pai deja ajung ajung la codul de frecventmetru!Din primul prost si pana acum nu mia dat nimeni un exemplu de counter, asa ca mam decis sa gandesc singur si am gasit solutia asta, daca merge bine daca nu revin la plansa de lucru!

Link spre comentariu
  • 4 ani mai târziu...

Interesant topic.

Ca sa nu mai deschid alt topic,

M-am inspirat din acest topic pentru a face un Volt-Ampermetru cu display grafic,insa am nevoie de font 12x12 si nu gasesc niciunde,am incercat sa creez cu un soft, dar acesta nu salveaza in format .font.

Softul este GLCD Font Creator 1.2.0.

Ma puteti ajuta cu un fisier ceva?

Multumesc.

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