| Все проекты |
1. Помигаем светодиодом по таймеру |
Спасибо! | |
|
В прошлом уроке мы подключили отладочный модуль и "заглянули внутрь" микроконтроллера. Среди прочего, мы видели изменение переменной ciklow - и менялась она примерно раз в секунду. Получается, что если бы нам требовалось сделать еще что-либо, мы не смогли бы сделать это чаще чем 2 раза в секунду. Для обучения это сойдет, для реальной программы такое неприемлемо. Все дело в том, что программа занята длинным циклом ожидания почти все время. Но у нас в Меге8535 есть аж целых три таймера! Вот давайте один из них и задействуем. Смотрим на программу, что в ней изменилось.
|
Что мы можем "пощупать" отладчиком дополнительно? Можно изменить настройки предделителя таймера. При старте программы мы записали в TCCR0 число 5 - это соответствует максимальному делителю, тактовая / 1024 Запишите в TCCR0 число 4 - светодиод замигает в 8 раз быстрее. Запишите число 3 - еще в 8 раз быстрее... Запишите 2 - наверное, глазом уже мигание будет неразличимо. Ну и - запись в TCCR0 нуля - остановит таймер, светодиод останется в случайном состоянии. Остановив таймер, можно поуправлять светодиодом вручную. Для этого надо всего лишь записывать в PORTB число 0 (погасить) или 1(зажечь). Также попробуйте записать 1 в PINB несколько раз - при каждой записи светодиод будет переключаться. Примечание - переключение линии порта таким образом работает не во всех AVR! |
||
|
В архиве - полный проект для IAR Си с требуемой программой. Распакуйте в отдельную папку и пользуйтесь :-) В тексте программы достаточно много комментариев, прошивка тоже присутствует - можете зашить в МК не компилируя и проверить работоспособность. В следующем уроке ... наверное, давайте сделаем так - пишите, что бы вам хотелось там увидеть. Желательно - с минимальными перепайками - все же это только начало... Можно, например, подключить потенциометр и плавно изменять частоту мигания (работа с АЦП). Удачи! |
|||