Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Несовместимость кусков программы
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ASZ
IAR, ATmega32.
НаписАл прогр. модуль обмена через USART, отладил.
Добавил к нему обмен с 24C256 (2шт).
Не входит даже в прерывание по TWINT!
Отключаю (комментирую инициализацию и ссылки на функции) модуль свизи через USART - работает как часы.
Объем кода ~2кбайт.
У SRAM используется ~600байт.
Изменения в размерах CSTACK и уровнях вложения не помогают.

Впервые сталкиваюсь с подобным - натолкните.
dimka76
Цитата(ASZ @ Oct 17 2007, 15:20) *
IAR, ATmega32.
НаписАл прогр. модуль обмена через USART, отладил.
Добавил к нему обмен с 24C256 (2шт).
Не входит даже в прерывание по TWINT!
Отключаю (комментирую инициализацию и ссылки на функции) модуль свизи через USART - работает как часы.
Объем кода ~2кбайт.
У SRAM используется ~600байт.
Изменения в размерах CSTACK и уровнях вложения не помогают.

Впервые сталкиваюсь с подобным - натолкните.


попробуй пошаговую отладку в avr-studio, отладчик IAR не очень шороший( на мой взгляд)
GDI
А как параметры инициализации прерываний и других общих опций делаете? Простой записью значений в регистры или по маске только нужные биты ставите/сбрасываете?
NVade
А не получается ли, что вы сидите в прерывании с более высоким приоритетом? В результате будет исполняться только это прерывание и код вне прерываний (правда существенно медленнее - по одной команде в перерывах между прерываниями), остальные прерывания при этом не будут обслуживаться. Обычно такое происходит, если используется прерывание по уровню и не запрещается в обработчике.
bodja74
Для начала думаю стоит отладить TWI ,если там что не так вы этот TWINT никогда и не дождетесь. smile.gif
Симулятор здесь не поможет ,проверяем подключение ,питание и потихоньку начинаем выгребать значение регистра статуса TWI после каждой команды ,тем более УСАРТ готов ,вот и выдавайте на терминалку.
defunct
Цитата
Отключаю (комментирую инициализацию и ссылки на функции) модуль свизи через USART - работает как часы.

Кто работает как часы? I2C или UART?
А если не отключать, то что не работает и UART и TWI?

Без кода тут много не скажешь.. Ошибка в программе где-то.
ASZ
Извините за причиненное беспокойство.
С помощью симулятора разобрался - происходила блокировка прерывания TWI в ПП инициализации USART (там система семафоров).
Просто многократно их (семафоры) прокручивал, понадеялся, что ошибок нет.
Еще раз извините.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.