![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
![]()
Здравствуйте. Пишу лабораторную работу и надо сделать прерывание SPI Transfer Complete. Atmel Studio 7.0. Проблема в том, что компилятор выкидывает это прерывание(хотя я по синтаксису правильно написал) и выдает Warning: Severity Code Description Project File Line
Warning 'SPI_STC_vect' appears to be a misspelled signal handler, missing __vector prefix [-Wmisspelled-isr] Prm D:\...\main.cpp 45 Как поставить прерывание? Ставишь временно прерывание по Таймер1 совпадение по каналу А и все, оно появляется. Ставишь снова по SPI и оно пропадает. Как поставить прерывание на место?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 16.05.2024
Сообщений: 186
|
![]()
"missing __vector prefix" - не здесь ошибка?
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
![]()
Спасибо за помощь, но не в этом дело. Надо было поставить прерывание SPI, но не получилось и пришлось сделать через бит, когда цикл while ждет установки бита-флага, когда завершение приема или передачи. Atmel Studio 7 выбрасывает этот вектор прерывания из программы, хотя другое прерывание ставится нормально.
Проект двухмикроконтроллерный и микроконтроллер, как раб.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Последний раз редактировалось Cuprum5; 21.05.2024 в 17:48. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,702
|
![]()
А если ассемблерной вставкой? Я на АВР писа'л только на асме, поэтому за Си сказать не могу. И МК у меня выполнял то, что я ему приказал, а не что думает компилятор по этому поводу. Но вообще сейчас, по-моему, тренд: кодить для микроконтроллеров, даже не открывая страницу ДШ с системой команд. "Это - прошлый век. Компилятор - наше всё!"
Да, я ретроград. Последний раз редактировалось digitalis; 22.05.2024 в 08:28. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
![]()
Договорились с человеком на C писать, там же не только 1 прерывание написать - еще куча всего.
Я писал на C и смотрел ассемблерный код. Прерывания нету - ну все тогда.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,702
|
![]()
Так можно всё тело проги на Си, а асм-вставка тут вроде кашу не испортит. И оформить это макросом - будет "почти чистое Си".
Впрочем, я не знаю, поддерживает ли АВРовский Си-компилятор макросы. Читать описание языка нужно, я думаю. А если отключить оптимизацию? Тогда по идее он должен компилить 1:1, без затей. Ну и на проблемный фрагмент исходника, если оно не top secret, взглянуть бы. Последний раз редактировалось digitalis; 22.05.2024 в 13:40. |
![]() |
![]() |
![]() |
#7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,427
|
![]()
А если "SPI__STC_vect" попробовать, т.е. два нижних подчеркивания?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 747
|
![]()
Выключал оптимизацию - не появляется прерывание там.
2 нижних подчеркивания - это нет, только по одному.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Последний раз редактировалось Cuprum5; 22.05.2024 в 18:13. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
прерывание 11H | X@OC | Общие вопросы C/C++ | 1 | 15.04.2011 19:37 |
Прерывание 1aH | X@OC | Общие вопросы C/C++ | 15 | 07.04.2011 15:17 |
6 прерывание | ленусик | Фриланс | 1 | 03.06.2008 16:22 |
6 прерывание | ленусик | Помощь студентам | 5 | 30.05.2008 16:57 |