Easyelectronics.ru

Электроника для всех
Текущее время: 30 апр 2017, 21:37

Часовой пояс: UTC + 5 часов



    • Изготовление печатных плат. Примерные цены: 10 штук 2-слоя 100*100mm 8.21$ или около ~470 рублей
    • Создание принципиальных схем и проектирование печатных плат
    • Симуляция работы на spice моделях
    • Просмотр GERBER файлов

Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: ATtiny2313A - тайминг сбит на 1\10
СообщениеДобавлено: 31 янв 2017, 00:30 
Только пришел

Зарегистрирован: 19 янв 2014, 16:42
Сообщения: 20
Здравствуйте!

Поднял на ATtiny2313A диспетчер DI HALT'a отсюда:
http://easyelectronics.ru/avr-uchebnyj- ... ast-2.html
Что для этого потребовалось - прописать в дефайнах файла "iotn2313a.h" регистр SREG, и кое где компилятор студии ругался warning'ами на функции без описания stаtic, в которых использовались переменные static, добавил static в описания этих функций.
Системный тик сделал 2мс, так как 1мс точно не сделать из-за того, что значение для регистра сравнения получается дробное и округляется. А 2мс можно сделать точно.

Проблема в том, что отсчёт здесь ошибается примерно на 1\10 отсчитываемого времени, сделал моргание светодиодом - секунду горит, потом на секунду гаснет, зацикливание двух задач друг на друга, только за 20с, отсчитываемых таймером, реально проходит 18с.

Кто сталкивался, может мутил этот диспетчер, или у ртосин бывают такие проблемы?

Вложение:
Dispatcher 2313A.rar [1.89 Кб]
Скачиваний: 12


Последний раз редактировалось Heisenberg 01 фев 2017, 13:15, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диспетчер DI HALT'a - тайминг сбит на 1\10
СообщениеДобавлено: 31 янв 2017, 00:46 
Старожил

Зарегистрирован: 19 июн 2012, 14:17
Сообщения: 3417
Heisenberg писал(а):
Кто сталкивался, может мутил этот диспетчер, или у ртосин бывают такие проблемы?

Генератор RC или кварц? Если первое, делай калибровку OSCCAL.


Посмотрел твой код, OCR0A в теории должен быть 124, ибо период = (OCR0A + 1)*N/F_CPU
На практике же скорее всего генератор уплыл.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диспетчер DI HALT'a - тайминг сбит на 1\10
СообщениеДобавлено: 31 янв 2017, 01:40 
Только пришел

Зарегистрирован: 19 янв 2014, 16:42
Сообщения: 20
Генератор - внутренний RC.
Да, если по твоей формуле считать, то 124.
я считал: F_CPU/N/1000*2, это чисто логически, не из даташита :)
Поменял в коде на 124, результат тот же, за 18 фактических секунд считает 20с.

Спасибо за совет насчёт калибровки RC-генератора.
Только сначала попробую обычную мигалку сделать, не на диспетчере и сравнить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диспетчер DI HALT'a - тайминг сбит на 1\10
СообщениеДобавлено: 31 янв 2017, 04:16 
Старожил

Зарегистрирован: 31 янв 2010, 20:19
Сообщения: 4918
Откуда: Донецк-Мариуполь
А делитель CLK/8 стоит ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диспетчер DI HALT'a - тайминг сбит на 1\10
СообщениеДобавлено: 31 янв 2017, 12:18 
Только пришел

Зарегистрирован: 19 янв 2014, 16:42
Сообщения: 20
На 64.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Диспетчер DI HALT'a - тайминг сбит на 1\10
СообщениеДобавлено: 31 янв 2017, 12:25 
Старожил

Зарегистрирован: 31 янв 2010, 20:19
Сообщения: 4918
Откуда: Донецк-Мариуполь
Нет, у 2313 есть такой фьюз, причем по умолчанию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Диспетчер DI HALT'a - тайминг сбит на 1\10
СообщениеДобавлено: 31 янв 2017, 20:07 
Только пришел

Зарегистрирован: 19 янв 2014, 16:42
Сообщения: 20
А, CKDIV8, он незапрограммирован.
Этот фьюз давал бы ошибку в 8 раз))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Диспетчер DI HALT'a - тайминг сбит на 1\10
СообщениеДобавлено: 01 фев 2017, 13:13 
Только пришел

Зарегистрирован: 19 янв 2014, 16:42
Сообщения: 20
Сделал задержку на библиотечном _delay_ms (1000), так и есть, генератор уплыл, проверил ещё на нескольких ATtiny2313A - уплытие точно такое же, за 18 реальных секунд МК насчитывает 20с.
Может быть они из одной партии....

С диспетчером DI HALT'a все ок.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ATtiny2313A - тайминг сбит на 1\10
СообщениеДобавлено: 01 фев 2017, 22:40 
Старожил

Зарегистрирован: 19 июн 2012, 14:17
Сообщения: 3417
У тини2313 два RC генератора, видимо при старте автоматом загружается калибровка для 8МГц...
Если есть возможность - прочитай калибровочные байты программатором и посмотри что по факту в OSCCAL


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB