Добавил:
lelik
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные МПр / код / lab3 / Lab - Watchdog / about
.txt СПбГЭТУ "ЛЭТИ" 2011 г.
Лабораторная работа "Сторожевой таймер"
Цель:
- Отработать использование сторожевого таймера на микроконтроллере NXP LPC1768;
- Усовершенствовать навыки программирования микроконтроллеров на базе ядра ARM Cortex-M3.
Описание работы:
Программа выводит "бегущий огонь" на светодиоды платы, после чего вызывает функцию spec_mult().
Функция spec_mult() написана специально для этой работы, она перемножает числа от 5 до значения переменой led.
Будьте внимательны! В функции spec_mult() в обучающих целях используется некорректный цикл, который специально зависает при определенных условиях.
Никогда не используйте такие циклы, как в функции spec_mult()!!!
Задача:
1. Обратите внимание, при каких условиях программа зависает.
2. Используйте сторожевой таймер (WDT) для перезагрузки устройства в случае зависания.
Обратите внимание, что программа не будет выполняться дальше определенного момента, а будет регулярно перезагружаться сторожевым таймером.
3. Исправьте ошибку в цикле функции spec_mult().
Обратите внимание, что теперь программа выполняется стабильно, и сторожевой таймер не перезагружает устройство.
Лабораторная работа "Сторожевой таймер"
Цель:
- Отработать использование сторожевого таймера на микроконтроллере NXP LPC1768;
- Усовершенствовать навыки программирования микроконтроллеров на базе ядра ARM Cortex-M3.
Описание работы:
Программа выводит "бегущий огонь" на светодиоды платы, после чего вызывает функцию spec_mult().
Функция spec_mult() написана специально для этой работы, она перемножает числа от 5 до значения переменой led.
Будьте внимательны! В функции spec_mult() в обучающих целях используется некорректный цикл, который специально зависает при определенных условиях.
Никогда не используйте такие циклы, как в функции spec_mult()!!!
Задача:
1. Обратите внимание, при каких условиях программа зависает.
2. Используйте сторожевой таймер (WDT) для перезагрузки устройства в случае зависания.
Обратите внимание, что программа не будет выполняться дальше определенного момента, а будет регулярно перезагружаться сторожевым таймером.
3. Исправьте ошибку в цикле функции spec_mult().
Обратите внимание, что теперь программа выполняется стабильно, и сторожевой таймер не перезагружает устройство.