реклама на сайте
подробности

 
 
> Задание имени процедуры.
Allregia
сообщение Apr 21 2013, 17:38
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Безотносительно к типу МК, тут скорее воспрос по Си:

Допустим в программе используется внешнее прерывание (с ножки).
И хочется написать более-менее универсально, тогда задаем в .h файле:

Код
#define INT_PORT GPIOA
#define INT_PIN  GPIO_Pin_0
#define INT_SOURECE EXTI_PinSource0
#define INT_LINE EXTI_Line0
#define INT_IRQ  EXTI0_IRQn;
[/code

И далее настраиваем пин, EXTI, NVIC. с этим все понятно, зазотели поменять ножку - поменяли в хидере, не трогая программу.
Но ведь надо еще прописать обработтчик прерывания:
[code]
void EXTI0_IRQHandler(void)
{


И тут кроме как править программу (например - поменять с EXTI0 на EXTI1), я уж не знаю как. Или есть способ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Apr 21 2013, 20:49
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А что мешает это сделать через тот же #define?
Go to the top of the page
 
+Quote Post
Allregia
сообщение Apr 21 2013, 21:20
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Цитата(aaarrr @ Apr 21 2013, 22:49) *
А что мешает это сделать через тот же #define?


Хм.
Честно говоря, не думал что все так просто sm.gif, и что такой вариант сработает.
В ведь действительно - это тупая подстановка, препроцессор просто заменяет одно слово другим, и всё.
Сенькс.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 22 2013, 08:06
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Allregia @ Apr 22 2013, 00:20) *
В ведь действительно - это тупая подстановка, препроцессор просто заменяет одно слово другим, и всё.
Можно еще заставить его при помощи # делать EXTI0_IRQn и EXTI0_IRQHandler из EXTI0.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016