|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.01.2022, 17:13 | #1 |
Новичок
Джуниор
Регистрация: 18.01.2022
Сообщений: 1
|
помощь в atmel studio
Нужна помощь! При составление программы на языке С+ возникает проблема с точками остановки. Может кто подскажет что я делаю не так.
Код:
Последний раз редактировалось BDA; 18.01.2022 в 23:18. |
18.01.2022, 17:54 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,659
|
Надо посмотреть сформированный hex. Может быть, компилятор "оптимизнул" программу: один и тот же бит в PORTD устанавливается и тут же сбрасывется, и он решил: да ну его! - и выбросил оба оператора. Я для для AVR на С++ не пишу, но утверждают, что в таких случаях volatile решает проблему.
Вот тут детально это обкусано: https://www.radiokot.ru/forum/viewtopic.php?p=4163144 --------------- PS Остановки бывают автобусные. У отладчика это называют "точка останова" . Последний раз редактировалось digitalis; 18.01.2022 в 17:57. |
18.01.2022, 20:20 | #3 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
- с PIND обычно считывают, а не записывают туда.
Прерывание не должно иметь слово EXAMPLE в имени, это взято с какого-то примера, у Вас будет по-другому. Также PCINT(прерывание) имеет номер. - обычно не пишут условие, т.к. прерывание работает всегда в Вашей программе. - направление портов, все на выход, т.е. Вы считываете с пина, в этом случае, направление надо ставить на вход: DDRD = 0 на соответствующем бите. - переключать порты без задержек бессмысленно, если на них подключены светодиоды. Используйте задержки __delay_ms() и __delay_us(). И не забудьте подключить заголовочный файл #include <avr/delay.h> или #include <utils/delay.h> Кстати, не совсем понял что это? #include "compiler.h" Последний раз редактировалось BDA; 18.01.2022 в 21:16. |
18.01.2022, 23:15 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,659
|
В последних версиях АВР на порт PINX возложена парадоксальная, на первый взгляд, функция: запись бита в PINX ... инвертирует соответствующий бит PORTX !
|
03.02.2022, 12:47 | #5 |
Форумчанин
Регистрация: 05.09.2016
Сообщений: 135
|
В atmel studio gcc . А это самый коварный компилятор и сложный. Все как не стараися, а предупреждение напишет. Если бинарник будет сразу проверь, может рабочий быть
Немного о GoAsm.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ассемблер и микроконтроллер Atmel AVR | masterwolf | Помощь студентам | 6 | 03.02.2022 18:13 |
Помощь по Studio Vizual | AnnetDolmatova | Помощь студентам | 1 | 20.02.2017 20:40 |
Atmel Studio 6.0 симулятор для отладки | Владимрл | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 0 | 13.06.2016 14:37 |
Необходимо написать софт для Atmel на языке “С++” | rwnsk | Фриланс | 3 | 18.04.2016 20:09 |
Atmel ATA5811/ATA5812 | Android | Компьютерное железо | 0 | 12.10.2009 14:45 |