У ТС на самом деле 19 байт глобальных (7*2 + 1 + 4)
Плюс в файле wiring_time.c еще 13 (4 + 4 + 4 +1)
Уже 32.
Для локальных переменных места нет, поэтому и виснет.
Проверка - перенести массив в прогмем. Если заработает - значит проблема в памяти.
У ТС на самом деле 19 байт глобальных (7*2 + 1 + 4)
Плюс в файле wiring_time.c еще 13 (4 + 4 + 4 +1)
Уже 32.
Для локальных переменных места нет, поэтому и виснет.
Проверка - перенести массив в прогмем. Если заработает - значит проблема в памяти.
он скорее всего там и есть
ХЗ
У АВР-ок вроде “само” не переносится, иначе бы никто с прогмемом не возился.
значит угадал
Как он может там сидеть, если он даже не const ?
Агрессивная оптимизация?
А если попробовать в него в коде что-то записать - размер изменится?
… а вы массив объявили в 32 bit… это ничего?
@xDriver , а ты вначале - скучно-скучно))) Сам всё и разрулил ))
Должно работать, ТС проверяй пайку )
Может оптимизатор массив просто выкинул?
Потому и не работает
Да, я такое только под PIC встречал ))
Не мог, к нему же обращаются в коде.
Ну мы не знаем все ли там рабочее в аддоне. Хотя пайку проверить не мешает
Если тема доживет до пятницы без решения, можно будет ради пятницы переписать без всяких аддонов.))
note[6]=6;
Элементу массива присваивать константу не катит. Оптимизатор же сразу присвоить должен. Разве нет? Почему размер занятой ОЗУ меняется тогда?
Оптимизатор же сразу присвоить должен. Разве нет?
Нет, массив же инициализирован.
пока массив только читается, оптимизатор пихает его в прогмем, как только мы начинаем его изменять, он уже в рам располагается.
Оффтоп:
Кто может мне рассказать, как заставить атмел студию 7 для attiny без озу писать код на си? Мне постоянно предлагает асм. Или я что-то не так нажимаю?
массив же инициализирован.
Ну хз, любые заранее известные изменения avr-gcc выкидывает вроде. XC8 точно выкидывает.
без озу писать код на си?
Наверно использовать переменные в регистрах.
reg uint8_t x asm('r8');
Как-то так вроде