Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

sam3x8e проблема с прерыванием

Непрочитано 24.10.2022, 10:53  
sunjob
Временная регистрация
 
Регистрация: 23.11.2010
Сообщений: 70
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sunjob на пути к лучшему
По умолчанию qtcreator, openocd, atmel-ice, отладка класса

добрый день

во время отладки не показывается ничего, связанное с классом (ни экземпляры класса, ни поля... вообще ни чего не показывается, обычные переменные вне класса можно посмотреть адрес, значение итд)

так и должно быть или есть куда рыть, чяво настраивать?!

в Atmel-Studio/vbox ни каких проблем.

p.s. встречал в инете мысли, что это нормально.

- atmel ice-c (shareware... пардон, wave-share)
- qtcreator 4.15.2 (бинарная сборки с оффсайта)
- slackware 14.2 x64
- openocd 0.12
- arm_gdb 12.1 / py_3.7
Миниатюры:
Нажмите на изображение для увеличения
Название: pic_2022.10.24_14.10.35.jpg
Просмотров: 0
Размер:	933.2 Кб
ID:	173347  
Реклама:

Последний раз редактировалось sunjob; 28.10.2022 в 12:53.
sunjob вне форума  
Непрочитано 25.10.2022, 13:36  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,293
Сказал спасибо: 11,863
Сказали Спасибо 4,162 раз(а) в 3,180 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: qtcreator, openocd, atmel-ice, отладка класса

sunjob, тема вроде как не в отвлекитесь…
Постарайтесь понятно для всех изложить суть проблемы, поскоьку хрустальный шар, бубен и карты Таро есть не у всех участников, а местные телепаты в отпуске…
Один и тот же бинарный файл?
Опции компиляции и сборки?
Напишите небольшой код с классами по морганию парой светодиодов и проверьте отладку на нем…
Если бы причина была глобальна - в сети было бы достаточно материала по Вашей проблеме…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 28.10.2022, 08:11  
sunjob
Временная регистрация
 
Регистрация: 23.11.2010
Сообщений: 70
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sunjob на пути к лучшему
По умолчанию Re: qtcreator, openocd, atmel-ice, отладка класса

переписал класс на си (обычные функции) - подтвердилось, классы не видятся, обычные структуры доступны.
sunjob вне форума  
Непрочитано 28.10.2022, 08:13  
sunjob
Временная регистрация
 
Регистрация: 23.11.2010
Сообщений: 70
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sunjob на пути к лучшему
По умолчанию sam3x8e проблема с прерыванием

добрый день

исходные:
Код:
- arm-toolchain (10.3.1, 11.x, 12.2)
- arm_gdb-12.1_py3.7
- openocd-0.12.0
- atmel ice (отладчик)
- sam3x8e (прототиа arduino-due)
- slackware-14.2 x64
отлаживаю "библиотеку" на си - передача данных по 2м проводам (wiegand):
- импульс D0 -› получили "0"
- импульс D1 -› получили "1"

будет использоваться неск. экземпляров RFID-датчиков, поэтому планирую сделать вообще без "механизмов блокировки".

в прерывании только устанавливаются флаги, все остальное делается в основном цикле.

в силу "обстоятельств" (унаследовано с прототипа) подключение пинов данных D0/D1 - на разных портах (по идее это не проблема, на ардуиновском "тестовом скетче" с таким-же расположением пинов - rfid-карта читается без проблем, но, походу, конечно протестирую еще и "все на одном порту")

текущий код на си. читает карту, но с особенностями.
к основному номеру карты (в старший разряд) добавляется еденица и последний (младший) разряд, соотв. обрезается.

для отладки по шагам вместо "виганда" подключил две кнопки (c rc-цепочкой, сигналы нормальные, дребезг отсутствует, кнопок много, менялись/проверялись)

выяснилось (в отладчике):
- импульс на D0 - прерывание срабатывает 1 раз и далее все "печенькой" :о)
- импульс на D1 - прерывание срабатывает 3 раза

1й раз - все по делу, "на падение сигнала", как и должно быть
2й раз - не по делу, "на подьем" (возвращение кнопки обратно), причем 2раза подряд

и еще для "запуток" - при чтении (без отладчика, напрямую) только одна, самая первая, неправильная 1-ца добавляется в начало (в старший разряд) а далее серийник читается правильно.

порты D0/D1 инициируются на вход, включается подтяжка, ни чего особенного.

код, выкусы (упрощенка) кода:
Код:
//
// структура (выкус)
//
struct struct_Wiegand
{
TPinOut           d0;                   // D0   пин
TPinOut           d1;                   // D1   пин

uint8_t  volatile data_flag[2]; // два флага на сработку D0/D1
...
};

typedef struct struct_Wiegand TWiegand;

extern TWiegand* lst_rfid[RFID_NUM_DEV]; // список указателей на структуры

//
// в теле реализации
//
TWiegand w1={ {PIOA,19}, {PIOC,18}, {PIOA,20}, 0, {0,0}, 0, 0 }; 
TWiegand* lst_rfid[RFID_NUM_DEV] = { &w1 }; 

//
// регистрация/добавление обработчиков прерываний
// механизм/список такой-же как в ардуино
//
isr_enb_port (lst_rfid[0]-›d0.pio, lst_rfid[0]-›d0.pin, isr_rfid0_D0, FALLING); // D0
isr_enb_port (lst_rfid[0]-›d1.pio, lst_rfid[0]-›d1.pin, isr_rfid0_D1, FALLING); // D1

//
// обработчики
//
void isr_rfid0_D0() { lst_rfid[0]-›data_flag[0] ++; }
void isr_rfid0_D1() { lst_rfid[0]-›data_flag[1] ++; }
других инициализаций прерываний нет (отрубал все что можно).
если закомментировать строку вызова "добавления прерывания" для D1, то прерывание на D1 не срабатывает

подобрал ссылки "околотемы"
URL1 https://forum.cxem.net/index.php?/to...�-одного
URL2
URL3
URL4
URL5
URL6

пока буду изучать ссылки, доки, даташит
пинайте, кидайте помидоры, идеи, ссылки, все что угодно! можно просто побалагурить по теме! :о)
спасибо.
sunjob вне форума  
Непрочитано 29.10.2022, 08:32  
sunjob
Временная регистрация
 
Регистрация: 23.11.2010
Сообщений: 70
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
sunjob на пути к лучшему
По умолчанию Re: sam3x8e проблема с прерыванием

зачем смержили две разные темы? одна про проблемы отладки в OpenOCD (внешняя проблема), другая про прерывания (внутренние проблемы контроллера)

если так удобнее, все "глупости" собрать в одном месте, то я не против :о)
sunjob вне форума  
 

Метки
arm, avr, interrupt, sam3x8e
Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с FT232BM (FT232BL) anbsoft Микроконтроллеры, АЦП, память и т.д 27 07.08.2010 09:33
Проблема с DC/DC locostudy Источники питания и свет 2 03.11.2008 12:10
p30f6010A проблема с переключением состояния портов Ilya Микроконтроллеры, АЦП, память и т.д 8 22.09.2008 09:14
FT232BM проблема с прошивкой EEPROM zms2003 Микроконтроллеры, АЦП, память и т.д 3 27.06.2008 07:18
Проблема с ЛСД Zemlyanov Делимся опытом 4 12.01.2007 20:53


Часовой пояс GMT +4, время: 21:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.