Потребовалось отследить выполнение программы использующей режим фаст-ШИМ. В частности режим позволяющий изменять длительность и частоту импульсов, что делается при помощи регистров OCR1A и OCR1B.
Отслеживаю строки при помощи F10 или F11. И вдруг заметил, что строка вида
Код: Выделить всё
OCR1B = <переменная типа unsigned int>Стал "копать". В компиляторе отключена оптимизация (-O0), debugging на максимуме (-g3). Строка с присваиванием игнорируется.
Создал для применяемого контроллера Attiny44a пустой проект, где происходит только инициализация Т/С1.
Код: Выделить всё
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (1<<WGM11) | (1<<WGM10);
TCCR1B=(0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10);
TCNT1=0x0000;
ICR1=0x0000;
OCR1A=0x00FF;
OCR1B=0x000B;
...
Код: Выделить всё
TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
Что я делаю на так? Что я недопонимаю в работе контроллера/студии?
Стоит добавить, что код своей программы я 1:1 компилировал также в CVAVR и IAR. Обе прошивки работали в Протеусе. Прошивка созданная в AStudio - в Протеусе не работает должным образом.


