Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Добавим в программу код проверяющий исправность и наличие нагрузки
Добавим код запускающий таймер при изменении SW3
Разберем строку: while (PIND.6 == SW3_state) Условие выполнения цикла while() это результат сравнения значений считанных с ножки подключенной к SW3 (этоPIND.6) и из переменной SW3_state хранящей прошлое состояние SW3. Пока эти значения равны - в скобках () у while будет истина и тело цикла между { } будет выполнятся. Опрос кнопки происходит примерно каждые 20 мС. Эти промежутки времени подсчитываются и при насчете 700 мС происходит изменение состояния светодиода. При изменении состояния SW3 условие у while() станет "ложно" и программа покинет цикл ожидания этого изменения. Теперь надо запустить отсчет интервалов в 0.2 сек столько раз сколько содержится в переменной time_val
ctr++; и if (ctr > 5) { значение переменной ctr меняется от 1 до 6. А по куску программы: if (ctr < 2) { видно, что светодиод зажигается только при ctr равном 1. Значит светодиод будет гореть 1 прогон цикла while() - это 200 мС, а выключен он будет 5 раз по 200 мС т.е. целую секунду. Таким образом период мигания светодиода составит 1,2 Сек. Задержка отработана - нужно включать нагрузку Для этого мы откроем полевой транзистор подав на его затвор
Нагрузку можно включить на 2 секунды или "на совсем" - т.е. пока подается питание на МК. Определяет это ножка PD7 - если она свободна то подтяжка на ней создает "1" и нагрузка будет включаться на 2 секунды. Если PD7 замкнута на землю, на ней будет "0" и нагрузка включится "на совсем".
Завершение программы
5) "делаем" проект, т.е. компилируем программу нажав соотв. иконку: Получаем сообщение об успешной компиляции и отсутствии ошибок и "вонингов". В папке c:\VMLAB\_timerM8\ появилось много разных файлов, нам нужны: - прошивка main.hex - исходник Си связанный с файлом.cof для симулятора main__.c - main.cof файл для симуляции с движением по коду на Си. Он сожержит связь содержимого первых двух файлов. - cv.prj - это файл проекта CodeVisionAVR 6) для проверки программы в VMLAB нужно создать файл проекта для VMLAB: c:\VMLAB\_timerM8\vmlab.prj В нем будет описан применяемый МК и то, что в нем и что к нему подключено. В этом файле не рекомендуется использовать русский шрифт, поэтому там все по аглицки но думаю понятно. Напомню, что комментарии в VMLAB пишутся в одну строчку после точки с запятой! В начале как обычно заголовок ; ************************** ; more info: http://avr123.nm.ru
Указываем симулятору какой МК симулировать: Указываем симулятору в каких файлах содержится необходимая для симуляции информация.
|