nickrvl Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 In cea ce priveste simulatorul din bascom, nu prea ma descurc cu el....poate ma ajuta cineva, mai departe codul pe care vreau sa-l simulez (un VAmetru) si care m-i se opreste la linia 31 (Arata2 = Format(arata , "00.0") ca si cum i-as da STOP. $regfile = "attiny13.dat"'$crystal = 1200000$hwstack = 16$swstack = 16$framesize = 16$noramclearDim Arata As String * 4Dim Arata2 As String * 4Dim Volt As WordDim Curent As WordConfig Adc = Single , Prescaler = Auto , Reference = Internal 'offStart AdcConfig Lcd = 16 * 2 'sau 8 X 2Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0Cursor Off'ClsDoDdrb = &B110010'Config Portb.5 = Input'If Pinb.5 = 0 Then'Do'Loop Until Pinb.5 = 1'End IfVolt = Getadc(1) - 7Arata = Str(volt)Arata2 = Format(arata , "00.0")Curent = Getadc(3) - 7Curent = Curent * 10Ddrb = &B111111UpperlineLcd ; Arata2 ; "V" ; " " 'Chr(32) ; Chr(32)LowerlineLcd ; Curent ; "mA" ; " " 'Chr(32) ; Chr(32)Waitms 500LoopEnd Link spre comentariu
iulian2010 Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Salutare, Linia 31 ar trebui sa fie Arata = Format(arata , "00.0") Link spre comentariu
nickrvl Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Salutare,Linia 31 ar trebui sa fie Arata = Format(arata , "00.0") Asa cum l-am postat functioneaza bine in montaj probleme am numai in simulator.Acum l-am modificat din nou, asa cum ai spus, deasemenea testat si ramine definitiv, merge si in simulator nu mai ramine blocat. Urmatoarea intrebare, cum ma folosesc de LCD-ul din simulator? nu-mi afisaza nimic din cea ce trebui.$regfile = "attiny13.dat"$hwstack = 16$swstack = 16$framesize = 16$noramclearDim Arata As String * 4Dim Volt As WordDim Curent As WordConfig Adc = Single , Prescaler = Auto , Reference = InternalStart AdcConfig Lcd = 16 * 2Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0Cursor OffClsDoDdrb = &B110011'In simulare Proteus merge doar cu getadc(1) insa in realitate trebuie scazut cu 7Volt = Getadc(1) - 7Arata = Str(volt)Arata = Format(arata , "00.0")Ddrb = &B111111UpperlineLcd ; Arata ; "V" ; " "Ddrb = &B110011'difernta fata de simulare cu Proteus, curent a trebuit scazut cu 40 pentru a corespunde cu realitateaCurent = Getadc(3) - 40If Curent < 0 Then Curent = 0'limitat la 10A altfel afiseaza ceva de genul 685465847559, o ia raznaIf Curent > 1000 Then Curent = 0Arata = Str(curent)Arata = Format(arata , "0.00")Ddrb = &B111111LowerlineLcd ; Arata ; "A" ; " "Waitms 100LoopEnd Link spre comentariu
iulian2010 Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Ce ar trebui sa arate? Poti sa dai niste valori? Daca te referi la pornirea simulatorului cand valoarea adc-ului este 0 poti folosi asa Volt = Getadc(1) '- 7If Volt <= 7 ThenVolt = 0ElseVolt = Volt - 7End IfArata = Str(volt)Arata = Format(arata , "00.0")Ddrb = &B111111UpperlineLcd ; Arata ; "V" ; " " Link spre comentariu
nickrvl Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Ce ar trebui sa arate? ....Ar trebui sa afiseze valorile pe "zero" adica 00.0V si 0.00A.Se pare ca simulatorul meu are toane, pina acum i-mi afisa doar 0 si 6 iar acum i-mi afisaza asta:[attachment=0]sim.jpg[/attachment] Link spre comentariu
GeoMar Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Asa imi arata si mie @nickrvl, uite:[attachment=0]Bascom 1.jpg[/attachment] Link spre comentariu
nickrvl Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Asa imi arata si mie @nickrvl...In sfirsit, mergem mai departe, restul de "butonase" si alte alea (in fereastra LCD-ului) la ce folosesc, nu am reusit sa le dau de cap.... Link spre comentariu
iulian2010 Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Ai incercat sa folosesti asta? Volt = Getadc(1) '- 7If Volt <= 7 ThenVolt = 0ElseVolt = Volt - 7End IfArata = Str(volt)Arata = Format(arata , "00.0")Ddrb = &B111111UpperlineLcd ; Arata ; "V" ; " " Link spre comentariu
iulian2010 Postat Martie 6, 2011 Partajează Postat Martie 6, 2011 Intrarea adc-ului suporta tensiuni intre 0-5V. Attiny 13 are convertorul pe 10 biti. Tensiunea de intrare maxima de 5V adica 1023. Daca ai 0 la intrare si tu folosesti -7 este normal sa arate altceva. Butonasele acelea verzi le poti folosi in simulare ca intrari digitale 0 sau 1 logic. Uite un exemplu http://www.microcodes.info/bascom-push-button-lcd-displayed-2089.html Link spre comentariu
nico_2010 Postat Martie 7, 2011 Partajează Postat Martie 7, 2011 Salut! Spuneti-mi si mie de ce scadeti 7, respectiv 40 din valorile masurate de ADC si apoi va mirati de unde valorile aiurea pe care le obtineti pe afisor!! Intreb pentru ca formula de calcul pentru transformarea valorii masurate de ADC din orice uC ATMEL este : U= (ADC*Uref)/1024 (unitatea de masura fiind voltul) In cazul ATtiny13, Uref este 1.1 V (sau pentru usurinta conversiei 1100mV) Link spre comentariu
nickrvl Postat Martie 7, 2011 Partajează Postat Martie 7, 2011 Salut! Spuneti-mi si mie de ce scadeti 7, respectiv 40 din valorile masurate de ADC si apoi va mirati de unde valorile aiurea pe care le obtineti pe afisor!! Intreb pentru ca formula de calcul pentru transformarea valorii masurate de ADC din orice uC ATMEL este : U= (ADC*Uref)/1024 (unitatea de masura fiind voltul) In cazul ATtiny13, Uref este 1.1 V (sau pentru usurinta conversiei 1100mV) La "proiectul meu" am prezentat un VAmetru cu Attiny13 unde nu am reusit sa afisez corect valorile pina ce nu am facut rectificari, acel -7 si -40. Proiectul e liber poti sa-l modifici si sa ne arati si noua cum se poate face corect. In simulare cu Proteus ruleaza bine fara acele "rectificari" dar in realitate are abateri, daca reglez voltii sa afiseze corect la 8V sa zicem atunci cind ajung la 26v se ajunge la un decalaj de 2V, aproximativ. La curent de asemenea, nu pleaca de la "0.00" ci de la "0.40", toate astea probabil din cauza ca e legat in "paralel" cu LCD-ul. Link spre comentariu
nico_2010 Postat Martie 7, 2011 Partajează Postat Martie 7, 2011 Salut! Spuneti-mi si mie de ce scadeti 7, respectiv 40 din valorile masurate de ADC si apoi va mirati de unde valorile aiurea pe care le obtineti pe afisor!! Intreb pentru ca formula de calcul pentru transformarea valorii masurate de ADC din orice uC ATMEL este : U= (ADC*Uref)/1024 (unitatea de masura fiind voltul) In cazul ATtiny13, Uref este 1.1 V (sau pentru usurinta conversiei 1100mV) La "proiectul meu" am prezentat un VAmetru cu Attiny13 unde nu am reusit sa afisez corect valorile pina ce nu am facut rectificari, acel -7 si -40. Proiectul e liber poti sa-l modifici si sa ne arati si noua cum se poate face corect. In simulare cu Proteus ruleaza bine fara acele "rectificari" dar in realitate are abateri, daca reglez voltii sa afiseze corect la 8V sa zicem atunci cind ajung la 26v se ajunge la un decalaj de 2V, aproximativ. La curent de asemenea, nu pleaca de la "0.00" ci de la "0.40", toate astea probabil din cauza ca e legat in "paralel" cu LCD-ul. Pai, nu poti sa te astepti la precizia unui aparat de laborator din cauza faptului ca reglarea corectitudinii valorii de afisat o faci cu potentiometri care, prin definitie, introduc zgomot si erori mecanice, pe de o parte si, pe de alta parte, modul in care se face conversia nu iti permite atingerea unei precizii sporite.Ca exercitiu este interesant, ca utilitate practica nu prea. Este de preferat sa folosesti un uC cu resurse sporite ca sa emiti pretentii de precizie. Link spre comentariu
nickrvl Postat Martie 7, 2011 Partajează Postat Martie 7, 2011 Pai, nu poti sa te astepti la precizia unui aparat de laborator din cauza faptului ca reglarea corectitudinii valorii de afisat o faci cu potentiometri care, prin definitie, introduc zgomot si erori mecanice, pe de o parte si, pe de alta parte, modul in care se face conversia nu iti permite atingerea unei precizii sporite.Ca exercitiu este interesant, ca utilitate practica nu prea. Este de preferat sa folosesti un uC cu resurse sporite ca sa emiti pretentii de precizie.Nu e vorba de precizie, nici nu am pretentii in regim hoby insa cu aceasi semireglabili dar cu modificarea din soft acum am precizie de aproximativ 0.1V raportat la un aparat de masura si incepind de la 0 la 26V, fata de 2V fara modificare in soft raportat la acelasi aparat plecind tot de la 0V pina la 26V. Link spre comentariu
yo9hnf Postat Martie 17, 2011 Autor Partajează Postat Martie 17, 2011 Are cineva idee cum as putea afisa doua tensiuni (o tensiune si un curent) pe un VFD cu 12 digiti ? simultan (ex 12V , 0.5A, toate in linie). Am un VFD cu 12 digiti dintr-un calculator romanesc cu imprimanta si caruia-i pot afla imediat configuratia pinilor. Link spre comentariu
nico_2010 Postat Martie 22, 2011 Partajează Postat Martie 22, 2011 Are cineva idee cum as putea afisa doua tensiuni (o tensiune si un curent) pe un VFD cu 12 digiti ? simultan (ex 12V , 0.5A, toate in linie). Am un VFD cu 12 digiti dintr-un calculator romanesc cu imprimanta si caruia-i pot afla imediat configuratia pinilor.Alimentezi filamentul cu 2V, si, secvential (sau in regim de multiplexare), aplici circa 10-14V pe grila fiecarui digit (celelalte grile sunt pe zero V) si tot atatia volti pe segmentul pe care vrei sa-l aprinzi si, uite asa, comanzi afisorul. 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