Главная категория > Программаторы
AVR Studio4 и оптимизация
drfaust:
--- Цитата: tridentxp от 24/07/2014 12:23:01 ---
--- Цитата: drfaust от 23/07/2014 21:31:58 ---... volatile unsigned char i = 0; из-за volatile присвоение i=0; не выполняется....
--- Конец цитаты ---
интересный оборот... а где об этом говорится ?
--- Конец цитаты ---
Да вроде нигде. И возможно не из-за volftile. Только в дебаге - вся память проги дебаггером заливается 0-ми. А в релизе, да ещё и с оптимизацией это не всегда так. Локальные переменные инициализируются, а вот глобальные, насколько я помню - зависит от компилятора.
Мог и напутать чего... Во всяком случае - стоит попробовать проинициализировать до установки обработчиков.
К стати, сначала ставим обработчики (по программе), а потом зачищаем епром (процесс долгий - сколько раз обработчики сработают? и есессно установят i в 1). Может стоит сначала епром проинициализировать, а уже потом обработчики прерываний установить?
Two_byte:
Eeprom инициализируется в майне при запрещенных прерываниях, попробовал переменную buffer сделать локальной - бесполезно, та же байда. Ща попозжа попробую ее проинициализировать. Касби 02к приперли.
Two_byte:
От япона мать!, победил я его!!! В перечислении переменных вместо точки с запятой надо было запятую ставить.
Переменные buffer, angle, addr сделал локальными до кучи.
tridentxp:
volatile unsigned char i = 0; data_e; temp = 0; гыыы. во я слепошарый не заметил. вопрос: а чо студия ничо не сказала что тут каким то переменным неизвестного типа производится присвоение ?...
Two_byte:
--- Цитата: tridentxp от 24/07/2014 15:27:55 ---volatile unsigned char i = 0; data_e; temp = 0; гыыы. во я слепошарый не заметил. вопрос: а чо студия ничо не сказала что тут каким то переменным неизвестного типа производится присвоение ?...
--- Конец цитаты ---
а окно бьюилда внизу, и маленькое. Я и не замечал - он показывал, что скомпилировал, типа все ОК, а варнинги я уже потом увидал.
Навигация
Перейти к полной версии