Муфты электромонтажные от производителя Fucon

Очень интересный глюк на AVR с участием прерывания переполнения таймера в Algorithm Builder

Новичок
 
Регистрация: 03.01.2016
Сообщений: 3
Репутация: 10
0 3
0 0
 
03.01.2016 20:05 #1
Использую прерывания по переполнению таймера. В обработки прерывания подсчитываю часы реального времени. Переменные часов это однобайтовые ячейки SRAM. Кроме переменной DS – она двух байтовая.
В основном цикле есть условие которое не должно никогда выполнятся - если R4 = 20 то перейти в подпрограмму Obr. При этом R4 всегда 0. Но, тем не менее, при обработки на кристалле я попадаю в подпрограмму Obr, при этом R4 = 0. И еще, я заметил, если переменную DS сделать однобайтовой то переход в Obr происходит реже.
В чем прикол? Причем данный алгоритм я проверял на разных кристаллах: ATMega88p, ATMega48, ATMega8, ATMega128. И везде одно и тоже…
Изображения
Тип файла: png 2016-01-03 19-29-27 Скриншот экрана.png (44.7 Кб, 0 просмотров)
Оценка
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Знаток
 
Регистрация: 06.12.2009
Адрес: Днепропетровск
Сообщений: 813
Репутация: 114
105 141
4 0
 
03.01.2016 20:55 #2
Я в таком интерфейсе не работал, но то, что в нем могут быть бока -нельзя исключать.
Эти облегчения программ всегда боком вылазят.
Мож в timer_0_Over пишет число 20 в этот регистр ?
На выходе Hex файл дает прошивки ?
Если да, проверяйте в протеусе регистр R4 с этот момент. Желательно в момент перехода на obr программе зависнуть и увидете, если там число 20, то тогда глюка нет, и действительно где-то оно записалось, если другое чисо, то тогда какой-то баг

___________
вообще теней много, надо только в симуляторе смотреть что там пишется в регистр. Да и теж 2-х байтовые переменные, они же тоже сначала в 2 регистра пишутся, а потом в ОЗУ. В прог этого не видно как оно происходит на самом деле. По сути это исковерканный ассемблер
Последний раз редактировалось схемопай; 03.01.2016 в 21:03.
Оценка
Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.
Новичок
 
Регистрация: 03.01.2016
Сообщений: 3
Репутация: 10
0 3
0 0
 
03.01.2016 23:39 #3
Суть понятна.
HEX файл есть, но каким ПО с ним работать? И как я понимаю, что в данной ситуации нужно отлаживать на кристалле. Соответственно понадобится соответствующий программатор.
Оценка
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
03.01.2016 23:46 #4
О... Algorithm Builder... Знакомо... Нужно отслеживать состояние регистра R4. Но этого изменения вы можете и не увидеть при отладке на кристалле. Не исключаю также, что этот регистр используется самим компилятором, например при отладке. Может используется для какой-то переменной. То что R16 и R17 используются компилятором и для своих целей их нельзя использовать - знаю точно...

Посмотрите руководство пользователя по Algorithm Builder, где-то на сайте автора было вроде. Попробуйте использовать другой регистр, или попробуйте зарезервировать этот регистр для себя (клавиша F12 - определения переменных и регистров).
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
03.01.2016 23:51 #5
Можно попробовать, как сказал Схемопай, дополнительно в протеусе прогнать прошивку.

Компилируем проект в Algorithm Builder, получаем HEX-файл, собираем схемку на микроконтроллере в протеусе, загружаем прошивку в него и делаем пошаговое выполнение программы, наблюдаем за проявлением глюка и состоянием регистров...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Новичок
 
Регистрация: 03.01.2016
Сообщений: 3
Репутация: 10
0 3
0 0
 
03.01.2016 23:59 #6
Все нормально ребята, всем спасибо. Просто нужно было загонять в стек Sreg, r16, r17. Вот пробовал загонять все кроме R17. Про R17 как то замылилось и то же не работало. Сейчас все норм всем спасибо.
Оценка
Знаток
 
Регистрация: 06.12.2009
Адрес: Днепропетровск
Сообщений: 813
Репутация: 114
105 141
4 0
 
04.01.2016 10:03 #7
очередной раз убеждаюсь, что не стоит работать в этой среде. Вроде как и регистры открыты для доступа, в тоже время программа сама их занимает, черт знает что
Оценка
Новичок
 
Регистрация: 06.11.2011
Сообщений: 1
Репутация: 11
1 0
0 0
 
11.11.2023 09:18 #8
Ну в Algorithm Builder не так много подводных камней. Этот наверное самый заморочный.
После компиляции при наведении на строку видна ассемблерная конструкция, которую компилятор вставит в код и регистр R16 частенько используется при отправке в стек регистров ввода-вывода и других, например SREG.
Поэтому при отправке в стек данных регистр R16 и R17 отправляйте первыми, а потом всё остальное, а то восстановите их из стека, а компилятор при восстановлении других данных использует R16 или R17 и затрёт их.
Оценка
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Оценка этой теме
Оценка этой теме:
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 19:43.
Обратная связь РадиоЛоцман Вверх