| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| USART Transmit Complete Interrupt в ATmega http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=716 |
Страница 1 от 1 |
| Автор: | Nikola Kirov [ Пет Юни 03, 2005 3:13 pm ] |
| Заглавие: | USART Transmit Complete Interrupt в ATmega |
Как мога програмно да извикам функцията на това прекъсване? Никога не ми се е налагало да трябва да извикам от програмата функция на прекъсване,ама се оказва че понякога тябва. |
|
| Автор: | Nikola Kirov [ Пет Юни 03, 2005 3:33 pm ] |
| Заглавие: | |
Всъщност зададох въпроса некоректно. А asm команда не е проблем да се извика,въпроса е как е коректно да се извика от C кода. ИАР не разрешава викането на функциите на прекъсванята и се предполага че за това си има някакви съображения. |
|
| Автор: | Реконструктор [ Пет Юни 03, 2005 4:15 pm ] | |||||||||
| Заглавие: | ||||||||||
Това си е за академия.
|
||||||||||
| Автор: | ДедоБоре [ Пет Юни 03, 2005 4:29 pm ] | |||||||||||||||||||||||||||||||||||||||||||||
| Заглавие: | ||||||||||||||||||||||||||||||||||||||||||||||
отговора е принципен и не касае конкретно някое прекъсване. нормални подпрограми (процедури) завършват с RET и се викат с някоя разновидност на CALL. всички (процедури), които обслужват прекъсване завършват с RETI и се викат от самия процесор по вектор. разликата между RET и RETI е обуславена от хардуерната специфика на процесора и какво се намира в стека (на процесора) та на С ако напишеш
това на асемблер ше изглежда така:
съответно
и
до тук с теорията сега по твоя случай. за да можеш да викаш дадена процерура и от прекъсване и от програмата, тя трябва да е нормална програма процедура, която да се вика от самото прекъсване:
това е в най-най-общи линии и сигурно малко зависи от компилатора ти. ако искаш питай още |
||||||||||||||||||||||||||||||||||||||||||||||
| Автор: | Реконструктор [ Пет Юни 03, 2005 4:40 pm ] |
| Заглавие: | |
Е нема нужда да се повтаряме бе, колега. |
|
| Автор: | ДедоБоре [ Пет Юни 03, 2005 4:48 pm ] |
| Заглавие: | |
ми докато го напша и го видя как изглежда си ме изпреварил... все пак си форумния бог |
|
| Автор: | Реконструктор [ Пет Юни 03, 2005 4:52 pm ] |
| Заглавие: | |
Хехехе. |
|
| Автор: | Nikola Kirov [ Пет Юни 03, 2005 5:10 pm ] |
| Заглавие: | |
Реконструктор ако погледнеш това което си написал е точно това кото казвам че IAR не допуска. Дедо Боре мерси че ме насочи с разликата RET i RETI. Значи може да се извика функция на прекъсване коректно но първо забраняваш прекъсванията след което asm("CALL Адреса на съответния вектор") а в самата процедура на прекъсването с RETI прекъсванията се разрешават пак. |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|