Описание: помогите, т.к. еще не совсем разобрался с таймерами, прерываниями |
Поиск в теме | Версия для печати |
cjA |
Отправлено: 23 Ноября, 2013 - 21:14:21
|
Генерал
Сообщений всего: 3291
Дата рег-ции: Янв. 2010
|
Нет, не раз в секунду, таймер тикает раз в тик (например раз в одну восьмимиллионную) плюс делить на предделитель (2, 4, 8, тд) плюс делить еще на одно число для которого специальный регистр, это чтоб точнее было. Этого числа для первого (timer0) так как оно однобайтовое не хватает даже для счетчика секунд (для частоты по умолчанию 8МГц) ...
Сейчас дочитаю, допишу еще
И вот когда все эти числа "сложаться"- возникнет прерывание.
(Добавление)
Alex_och пишет: И 0,5 с - 2000 тиков, 2 с - 8000 тиков Абсалютно правильно! И именно поэтому таймеры нам не нужны. Пишите свою программу, если в Си то читаете листинг. И считаете сколько у нас набегало за основной цикл. Это RISC процессор, почти все операнды выполняются за тик. Обращение к еепром или АДК- не известно, зависит от напряжения, поэтому им отведены прерывания, которые часто и не нужны.
Alex_och пишет:Обнуление переменных перенес в описание таймера // ISR(TIMER0_OVF_vect) // из while. Смотя какая задача стоит. Иногда нужно все в прерывание засунуть, иногда в вайл. Не уверен что это правильное решение. Обнуление должно быть там где у вас секунды отмеряются. (я забыл? вроде timer0 слишком мал чтобы секунды считать.)
(Добавление)
Alex_och И?
Чем отличается побитовое от логического и почему (раз они не отличаются, попой чую) пишут по разному? |
|
|
Alex_och |
Отправлено: 23 Ноября, 2013 - 23:39:06
|
Рядовой
Сообщений всего: 19
Дата рег-ции: Нояб. 2013
|
cjA пишет:
Alex_och И?
Чем отличается побитовое от логического и почему (раз они не отличаются, попой чую) пишут по разному?
Я своими словами объяснить не могу, т.к. еще в этом не разобрался. Но ответ нашел в википедии:
"Ряд источников по языкам низкого уровня называет побитовые логические операции просто логическими[1][2], но в терминологии программирования на языках высокого уровня в названиях битовых операций присутствуют прилагательные битовый, побитовый (например: «побитовое логическое И», оно же «побитовое умножение»), поразрядный."
"В компьютерных языках используется два основных варианта конъюнкции: логическое "И" и побитовое (поразрядное) "И". Например, в языках C/C++ логическое "И" обозначается символом "&&", а побитовое — символом "&". В терминологии, используемой в C#, операцию "&" принято называть логическим "И", а операцию "&&" - условным "И", поскольку значения операндов являются условиями для продолжения вычисления. В языках Pascal/Delphi оба вида конъюнкции обозначается с использованием ключевого слова "and", а результат действия определяется типом операндов. Если операнды имеют логический тип (например, Boolean) — выполняется логическая операция, если целочисленный (например, Byte) — поразрядная."
Короче, все пока на первый взгляд запутано )) |
|
|
|
Поиск в теме | Версия для печати |
Страниц (3): « 1 2 [3] |
« Алгоритмы » |
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
|
|
|
|
|