Прямое обнуление volatile переменных не работает, использую Winavr 20100110, дебаггера в данный момент нет, так что посмотреть что именно происходить с контроллером проблематично. После операции вида volatile unsigned char Temporary=0; переменной присваивается единица. Компилятор выдаёт следующее: tick_10=0;
a00: 10 92 e4 01 sts 0x01E4, r1
volatile unsigned char Temporary=0; 3d2: 19 82 std Y+1, r1 ; 0x01
При этом не нашел ни одной операции, которая бы инкримировала r1, при этом tick_10 обнуляется в прерывании и после сохранения реггистров идет команда 894: 11 24 eor r1, r1 так что в r1 просто обязан быть 0.
Сообщение отредактировал Dzhesertep - May 12 2010, 18:00
|