|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.05.2024, 15:30 | #1 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 753
|
Как включить прерывание по SPI?
Здравствуйте. Пишу лабораторную работу и надо сделать прерывание 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.
|
21.05.2024, 14:15 | #2 |
Пользователь
Регистрация: 16.05.2024
Сообщений: 92
|
"missing __vector prefix" - не здесь ошибка?
|
21.05.2024, 17:43 | #3 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 753
|
Спасибо за помощь, но не в этом дело. Надо было поставить прерывание SPI, но не получилось и пришлось сделать через бит, когда цикл while ждет установки бита-флага, когда завершение приема или передачи. Atmel Studio 7 выбрасывает этот вектор прерывания из программы, хотя другое прерывание ставится нормально.
Проект двухмикроконтроллерный и микроконтроллер, как раб.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Последний раз редактировалось Cuprum5; 21.05.2024 в 17:48. |
22.05.2024, 08:23 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,623
|
А если ассемблерной вставкой? Я на АВР писа'л только на асме, поэтому за Си сказать не могу. И МК у меня выполнял то, что я ему приказал, а не что думает компилятор по этому поводу. Но вообще сейчас, по-моему, тренд: кодить для микроконтроллеров, даже не открывая страницу ДШ с системой команд. "Это - прошлый век. Компилятор - наше всё!"
Да, я ретроград. Последний раз редактировалось digitalis; 22.05.2024 в 08:28. |
22.05.2024, 10:20 | #5 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 753
|
Договорились с человеком на C писать, там же не только 1 прерывание написать - еще куча всего.
Я писал на C и смотрел ассемблерный код. Прерывания нету - ну все тогда.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
|
22.05.2024, 13:36 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,623
|
Так можно всё тело проги на Си, а асм-вставка тут вроде кашу не испортит. И оформить это макросом - будет "почти чистое Си".
Впрочем, я не знаю, поддерживает ли АВРовский Си-компилятор макросы. Читать описание языка нужно, я думаю. А если отключить оптимизацию? Тогда по идее он должен компилить 1:1, без затей. Ну и на проблемный фрагмент исходника, если оно не top secret, взглянуть бы. Последний раз редактировалось digitalis; 22.05.2024 в 13:40. |
22.05.2024, 18:00 | #7 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,343
|
А если "SPI__STC_vect" попробовать, т.е. два нижних подчеркивания?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
22.05.2024, 18:08 | #8 |
Форумчанин
Регистрация: 09.05.2017
Сообщений: 753
|
Выключал оптимизацию - не появляется прерывание там.
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 |