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

 
 
> Прерывания в Mega32, Много неясностей
Чип-Хрум
сообщение May 26 2007, 13:29
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 33
Регистрация: 1-04-07
Пользователь №: 26 675



Накопились вопросы по программированию прерываний на си.
1. Может ли находится основная программа в прерывании в плоть до вывода на жк экран
к примеру таймера 1 ? На сколко она может быть большой ?
2. Можно-ли прерывание осуществлять из прерывания (из таймера делать вызов ацп).
3. Может ли быть подпрограмма в прерывании, и сколько их может быть внутрь(матрешки),
Короче говоря на что расчитан стек он же не безграничен.
4. Насколько я понял прерывания эта функция с входными и выходными переменными типа void.
То бишь с переменными работать не придется?А как же тогда работать с переменными?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение May 26 2007, 15:43
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
То бишь с переменными работать не придется?

Интересный вывод.

main() тоже можно описать как void main(void),
разве это как-то помешает работать с переменными?


Цитата
Может ли быть подпрограмма в прерывании, и сколько их может быть внутрь(матрешки),

Конечно.
Количество зависит от объема стека выделенного вами.. для m32 легко можно отвести 512b-1kb под стек.


Цитата
Может ли находится основная программа в прерывании в плоть до вывода на жк экран
к примеру таймера 1 ?

В прерывании или не в прерывании не имеет особого значения.
Значение имеет то, сможет ли конкретный подход обеспечить выполнение всех задач поставленных в ТЗ.
Если основная функция программы выполняется в прерывании (где другие прерывания запрещены), то в этой функции некоторые действия придется решать путем программного опроса (например нельзя будет организовать одновременный прием/передачу по уарту, т.к. в режиме опроса надо проверять флаги состояния; нельзя будет одновременно работать с несколькими периферийными устройствами).. Если вас это устраивает, и программа не сильно сложная - то тогда безусловно можно.

Прерывания организованы для того чтобы сделать возможным обработку множества устройств в самый подходящий для этого момент. В вашем случае процессор что-то считает, выводит данные на LCD. Вдруг в какой-то момент времени АЦП заканчивает преобразование - происходит прерывание, процессор переходит на ПП обслуживания АЦП - вычитывает данные, запускает следующее преобразование и возвращается к прерванной задаче вывода данных на LCD.. В какой-то момент времени приходит символ по УАРТ. Процессор - отвлекается от текущей задачи - вынимает символ пришедший на УАРТ ложит его в очередь и возвращается к выводу данных на LCD.. В момент когда процессор закончит вывод на LCD и ему понадобятся данные с АЦП или с УАРТа, ему уже не придется ждать этих данных, надо будет просто взять их из очереди и обрабатывать.

Так что на мой взгляд не стоит размещать все в прерывании.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Чип-Хрум   Прерывания в Mega32   May 26 2007, 13:29
- - mempfis_   2. "Можно-ли прерывание осуществлять из преры...   May 26 2007, 14:18
- - ReAl   Цитата(Чип-Хрум @ May 26 2007, 16:29...   May 26 2007, 15:45
- - Alexey Belyaev   Ребят, а что будет если у меня например работает п...   Jun 4 2007, 05:49
|- - IgorKossak   Цитата(Alexey Belyaev @ Jun 4 2007, 08:49...   Jun 4 2007, 06:37
|- - ALexx   Цитата(Alexey Belyaev @ Jun 4 2007, 08:49...   Jun 4 2007, 06:42
- - Чип-Хрум   Вот пример программы в ней переменная unsigned cha...   Jun 9 2007, 09:37
|- - xemul   Цитата(Чип-Хрум @ Jun 9 2007, 13:37)...   Jun 9 2007, 10:24
|- - zltigo   Цитата(xemul @ Jun 9 2007, 13:24) В прото...   Jun 9 2007, 19:40
- - mdmitry   Цитата(Чип-Хрум @ Jun 9 2007, 13:37)...   Jun 9 2007, 10:11
- - Чип-Хрум   Ув. xemul я спрашивал конкретно а ты не ответил , ...   Jun 9 2007, 16:13
|- - defunct   Чип-Хрум Формулируйте вопрос нормально. что где ч...   Jun 9 2007, 19:00
|- - xemul   Цитата(Чип-Хрум @ Jun 9 2007, 20:13)...   Jun 14 2007, 15:28
- - SunnyDevil   Чтобы понять почему написанная программа та себя в...   Jun 11 2007, 13:18


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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 16:23
Рейтинг@Mail.ru


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