|
Объясните пожалуйста почему и как сделать правильно....
Среда - IAR
в прерывании по таймеру
{
count++; // Инкрементируем счетчик
}
в функции:
{
......
temp = count + 100;
while (count != temp); // Ждем, пока count не станет равен temp
// В этом месте программа и зависает....
......
}
Смотрим, что IAR накомпилировал....
(точно не помню, но смысл такой)
функция:
lds r16, 0x... ; получаем значение count
ldi r17, 100
add r17, r16 ; получем значение temp = count + 100
qqqq:
cp r16, r17 // вот и ошибка.... значение r16
brne qqqq // не обновляеться
E-mail: info@telesys.ru