Часы на ATmega-8A
Начал осваивать микроконтроллеры. решил реализовать часы на семисегментном индикаторе. В результате часы отстают на 15сек каждую минуту. Мог увеличить период и подстроить, но шли бы они не совсем точно. Попробовал реализовать используя ассинхронный режим и часовой кварц (пока только Proteus). Результат - снова отставания на 15 сек каждую минуту.
Думаю проблема или в Протеусе или в программе индикации "Prog2" Знаю что написано коряво (и не смотрите на комменты), но долго думал и так ошибку и не нашел. Интересный факт, что реализовав часы 3-мя способами остается это отставание. Подскажите пожалуйста, буду очень благодарен. Компилятор IAR. Файл протеуса в архиве в папке Prot "https://yadi.sk/d/pLgsBu4VjGu9t" |
Не понятно, часы реализованы в железе, или только в симуляторе?
|
Цитата:
Цитата:
на первый взгляд все правильно |
Цитата:
|
Цитата:
|
ну если смотреть по времени симуляции в протеусе все правильно работает. скорее всего это тормоза самого симулятора.
|
Цитата:
Спасибо огромное. |
Цитата:
|
DDRC &=~(1<<0);//button 1
PORTC |=(1<<0); temp=TESTBIT(PINC,0); if ((temp==0)&&(temp1==1)) { hour++; } temp1=temp; Добавил кнопку для часов (ножка PC0). Она работает, т.е. добавляет +1 час Добавил кнопку для минут (ножка PC1). Грубо говоря та же программа, одно действие, но вот она не работает и все DDRC &=~(1<<1);//button 2 PORTC |=(1<<1);// t=TESTBIT(PINC,1); if ((t==0)&&(t1==1)) { hour++; } t1=t; Помогите пожалуйста |
а симулятора нет? глянь что возвращает TESTBIT(PINC,1); скорее всего вернет 2(а точнее 0b10)
|
Часовой пояс GMT +4, время: 10:59. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.