Cilibiu Postat Februarie 6, 2010 Autor Partajează Postat Februarie 6, 2010 Nu merge, imi apare 2 liniunte si atat!In simulare folosesc atmega8 si atat, in program proteus! Link spre comentariu
JQ Postat Februarie 6, 2010 Partajează Postat Februarie 6, 2010 in mod normal primul cod postat de tine ar trebui sa functioneze la infinit. 'You can write a never-ending loop with the following codeDo'Your code goes hereLoop Link spre comentariu
Cilibiu Postat Februarie 6, 2010 Autor Partajează Postat Februarie 6, 2010 Da , o ia de la capat!Am gasit si cum sa fac cu buton!Dar nu gasesc pentru afisarea celor 2 digi atat de repede incat sa creeze impresia ca sunt ambele aprinse in acelasi timp! Link spre comentariu
JQ Postat Februarie 6, 2010 Partajează Postat Februarie 6, 2010 micsoreaza toate acele "wait100" Link spre comentariu
Cilibiu Postat Februarie 6, 2010 Autor Partajează Postat Februarie 6, 2010 Am tot dat pana la 1 ms si atunci numi apare decat o liniuta pe display! Link spre comentariu
JQ Postat Februarie 6, 2010 Partajează Postat Februarie 6, 2010 Atunci o fi ceva de la Proteus. Link spre comentariu
Cilibiu Postat Februarie 6, 2010 Autor Partajează Postat Februarie 6, 2010 Alt proiect merge, doar cea ce fa eu nu merge! Link spre comentariu
JQ Postat Februarie 6, 2010 Partajează Postat Februarie 6, 2010 daca merge cu "waitms100" , atunci cu cat mai scazi , cu atat afisarea devine mai rapida, nu vad de ce nu ar merge in realitate. Link spre comentariu
Cilibiu Postat Februarie 6, 2010 Autor Partajează Postat Februarie 6, 2010 In realitate nu am, deoarece eu acum doar invat pe pc si in simulator!Am un proiect gata facut de la un user si acela afiseaza cum trebuie, dar nu are cu waitms ...... are alte comenzi, dar nu stiu care din ele sa le sustrag.Codul mai jos despre acel voltmetru cu atemega8!$regfile = "m8def.dat"$crystal = 4000000'$ baud = 2400Config Timer0 = Timer , Prescale = 8Dim Timecount As Word : Timecount = 0Config Adc = Single , Prescaler = Auto , Reference = InternalEnable InterruptsEnable Ovf0On Ovf0 Overflow_isrTcnt0 = &H19Dim I As ByteConfig Pinc.5 = InputConfig Portd = Output'Portd = 0Config Pinb.0 = Output'Portb.0 = 0Config Pinb.1 = Output'Portb.1 = 0Config Pinb.2 = Output'Portb.2 = 0Config Pinb.3 = Output'Portb.3 = 1Config Pinb.4 = OutputConfig Pinb.5 = Output'ordinul unitatilorDim L(10) As ByteL(1) = &B10000110L(2) = &B11011011L(3) = &B11001111L(4) = &B11100110L(5) = &B11101101L(6) = &B11111101L(7) = &B10000111L(8) = &B11111111L(9) = &B11101111L(10) = &B10111111'ordinul zecilorDim Le(10) As ByteLe(1) = &B00000110Le(2) = &B01011011Le(3) = &B01001111Le(4) = &B01100110Le(5) = &B01101101Le(6) = &B01111101Le(7) = &B00000111Le(8) = &B01111111Le(9) = &B01101111Le(10) = &B00111111Dim Channel As ByteDim W As LongDim Ss As ByteDim Ad As LongDim S(4) As String * 1Dim Sa As String * 5Dim Sl(4) As Byte 'Show variablesDo'------------------------------------ Battery voltage detectionW = 0Ss = 1Ad = 0For Ss = 1 To 20Start AdcChannel = 5W = Getadc(channel)Stop AdcAd = Ad + WNext SsAd = Ad / 20Ad = Ad * 2560If W < 1 ThenAd = Ad / 10023ElseAd = Ad / 1023End IfSa = Str(ad)Sa = Format(sa , "000")S(2) = Mid(sa , 3 , 1)S(3) = Mid(sa , 2 , 1)S(4) = Mid(sa , 1 , 1)I = Val(s(2))If I = 0 ThenSl(2) = L(10)ElseSl(2) = L(i)End IfI = Val(s(3))If I = 0 ThenSl(3) = L(10)ElseSl(3) = L(i)End IfI = Val(s(4))If I = 0 ThenSl(4) = Le(10)ElseSl(4) = Le(i)End IfLoopEndOverflow_isr:Tcnt0 = &H19Incr TimecountIf Timecount = 15 Then '1 m 502 = 1s 4m 2008 = 1sTimecount = 0Portb.0 = 0Portd = Sl(2)Waitms 5Portb.0 = 1Portb.1 = 0Portd = Sl(3)Waitms 5Portb.0 = 1Portb.1 = 1Portb.2 = 0Portd = Sl(4)Waitms 5Portb.2 = 1End IfReturn Link spre comentariu
JQ Postat Februarie 6, 2010 Partajează Postat Februarie 6, 2010 incearca fara nici un delay. Link spre comentariu
Cilibiu Postat Februarie 6, 2010 Autor Partajează Postat Februarie 6, 2010 Face exact cum ar fi waitms 2, deci tot asa mi se vede, nu se vede cum trebuie, daca bag waitms 100, atunci pe primul digit imi apare "c" iar dupa 100ms se stinge si se aprinde al 2 digit cu cifra "7" pe el si o ia de la capat!Dar fara wait tot asa face! Link spre comentariu
nickrvl Postat Februarie 6, 2010 Partajează Postat Februarie 6, 2010 Face exact cum ar fi waitms 2, deci tot asa mi se vede, nu se vede cum trebuie, daca bag waitms 100, atunci pe primul digit imi apare "c" iar dupa 100ms se stinge si se aprinde al 2 digit cu cifra "7" pe el si o ia de la capat!Dar fara wait tot asa face!Proteus nu reda intodeauna realitatea, nu ar fi nici o surpriza ca facind montajul sa constati ca de fapt functioneaza corect adica nu o sa se vada nici o intrerupere in afisare. Link spre comentariu
Cilibiu Postat Februarie 6, 2010 Autor Partajează Postat Februarie 6, 2010 Mersi mult de sfta! asa o sa fac! Link spre comentariu
danzup Postat Februarie 7, 2010 Partajează Postat Februarie 7, 2010 Ajuta daca vrei, daca nu lasal pe altul si tineti reprosurile pentru tine Ok !Nu se vede bine in poza cum e conectat , zi-mi la ce port ai cele 7 segmente , la ce port ai cei 6 digiti si la ce port ai butoanele te rog si-ti arat cum se face .Digitii sunt cu anod comun sau catod comun ?Ii comanzi cu tranzistoare sau direct ?Ca sa stiu cum scriu codul in Bascom . Link spre comentariu
nickrvl Postat Februarie 7, 2010 Partajează Postat Februarie 7, 2010 Aici am pus un exemplu care se poate modifica si dezvolta, sint fisiere Bascom cu soft si Proteus pentru simulare.Cum am zis e un exemplu adica treaba e pe jumatate facuta mai departe se poate modifica/imbunatati atit softul cit schema.[attachment=0]c.zip[/attachment] 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