http://www.forum.getchip.net/

Начинающим программировать в АБ
http://www.forum.getchip.net/viewtopic.php?f=16&t=231
Страница 22 из 22

Автор:  Гость [ 18 июн 2018, 09:10 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

И все же, в какой кодировке посылает символы на UART АБ?
Термопринтер, который я планирую установить в устройство, поддерживает десятка три таблиц, в т.ч. несколько с кириллицей. Какую из них выбрать для работы?

Автор:  SVN [ 18 июн 2018, 12:37 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ


Автор:  sckameikin22 [ 19 июн 2018, 11:34 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

И как сейчас идет работа?

Автор:  Гость [ 22 июн 2018, 09:36 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ


Автор:  GetChiper [ 23 июн 2018, 00:24 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

1 используй Sheft+F3 - это актуальное представление данных в коде (другие варианты остались с ранних версий для совместимости)
2 заданные в макросе параметры можно использовать как угодно в теле макроса. при компиляции программы все параметры просто заменяются прописанными значениями
3 кусок кода можно вставить только скрином (ну или скинуть файл вкладки)

Автор:  Гость [ 07 сен 2018, 10:54 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Доброго времени.
Возникла пара вопросов не совсем по АБ, но все же:

Таймер1 АТМега*** может работать в режиме счета внешних событий. При этом внешний тактовый (счетный) сигнал должен подаваться на вход Т1 (у Меги328 это вроде пин PD5).
Можно ли управлять этим пином программно, допустим, по прерыванию другого таймера, не дергая PD5 "снаружи"?

Можно ли как-то принудительно обнулять регистр прескалера таймера (любого)? Регистр сравнения OCR** обнуляется, допустим, при совпадении, но при этом счетный регистр прескалера сохраняет накопленное значение, а это вносит довольно заметную ошибку при измерении коротких временнЫх интервалов.

Автор:  Гость [ 07 сен 2018, 14:23 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ


Автор:  GetChiper [ 08 сен 2018, 11:45 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Привет!
"но при этом счетный регистр прескалера сохраняет накопленное значение"
Понятие prescaler не с чем не путаете? Потому что prescaler - это значение (коэффициент) на которое делится частота генератора таймера. Соответственно там ничего не накапливается.
Или я чего то не так понял?

Автор:  Гость [ 08 сен 2018, 14:46 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ

Привет! Нет, не путаю. Прескалер - это не коэффициент деления, а счетчик с этим коэффициентом. Аппаратный счетчик, а не виртуальный.
И, как я понимаю, он "крутится" и считает независимо от того, включен в данный момент таймер, или нет.
Предположим, что Fкамня = 4000000 Гц, и Кпрескалера = 64. Это значит, что таймер будет "тикать" каждые 16 мкс, по переполнению прескалера. Если таймер активировать в тот момент, когда в крескалере УЖЕ будет b#00111111, то таймер начнет считать уже на следующий машинный такт (через 0,25 мск), а если таймер включить, когда в прескалере будет всего b#00000001, то первый "тик" таймера произойдет аж через 16 мкс! То есть, в зависимости от того, в какой момент будет активирован таймер, возникает не нормируемая задержка в пределах от 250 нс до 16 мкс.
Отсюда и возникает вопрос о том, как обнулять счетчик прескалера перед запуском таймера, чтобы исключить или минимизировать эту аппаратную, но не предсказуемую, ошибку при точном измерении отрезков времени.
Кажется, в старой книжке Евстифеева такой режим описан (когда-то читал, не могу сейчас найти), но на практике реализовать его тогда не удалось, а сейчас снова возникла эта проблема. Вот и поинтересовался у сообщества, мо-быть кто-то знает, как это делается.
Требуется считать время с точностью не хуже 1 мкс Мегой 328 с 16 МГц кварцем.

Автор:  SVN [ 08 сен 2018, 17:28 ]
Заголовок сообщения:  Re: Начинающим программировать в АБ



1.png
1.png [ 66.59 КБ | Просмотров: 11522 ]

Страница 22 из 22 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/