И кстати там даже 31250 Гц, а целых 125000 Гц. Т.к. прескейлер стоит /64. В коде 1го поста OCR1A = 5 - тоже мало, 25000 Гц прерывание, оно само всё еще дольше выполняется.
Timer0 не работает ни на одном контроллере
- Сообщения: 1978
- Зарегистрирован: Ср июл 17, 2013 13:55:57
Alek_von_German, грубо говоря, вы "забираете всё время" таймером 1. У вас МК всё время проводит в прерывании, т.к. оно длится дольше, чем период его срабатывания. У вас пока выполняется 1ое прерывание, уже срабатывает 2ое и дальше. И по выходу из прерывания, МК сразу же уходит в него назад.
И кстати там даже 31250 Гц, а целых 125000 Гц. Т.к. прескейлер стоит /64. В коде 1го поста OCR1A = 5 - тоже мало, 25000 Гц прерывание, оно само всё еще дольше выполняется.
И кстати там даже 31250 Гц, а целых 125000 Гц. Т.к. прескейлер стоит /64. В коде 1го поста OCR1A = 5 - тоже мало, 25000 Гц прерывание, оно само всё еще дольше выполняется.
- Реклама
Добавлено after 11 minutes 50 seconds:
Хотя не ясно теперь почему таймер2 работал с настройками нулевого. Или это потому, что у него свой прескаллер, а у тех общий?
Хочется всё и сразу, а получаешь нихрена и постепенно...
- Сообщения: 1978
- Зарегистрирован: Ср июл 17, 2013 13:55:57
[uquote="Alek_von_German",url="/forum/viewtopic.php?p=3846174#p3846174"]Хотя не ясно теперь почему таймер2 работал с настройками нулевого. Или это потому, что у него свой прескаллер, а у тех общий?[/uquote]
Нет. Это потому, что у прерывания таймера 2 приоритет выше, чем у таймера 1. Поэтому оно всё-таки выполняется. Приоритет таймеров - таблица векторов прерываний в ДШ.
Нет. Это потому, что у прерывания таймера 2 приоритет выше, чем у таймера 1. Поэтому оно всё-таки выполняется. Приоритет таймеров - таблица векторов прерываний в ДШ.
NStorm, ну я где-то около того и думал.
Хочется всё и сразу, а получаешь нихрена и постепенно...

