Timers Interrupts etc
- Войдите на сайт для отправки комментариев
Доброго времени суток.
Решил научиться программировать МК на уровне регистров (если так правильно можно выразиться), ну впрочем не использовать ардуиновские обвязки и примочки. Так как во первых, непонимаение как оно внутри устроено все это дело, а программировать не понимая что ты делаешь, к хорошему не приведет. Ну помигал я лампочками, попересылал значения по UART'у готовыми инструментами, а как оно внутри хочется разобраться, чтобы писать серьезные проекты.
Есть плата ArduinoMega2560
Тут дошло дело в ходе изучения до таймеров, и вот несколько вопросов возникли у меня
Пределитель: Как я понял это некий делитель частоты счета, т.е. я как пользователь могу выбрать подходящий мне коэффициент деления для дальнейших нужд. Т.е например делим на 8 и счетчик считает 1 раз в 8 тактов?? Т.е. он почитает не 65536 - 1 раза, а 8192 - 1 раза(я про 16 битный счетчик имею ввиду), так? Верно ли мое представление?
И вот про прерывания по совпадению со значением имеется вопрос. Я понял что например нужно мне досчитать до 1234 скажем, настроили таймер необходимым образом и поехали. Теперь будет событие происходить как досчитаем до этого значения. А как мне быть, если мне например надо в 1 счетчике несколько значений проверить, досчитало ли до него и выполнить событие? Так по идее можно только с чем-то одним сравнивать?
Но тут в инструкции, в таблице прерываний и в описании таймеров есть такая штука, как, сопадение со значением А
значением В
значением С
например в первом таймере, т.е. тут я могу сравнить в одном счетчике сразу 3 неких значения?
а вот во втором таймере только 2, так?
Я просто хочу подробно понять тему, чтобы сразу разложить по полочкам в голове что есть что, расставить все точки над И так сказать с самого начала.
Заранее спасибо всем откликнувшимся!
Пределитель: Как я понял это некий делитель частоты счета, т.е. я как пользователь могу выбрать подходящий мне коэффициент деления для дальнейших нужд. Т.е например делим на 8 и счетчик считает 1 раз в 8 тактов?? Т.е. он почитает не 65536 - 1 раза, а 8192 - 1 раза(я про 16 битный счетчик имею ввиду), так? Верно ли мое представление?
например в первом таймере, т.е. тут я могу сравнить в одном счетчике сразу 3 неких значения?
вот во втором таймере только 2, так?
Верно.