nickrvl Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 Nu mai pot modifica postul ulterior...., nu am facut un ceas vreodata ca sa pot da sfaturi concrete insa am vazut prin alte scheme trimer pus pe quart pentru reglaj fin, pentru a elimina abaterile. Link spre comentariu
fratello Postat Ianuarie 5, 2016 Autor Partajează Postat Ianuarie 5, 2016 Multumesc ! ...minutele (dar si orele) se setau foarte greu, schimbarea acestora fiind foarte rapida. Am introdus asta in program : If Min_key = 0 Then Incr _min wait 1 scnd = 0 Este OK ? Link spre comentariu
nico_2010 Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 Fratello, "wait 1" inseamna asteptare 1 (o) secunda. Esti convins ca asta vrei? Link spre comentariu
fratello Postat Ianuarie 5, 2016 Autor Partajează Postat Ianuarie 5, 2016 Vreau un "delay" in setarea orelor/minutelor... Link spre comentariu
nico_2010 Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 Fratello, incearca intai cu "waitms 300", introduce o intarziere de 300ms. Daca tot se misca aiurea mareste la 500 ... 600ms intarzierea. Link spre comentariu
fratello Postat Ianuarie 5, 2016 Autor Partajează Postat Ianuarie 5, 2016 (editat) OK ! ..... Gata ! L-am pus la treaba ...voi urmari precizia. Am folosit : If Min_key = 0 Then scnd = 0 Incr _min waitms 500 If _min > 59 Then _min = 0 Call Wait4key End If Totusi .. o nelamurire : de ce trebuie sa "numere" pana la 64 ?! Se ""pierde" undeva din durata secundei ? Editat Ianuarie 5, 2016 de fratello Link spre comentariu
Dan57 Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 Acum merg la "origini", nu ar fi fost mai simplu sa faci putina galagie la cei de la Dolce sa primesti un receptor cu ceas? Au venit si la mine cu unul fara ceas dar am facut putin pe prostul si pana la urma au adus un receptor cu ceas si chiar arata destul de bine noul model. Ai ales un drum destul de complicat, oricum, succes. Link spre comentariu
nico_2010 Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 @Dan57: esti off-topic. Urmatoarea postare off-topic va fi stearsa. Userul are placerea de a construi ceva. Banuiesc ca nu ii este asa de greu sa cumpere unul, dar care ar mai fi placerea de a mesteri ceva cu mana lui? Link spre comentariu
ratza Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 OK ! ..... Gata ! L-am pus la treaba ...voi urmari precizia. Am folosit : If Min_key = 0 Then scnd = 0 Incr _min waitms 500 If _min > 59 Then _min = 0 Call Wait4key End If Totusi .. o nelamurire : de ce trebuie sa "numere" pana la 64 ?! Se ""pierde" undeva din durata secundei ? 32768 / 512 = 64 Adică fix o secundă. Link spre comentariu
nico_2010 Postat Ianuarie 5, 2016 Partajează Postat Ianuarie 5, 2016 Potrivit Help-ului BASCOM, comanda "CONFIG CLOCK = soft", presupune generarea unei intreruperi care acceseaza subrutina "Sectic" la o secunda. Link spre comentariu
fratello Postat Ianuarie 5, 2016 Autor Partajează Postat Ianuarie 5, 2016 Userul are placerea de a construi ceva. Banuiesc ca nu ii este asa de greu sa cumpere unul, dar care ar mai fi placerea de a mesteri ceva cu mana lui? Exact ! ... Am ramas impresionat cat de usor se poate face un ceas cu un Atmega : http://www.avrprojects.net/index.php?option=com_content&view=article&id=41:real-time-clock-atmega16&catid=14&Itemid=148 Nu zic ca nu se poate si in PicBasicPro, de exemplu (http://www.picbasic.co.uk/forum/content.php?r=254-Working-clock-example-using-32K-watch-crystal). Dar, cel putin in ceea ce priveste afisarea pe un display cu 7 segmente, multiplexat, BASCOM imi pare a fi SUPER ! Link spre comentariu
fratello Postat Ianuarie 6, 2016 Autor Partajează Postat Ianuarie 6, 2016 Pana acum, de ieri de la orele 15, zero secunde abatere ! Sunt foarte incantat ! Nu pot folosi decat o data butonul de "Multumesc", asa ca multumesc in acest mod tuturor celor care m-au ajutat ! Nota : nu am folosit condensatorii interni ai Atmega , ci doi condensatori sortati de 22pF. Link spre comentariu
nico_2010 Postat Ianuarie 6, 2016 Partajează Postat Ianuarie 6, 2016 Felicitari si la mai multe proiecte cu Atmel. Link spre comentariu
fratello Postat Ianuarie 6, 2016 Autor Partajează Postat Ianuarie 6, 2016 (editat) Daca tot am luat-o pe calea Atmel/Bascom ... In acest post (http://www.elforum.info/topic/42035-bascom/?p=420353) am gasit si softul pentru schema din primul meu post (http://www.tehnari.ru/f170/t61589/), care este insa pentru afisoare cu catod comun ! Am incercat sa-l modific pentru anod comun : Portb = &H0F siData &H77 , &H4C , &H45 , &H27 , &H85 , &H84 , &H57 , &H04 , &H05 , &H14, &HFF dar nu-mi apare nimic pe display. Si mai are doua neajunsuri acest soft : nu afiseaza secundele (desi PD2 este conectat la DP) si afiseza "0" inaintea orelor. Ce ziceti ? Putem sa-l modificam, astfel incat in acest topic sa avem mai multe variante de ceas bazate pe aceasta simpla schema cu Atmega 8 ? Va multumesc, din nou, anticipat ! ' Пример часов которые отображают часы и минуты на семисегментном' четырехсимвольном светодиодном индикаторе' прога для ознакомления, работает 100%' выставленные фюзы (в понипроге стоят галки на):CKOPT,BOOTSZ1,BOOTSZ0,SUT1,SUT0,CKSEL3,CKSEL1,CKSEL0' Кварц выдрал из маленького тетриса с часами, думаю также подойдет из любых кварцевых наручных/настенных часов'насчет точности - терпения больше 2х дней не хватило, идут точно, секунда в секунду.'e-mail [email protected]$regfile = "m8def.dat" ' мега8$crystal = 8000000Config Portb = Output , Portd = Output ,Config Pinc.3 = Input 'конфигурируем порты на выходPortc.5 = 1Portc.4 = 1Dim I As Byte , X As Byte , Y As Byte , Temp As Integer , Bn(10) As Byte , Cifri(5) As Integer 'задаем всякие переменные и масивы ''Dotx As IntegerRestore Dta ' говорим из какой таблици нужно заносить данные в масивFor I = 1 To 10 ' начало циклаRead Bn(i) ' поочериде заносим ячейки из таблици в масивNext ' конец циклаConfig Clock = Soft ' конфигурируем совтовые часы_sec = 0 : _min = 0 : _hour = 0 ' задаем конкретные значения времени, с которого часы будут начинать считать при включении питанияConfig Timer0 = Timer , Prescale = 8 ' конфигурируем таймер 0 чтоб потом на него повесить алгоритм отображения цифрConfig Timer1 = Counter , Edge = Falling , Prescale = 1 ' конфигурируем таймер 1 на подсчет импульсов на кварце, припаянного к Xtal1 Xtal2 на 32768 гц БЕЗ КОНДЕРОВ!On Timer0 Pulse ' назначаем подпрограмму, которая будет запускатся по переполнению 1го таймераEnable Interrupts 'разрешаем прерыванияEnable Timer0Config Debounce = 30 'разрешаем таймер0' начало основного циклаDoDebounce Pinc.4 , 0 , Minuti , SubDebounce Pinc.5 , 0 , Chasi , SubTemp = _hour * 100 ' "складываем" часы с минутами так чтобы получилось 4хзначное число тоесть 8часов+59мин = 859Temp = Temp + _minFor I = 1 To 4 ' цикл разбиения склеенных часов с минутами на цифры и занесения каждой в таблицу масиваCifri(i) = Temp Mod 10 ' берем последнюю цифру (9)If Cifri(i) = 0 Then 'Cifri(i) = 10 'Goto T 'End If 'Temp = Temp - Cifri(i) ' вычитаем из часов/минут последнюю цифру 859-9=850T: 'Temp = Temp / 10 ' отбрасываем последний ноль 859/10=85Next 'возвращаемся к началу цикла и заносим следующюю цифру в масив' Dotx = _sec Mod 2Loop 'конец основного циклаEnd ''Pulse: ' подпрограмма прерываний таймера0'If Pinc.3 = 0 Then'ElseIncr X ' увеличиваем х на единицу, для выбора нужных цифр из таблици'Portb = &HFF ' гасим индикаторPortb = &H0F ' AICI AM MODIFICAT EUPortd = Bn(cifri(x))Set Portd.2'If Dotx = 0 Then Reset Portd.2 Else Set Portd.2 ' подаем на индикатор цифру из масива Bn с номером cifri(x)Y = X - 1 ' считаем какую конкретно цифру, из 4х нужно сейчас зажечьReset Portb.y ' зажигаем нужную цифру под номером игрикIf X = 4 Then X = 0 ' обнуляем х при достижении его величины 4'End IfReturn' возвращаемся на место откуда прервали программуDta: ' таблица с данными о цифрах зажигает по порядку : 1234567890'Data &H88 , &HB3 , &HBA , &HD8 , &H7A , &H7B , &HA8 , &HFB , &HFA , &HEB 'Data &H77 , &H4C , &H45 , &H27 , &H85 , &H84 , &H57 , &H04 , &H05 , &H14, &HFF ' SI AICI AM MODIFICAT EUMinuti:Incr _minIf _min = 60 Then_min = 00Incr _hourEnd IfIf _hour > 23 Then _hour = 00_sec = 00Return'Chasi:Incr _hourIf _hour > 23 Then _hour = 00Return Colegul yo9hnf avea dreptate : nu sunt afisate corect cifrele ! Asa arata "10:10" Editat Ianuarie 6, 2016 de fratello Link spre comentariu
nico_2010 Postat Ianuarie 6, 2016 Partajează Postat Ianuarie 6, 2016 Putina rabdare 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