Sari la conținut
ELFORUM - Forumul electronistilor

Numarator attyni


nickrvl

Postări Recomandate

Ma chinui sa fac un programel care trebuie sa numere si sa afiseze pe ecran LCD succesiunea de numere. Mai jos e programelul.Cursor OffClsConfig Timer0 = Timer , Prescale = 8Enable Timer0Enable InterruptsOn Timer0 TimpTimp: Incr J If J < 200 Then Goto E J = 0 If S = 100 Then S = 0 Incr S Locate 2 , 4 Lcd S ; " " E:ReturnProblema este ca numara de la 1 la 5 si o ia de la capat.Normal trebuie sa numere pina la 100, si e musai sa folosesc Timer-ul, ce gresesc?

Link spre comentariu
  • Răspunsuri 4
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • nickrvl

    3

  • Mikrosha

    1

Top autori în acest subiect

Ai dezactivat watchdogu'? :jytuiyu

Nu prea stiu cu ce se maninca acest watchdog. Problema e ca momentan fac simulari in Proteus pentru ca montajul nu mai e functionabil din cauza de blocat Mc insa atunci cind mergea tot asa mergea deci corespunde cu simularea si viceversa. Acum in Proteus cica ar avea dupa cum se vede in poza, daca despre asta e vorba am incercat si activat si dezactivat cu aceleasi rezultate. Cred insa ca e ceva legat de timer insa nu ma prin de loc ce, pentru ca numaratul se modifica in functie de prescaler. M-ar ajuta mult un exemplu de-al vostru daca s-ar putea....[attachment=0]proteus.jpg[/attachment]
Link spre comentariu

Ai dezactivat watchdogu'? :jytuiyu

Nu prea stiu cu ce se maninca acest watchdog. Problema e ca momentan fac simulari in Proteus pentru ca montajul nu mai e functionabil din cauza de blocat Mc insa atunci cind mergea tot asa mergea deci corespunde cu simularea si viceversa. Acum in Proteus cica ar avea dupa cum se vede in poza, daca despre asta e vorba am incercat si activat si dezactivat cu aceleasi rezultate. Cred insa ca e ceva legat de timer insa nu ma prin de loc ce, pentru ca numaratul se modifica in functie de prescaler. M-ar ajuta mult un exemplu de-al vostru daca s-ar putea....[attachment=0]proteus.jpg[/attachment]
Am gasit.$regfile = "ATtiny2313.dat"$crystal = 4000000'Config LCDConfig Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 = Portd.6 , E = Portb.3 , Rs = Portb.4Config Lcd = 16 * 2Config Timer0 = Timer , Prescale = 64Dim J As ByteDim S As LongOn Timer0 Timp:Enable InterruptsEnable Timer0DoLoopTimp:Incr J If J < 5 Then Goto E J = 0 Incr S If S = 61 Then S = 0 Locate 2 , 4 Lcd S ; " " E:ReturnEndPur si simplu trebuie pusa o bucla DO LOOP si merge, nu stiu de ce...
Link spre comentariu
  • 1 lună mai târziu...
Vizitator TheAngel

Bucla do loop trebuie pusa pentru ca altfel mcu-ul continua executia programului si dupa

Enable Timer0
Probabil ca executa instructiuniile din intreruperea "Timp", si apoi cand incearca sa faca "return" o ia la "arat" prin memorie. Adica sare cu executia in zone de memorie unde tu nu ai program.
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