Перейти к блогу GetChip.net - блог        JilTE[1] - в разработке     Модификации устройств - модификации

 
Текущее время: 07 апр 2020, 21:14

Часовой пояс: UTC + 3 часа [ Летнее время ]



Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Анти-спам
Анти-спам:
Выполните задание
   

Обзор темы - Начинающим программировать в АБ
Автор Сообщение
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
https://lektsii.com/1-45344.html

Вложение:
1.png
1.png [ 66.59 КБ | Просмотров: 1798 ]
Сообщение Добавлено: 08 сен 2018, 17:28
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
Привет! Нет, не путаю. Прескалер - это не коэффициент деления, а счетчик с этим коэффициентом. Аппаратный счетчик, а не виртуальный.
И, как я понимаю, он "крутится" и считает независимо от того, включен в данный момент таймер, или нет.
Предположим, что Fкамня = 4000000 Гц, и Кпрескалера = 64. Это значит, что таймер будет "тикать" каждые 16 мкс, по переполнению прескалера. Если таймер активировать в тот момент, когда в крескалере УЖЕ будет b#00111111, то таймер начнет считать уже на следующий машинный такт (через 0,25 мск), а если таймер включить, когда в прескалере будет всего b#00000001, то первый "тик" таймера произойдет аж через 16 мкс! То есть, в зависимости от того, в какой момент будет активирован таймер, возникает не нормируемая задержка в пределах от 250 нс до 16 мкс.
Отсюда и возникает вопрос о том, как обнулять счетчик прескалера перед запуском таймера, чтобы исключить или минимизировать эту аппаратную, но не предсказуемую, ошибку при точном измерении отрезков времени.
Кажется, в старой книжке Евстифеева такой режим описан (когда-то читал, не могу сейчас найти), но на практике реализовать его тогда не удалось, а сейчас снова возникла эта проблема. Вот и поинтересовался у сообщества, мо-быть кто-то знает, как это делается.
Требуется считать время с точностью не хуже 1 мкс Мегой 328 с 16 МГц кварцем.
Сообщение Добавлено: 08 сен 2018, 14:46
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
Привет!
"но при этом счетный регистр прескалера сохраняет накопленное значение"
Понятие prescaler не с чем не путаете? Потому что prescaler - это значение (коэффициент) на которое делится частота генератора таймера. Соответственно там ничего не накапливается.
Или я чего то не так понял?
Сообщение Добавлено: 08 сен 2018, 11:45
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
Гость писал(а):
Можно ли управлять этим пином программно, допустим, по прерыванию другого таймера, не дергая PD5 "снаружи"?

Вопрос снят - моделирование в АБ показало возможность программного управления "счетчиком событий" на Timer1.

Обнулять прескалеры таймеров по-прежнему не получается. ((( Подскажите, плз, если есть такая возможность.
Сообщение Добавлено: 07 сен 2018, 14:23
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
Доброго времени.
Возникла пара вопросов не совсем по АБ, но все же:

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

Можно ли как-то принудительно обнулять регистр прескалера таймера (любого)? Регистр сравнения OCR** обнуляется, допустим, при совпадении, но при этом счетный регистр прескалера сохраняет накопленное значение, а это вносит довольно заметную ошибку при измерении коротких временнЫх интервалов.
Сообщение Добавлено: 07 сен 2018, 10:54
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
1 используй Sheft+F3 - это актуальное представление данных в коде (другие варианты остались с ранних версий для совместимости)
2 заданные в макросе параметры можно использовать как угодно в теле макроса. при компиляции программы все параметры просто заменяются прописанными значениями
3 кусок кода можно вставить только скрином (ну или скинуть файл вкладки)
Сообщение Добавлено: 23 июн 2018, 00:24
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
sckameikin22 писал(а):
И как сейчас идет работа?
Если вопрос адресован мне, то ответ - успешно. :) Учусь понемногу.

Появились очередные вопросы:
1) При размещении данных непосредственно в коде программы, строки с данными маркируются маленькими черными квадратами в начале строки (Sheeft+F3).
Но мне встречалась запись и другого типа, когда в начале строки стоит "DB:", а затем символьные данные.
В чем отличие этих типов записей, и когда применяется первый тип, а когда второй?
2) Можно ли многострочную запись первого типа (массив данных) с именами меток перед каждой строкой (D_1, D_2, и т.д.), использовать в пользовательских макросах c заданными параметрами, указывая в качестве параметра номер строки (D_~1, D_~2, и т.д.)? Если можно, то как это сделать? Поясню: строки одинаковые, но отличаются друг от друга "в мелочах", и в зависимости от условий мне нужно выводить на печать ту, или иную строку.
3) Как в текст сообщения вставить кусок кода из АБ? Сделать скрин нужного фрагмента, и добавить его как рисунок в сообщение, или есть другой способ?
Сообщение Добавлено: 22 июн 2018, 09:36
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
И как сейчас идет работа?
Сообщение Добавлено: 19 июн 2018, 11:34
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
Гость писал(а):
И все же, в какой кодировке посылает символы?

по умолчанию ASCII
Сообщение Добавлено: 18 июн 2018, 12:37
  Заголовок сообщения:  Re: Начинающим программировать в АБ  
Цитата
И все же, в какой кодировке посылает символы на UART АБ?
Термопринтер, который я планирую установить в устройство, поддерживает десятка три таблиц, в т.ч. несколько с кириллицей. Какую из них выбрать для работы?
Сообщение Добавлено: 18 июн 2018, 09:10

Часовой пояс: UTC + 3 часа [ Летнее время ]


Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB