Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/27: Рейтинг темы: голосов - 27, средняя оценка - 5.00
ин69
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 82
1

Виснет atmega 8535 через несколько секунд работы.

19.11.2014, 13:32. Просмотров 4880. Ответов 11
Метки нет (Все метки)

Здравствуйте! Подскажите пожалуйста,может ли теряться адрес возврата из прерывания по переполнению счетчика Т0 в программе с большим количеством меток? У меня одноврем работают таймеры Т0 иТ1,последний работает без прерываний.Убрал прерывание Т0 по вектору,сделал программное прерывание,работает в железе.Какие могут быть предположения? Программа с одним Т0 с прерыванием норм.работает.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 13:32
Ответы с готовыми решениями:

AVR Atmega 8535
День добрый. Мне необходимо срочно решить задачу, сам я не могу понять, как её...

AVR atmega 8535
на атмега 8535 надо было написать программу (бегущие строки): в портах С чтобы...

Как выполнить умножение на Atmega 8535 (ASM)?
Можно перемножить числа следующим образом? ldi r17 2 ldi r18 3 mul r18, r17...

Сформировать импульс заданной длительности на ATmega 8535
Доброго времени суток. У меня такая проблема. Не получается сформировать...

Задержка без таймера на выходе atmega 8535 на 0,5 сек
.include"m8535def.inc" .cseg .org 0 ldi r16, 0xFF out DDRC, r16 ldi r16,...

11
stt
0 / 0 / 0
Регистрация: 03.11.2012
Сообщений: 9
19.11.2014, 17:17 2
Срыв стека?
0
OtixPM
0 / 0 / 0
Регистрация: 11.01.2013
Сообщений: 5,483
19.11.2014, 17:47 3
Можно в симуляторе AVR-Студии последить, как изменяется со временем положение вершины стека (значение регистра SP).
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
19.11.2014, 17:58 4
Если программа написана на асме, то причины:
Нет сохранения\восстановления регистров и SREG при входе в прерывание\выходе из прерывания.
Некорректное сохранение\восстановление SREG, если это происходит в регистрах, а не push/pop.
Некорректное использование команд rjmp и rcall.
Переполнение стека.
Все это можно и нужно проверить прогоном программы в симуляторе AVR-Studyo.
0
ин69
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 82
20.11.2014, 12:18 5
Спасибо! Выдавливание нижних адресов возврата? Как симулятор запустить на автомате,с пом F11 несколько циклов норм проходят.
0
ZIvS
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 157
20.11.2014, 21:04 6
а с watchdog`ом все в порядке?
0
ин69
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 82
22.11.2014, 20:07 7
Думаю,в порядке.но не уверен.Проблемы начались,когда подключил второй таймер-счетчик и удлинил одну из подпрограмм.Вышел из положения,убрав прерывания таймера Т0.Еще замечал,что после обработки прерывания и возврата в подпрограмму при большом количестве меток и ее длине не происходит выхода из нее по ret.
0
omokost
0 / 0 / 0
Регистрация: 24.12.2011
Сообщений: 2,753
22.11.2014, 21:23 8
А попробовать увеличить стек?
0
dimyurk1978
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 3,047
22.11.2014, 21:31 9
Так долго можно гадать, выкладывайте код. Опишите задачу, что вы делаете. Будем разбираться.
0
ин69
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 82
24.11.2014, 12:03 10
Пока вышел из положения.убрав прерывания Т0.Вроде работает. Еще вечером почищу на предмет лишних вызовов подпрограмм.
0
ин69
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 82
26.11.2014, 10:43 11
Выкладываю код, работает плохо.

[4.31 Кб]
0
ин69
0 / 0 / 0
Регистрация: 11.08.2014
Сообщений: 82
26.11.2014, 10:55 12
Пока не начал регулировать частоту,все работало нормально. С потенц. подал напр на АЦП.По этим значениям изменяется интервал между подстановками табличных значений длительности импульса.Таймер Т0 задает период ШИМ,а Т1 отвечает как раз за задержку времени подстановки нового значения времени сброса ноги контроллера.Определил,что проблема-нет гарантированных выходов из циклов.
0
26.11.2014, 10:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2014, 10:55

AVR Studio. Не видит директиву '.egu' (Atmega 8535)
Почему не видит директиву '.egu'? Может что настроить или подключить надо? И...

Нет передачи по UART с одного микроконтроллера на другой ATmega 8535
Написали код для передачи данных с АЦП одного микроконтроллера и приема данных...

Проблема прошивки atmega 8515 через LPT
Помогите разобраться) сам новичок в этом) Вобщем прошивал МК atmega 8515 через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru