Технический форум
Вернуться   Технический форум > Электроника, самоделки и техника > Форум по электронике > Микропроцессоры


Ответ
 
Опции темы Опции просмотра
Старый 23.09.2015, 19:18   #1 (permalink)
Dima223
Member
 
Регистрация: 04.11.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 76
По умолчанию Часы на ATmega-8A

Начал осваивать микроконтроллеры. решил реализовать часы на семисегментном индикаторе. В результате часы отстают на 15сек каждую минуту. Мог увеличить период и подстроить, но шли бы они не совсем точно. Попробовал реализовать используя ассинхронный режим и часовой кварц (пока только Proteus). Результат - снова отставания на 15 сек каждую минуту.
Думаю проблема или в Протеусе или в программе индикации "Prog2"
Знаю что написано коряво (и не смотрите на комменты), но долго думал и так ошибку и не нашел.
Интересный факт, что реализовав часы 3-мя способами остается это отставание.
Подскажите пожалуйста, буду очень благодарен.
Компилятор IAR. Файл протеуса в архиве в папке Prot
"https://yadi.sk/d/pLgsBu4VjGu9t"
Dima223 вне форума   Ответить с цитированием

Старый 23.09.2015, 19:18
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я отправлю вам похожие топики, они могут вам помочь

Доктор фьюзов для AVR - ATmega Fusebit Doctor
Опрос светодиодов при помощи микроконтроллера Atmega 169PV с 54 входами
SPI для ATmega 128A на ассемблере

Старый 24.09.2015, 01:38   #2 (permalink)
Azziop
deleted
 
Аватар для Azziop
 
Регистрация: 23.07.2012
Сообщений: 4,803
Записей в дневнике: 2
Сказал(а) спасибо: 3
Поблагодарили 16 раз(а) в 1 сообщении
Репутация: 16352
По умолчанию

Не понятно, часы реализованы в железе, или только в симуляторе?
Azziop вне форума   Ответить с цитированием
Старый 24.09.2015, 09:01   #3 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 739
Сказал(а) спасибо: 307
Поблагодарили 27 раз(а) в 3 сообщениях
Репутация: 10792
По умолчанию

Цитата:
TIFR &=~(1<<6); //cbroc flag prerivania
по даташиту флаг сбрасывается логической единицей:
Цитата:
TOV2 is cleared by hardware
when executing the corresponding interrupt Handling Vector. Alternatively, TOV2 is
cleared by writing a logic one to the flag.
кварц какой?

на первый взгляд все правильно

Последний раз редактировалось grelly; 24.09.2015 в 09:06
grelly вне форума   Ответить с цитированием
Старый 24.09.2015, 09:32   #4 (permalink)
Dima223
Member
 
Регистрация: 04.11.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 76
По умолчанию

Цитата:
Сообщение от Azziop Посмотреть сообщение
Не понятно, часы реализованы в железе, или только в симуляторе?
В симуляторе.
Dima223 вне форума   Ответить с цитированием
Старый 24.09.2015, 09:34   #5 (permalink)
Dima223
Member
 
Регистрация: 04.11.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 76
По умолчанию

Цитата:
Сообщение от grelly Посмотреть сообщение
по даташиту флаг сбрасывается логической единицей:
кварц какой?

на первый взгляд все правильно
Кварц 32768 Гц. Оно и без строки сброса флага так и работало. Я ее потом добавил когда искал проблемы и не помогло.
Dima223 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 24.09.2015, 11:33   #6 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 739
Сказал(а) спасибо: 307
Поблагодарили 27 раз(а) в 3 сообщениях
Репутация: 10792
По умолчанию

ну если смотреть по времени симуляции в протеусе все правильно работает. скорее всего это тормоза самого симулятора.
grelly вне форума   Ответить с цитированием
Старый 24.09.2015, 17:20   #7 (permalink)
Dima223
Member
 
Регистрация: 04.11.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 76
По умолчанию

Цитата:
Сообщение от grelly Посмотреть сообщение
ну если смотреть по времени симуляции в протеусе все правильно работает. скорее всего это тормоза самого симулятора.
И правда. Почему я туда раньше не посмотрел....
Спасибо огромное.
Dima223 вне форума   Ответить с цитированием
Старый 24.09.2015, 17:57   #8 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 739
Сказал(а) спасибо: 307
Поблагодарили 27 раз(а) в 3 сообщениях
Репутация: 10792
По умолчанию

Цитата:
Сообщение от Dima223 Посмотреть сообщение
Спасибо огромное.
да незачто) нашел пару ошибок в своем коде пока курил даташит)
grelly вне форума   Ответить с цитированием
Старый 26.09.2015, 14:05   #9 (permalink)
Dima223
Member
 
Регистрация: 04.11.2014
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 76
По умолчанию

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;

Помогите пожалуйста
Dima223 вне форума   Ответить с цитированием
Старый 26.09.2015, 16:35   #10 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 739
Сказал(а) спасибо: 307
Поблагодарили 27 раз(а) в 3 сообщениях
Репутация: 10792
По умолчанию

а симулятора нет? глянь что возвращает TESTBIT(PINC,1); скорее всего вернет 2(а точнее 0b10)
grelly вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 16:10.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.