fratello Postat Ianuarie 8, 2016 Autor Partajează Postat Ianuarie 8, 2016 Am incercat o multime de variante, fara succes... Temp = _hour * 100 If temp < 1000 then .... ??? Link spre comentariu
ratza Postat Ianuarie 8, 2016 Partajează Postat Ianuarie 8, 2016 Aşa: if (hour / 10) == 0 DigitOra = Oprit Oprit are valoarea 0x00 sau 0xFF, în funcţie de cum e legat afişajul. Link spre comentariu
fratello Postat Ianuarie 8, 2016 Autor Partajează Postat Ianuarie 8, 2016 "hour" nu exista (doar _hour) ... "==" nu exista (doar =) DigitOra = oprit l-am "tradus" prin : Temp = _hour * 100if temp < 900 then portb.3 = 0 Dar fara niciun rezultat ! Link spre comentariu
djvas Postat Ianuarie 8, 2016 Partajează Postat Ianuarie 8, 2016 de ce nu incerci ce a zis ratza adica in cazul tau if _hour/10=0 then portb.3 := 0 ce limbaj e ? verificare si atribuirea nu pot fi ambele "=" ce ai incercat tu ... temp ce fel de variabila este ? suporta valoarea 900 ? sau e out of range ? Link spre comentariu
fratello Postat Ianuarie 8, 2016 Autor Partajează Postat Ianuarie 8, 2016 $^%$^##@% !!! Am rezolvat-o ! Pulse:Incr XPortb = &B00000000Portd = Bn (Cifra(x))Set Portd.2Y = X - 1Set Portb.yif _hour > 0 and _hour < 10 then portb.3 = 0If Dotx = 0 AND Portb.2 = 1 Then Reset Portd.2 Else Set Portd.2If X = 4 Then X = 0Return Nu gaseam unde trebuie pusa comanda ! Acum totul este OK ! Multumesc pentru sfaturi, indrumari si atentie ! Link spre comentariu
fratello Postat Ianuarie 9, 2016 Autor Partajează Postat Ianuarie 9, 2016 Revin ...dupa realizarea fizica a montajului : comanda mentionata mai sus (de stingere a digitului 1) introduce un flickering suparator al segmentelor "g" ale tuturor digitilor :( ! Am incercat sa mut comanda in alte locuri din program ...dar fara succes ! Daca cineva mai are vreo idee ..... Multumesc ! Link spre comentariu
djvas Postat Ianuarie 9, 2016 Partajează Postat Ianuarie 9, 2016 Ataseaza ultima varianta de cod completa. Ca nu se mai intelege nimic din ce-ai facut. Link spre comentariu
fratello Postat Ianuarie 9, 2016 Autor Partajează Postat Ianuarie 9, 2016 (editat) OK ! $regfile = "m8def.dat" '$crystal = 8000000Config Portb = Output ,Config Portd = Output ,Config Pinc.3 = InputPortc.5 = 1Portc.4 = 1Dim I As Byte , X As Byte , Y As Byte , Temp As Integer , Bn(10) As Byte , Cifra(5) As IntegerDim Dotx as IntegerRestore DtaFor I = 1 To 10Read Bn(i)Next 'Config Clock = Soft_sec = 0 : _min = 0 : _hour = 0Config Timer0 = Timer , Prescale = 8'Config Timer1 = Counter , Edge = Falling , Prescale = 1On Timer0 PulseEnable InterruptsEnable Timer0Config Debounce = 30DoDebounce Pinc.4 , 0 , Minute , SubDebounce Pinc.5 , 0 , Ore , SubTemp = _hour * 100Temp = Temp + _minFor I = 1 To 4Cifra(i) = Temp Mod 10If Cifra(i) = 0 ThenCifra(i) = 10Goto TEnd IfTemp = Temp - Cifra(i)T:Temp = Temp / 10NextDotx = _sec mod 2LoopEndPulse:Incr XPortb = &H00Portd = Bn (Cifra(x))Set Portd.2Y = X - 1Set Portb.yIf Dotx = 0 AND Portb.2 = 1 Then Reset Portd.2 Else Set Portd.2'if _hour > 0 and _hour < 10 then reset portb.3 'sterge "0" pt zecile de ore, dar introduce flickering !If X = 4 Then X = 0ReturnDta:Data &H77 , &H4C , &H45 , &H27 , &H85 , &H84 , &H57 , &H04 , &H05 , &H14, &HFF , &H00Minute:Incr _minIf _min = 60 Then_min = 00_sec = 00End If'If _hour > 23 Then _hour = 00_sec = 00ReturnOre:Incr _hourIf _hour > 23 Then _hour = 0Return Editat Ianuarie 9, 2016 de fratello Link spre comentariu
nico_2010 Postat Ianuarie 9, 2016 Partajează Postat Ianuarie 9, 2016 Intra in System-->Set Animation Option-->Timestemp per frame--> 20 (nu 50) Link spre comentariu
fratello Postat Ianuarie 9, 2016 Autor Partajează Postat Ianuarie 9, 2016 Din pacate nu simularea, ci montajul real prezinta flickering ... Link spre comentariu
fratello Postat Ianuarie 10, 2016 Autor Partajează Postat Ianuarie 10, 2016 Tot "sapand" am gasit, tot la prietenii rusi, versiunea pentru ambele tipuri de display (pt. catod comun sunt comentate liniile de cod corespunzatoare). Am introdus doar linia : if Cifra = 0 then reset portb.3 Nu stiu daca linia : ' Config Timer1 = Counter , Edge = Falling , Prescale = 1 trebuie pastrata sau dezactivata.Am programat un Atmega 8 cu ea dezactivata. Deocamdata merge perfect ceasul. II urmaresc precizia si va tin la curent. Numai bine ! Postez codul, arhivat. clock_final.zip Link spre comentariu
fratello Postat Ianuarie 11, 2016 Autor Partajează Postat Ianuarie 11, 2016 Pana azi dimineata, la ora 7, +/- zero secunde ! Urmeaza un nou display, rosu, mai mare, si asamblarea intr-o cutie adecvata. Link spre comentariu
tehno ton Postat Ianuarie 11, 2016 Partajează Postat Ianuarie 11, 2016 Abia am asteptat finalul. Am sa te rog sa-mi scrii un Atmega. Lasa-mi un numar pe privat. Felicitari. Link spre comentariu
nico_2010 Postat Ianuarie 11, 2016 Partajează Postat Ianuarie 11, 2016 Felicitari pentru reusita! Link spre comentariu
fratello Postat Ianuarie 11, 2016 Autor Partajează Postat Ianuarie 11, 2016 Multumesc... dar nu am chiar niciun merit. Desi, cum am spus, ceasul merge foarte bine, "Nu stiu daca linia : ' Config Timer1 = Counter , Edge = Falling , Prescale = 1 trebuie pastrata sau dezactivata". In codul original este "activa"... 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