[an error occurred while processing this directive]
Я правильно поня? В ИАРе прерывание нельзя просто вызвать с любого места программы?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
M@RS
19 октября 2005 г. 21:42
Составить ответ
|||
Конференция
|||
Архив
Ответы
Если это AVR, то пришешь майне '1' в нужный бит регистра GIGR, TIFR, итд. и нужное прерывание вызывается.
—
(20.10.2005 12:27
213.171.43.122
,
пустое
)
Ну да - тут сплошные дебилы собрались и воротят всякую чушь вместо "прописывания в майне 1"... Учи матчасть, гениальный ты наш!
—
=AVR=
(20.10.2005 16:33
80.92.96.19
,
пустое
)
Если не жалко ногу внешнего прерывания (INT0/INT1) или любой другой (если МК имеет PinChangeInterrupt, как Мега48), то програмное прерывание делается ОДНОЙ командой АСМ
—
=AVR=
(20.10.2005 02:46
80.92.96.19
, 708 байт)
Вот сейчас набросал пример того что надо сделать на работе!
—
M@RS
(19.10.2005 21:58
213.159.250.216
, 166 байт)
А может проще будет описать ISR как функцию и вызывать ее и из майна и из прерывания.
—
rezident
(19.10.2005 22:07
195.222.149.11
,
пустое
)
Если размер стека позволяет, конечно.
—
rezident
(19.10.2005 22:08
195.222.149.11
,
пустое
)
а если так ((void)(*)())14)();
—
F8
(19.10.2005 22:01
213.130.22.7
,
пустое
)
Чето я запутался... где скобку убрать?
—
M@RS
(19.10.2005 22:42
213.159.250.216
,
пустое
)
после void - ((void(*)())14)();
—
F8
(20.10.2005 01:09
195.5.21.210
,
пустое
)
не черз указатель на функцию не канает, проверял! А, как же тогда в ВинАВр проходит такой фокус?
—
M@RS
(19.10.2005 22:08
213.159.250.216
,
пустое
)
Почему не канает? Не компилится? если просто вызвать обработчик то обязано канать.
—
F8
(19.10.2005 22:14
213.130.22.7
,
пустое
)
а хде это вы такого синтаксиса набрались ?
—
DASM
(19.10.2005 22:03
217.118.78.1
,
пустое
)
А что не нравится-то?
—
F8
(19.10.2005 22:04
213.130.22.7
,
пустое
)
А ну да конечно лишнюю скобку поставил ((void(*)())14)();
—
F8
(19.10.2005 22:08
213.130.22.7
,
пустое
)
тем что не компилируется
—
DASM
(19.10.2005 22:05
217.118.78.1
,
пустое
)
Да понял, скобка там лишняя
—
F8
(19.10.2005 22:09
213.130.22.7
,
пустое
)
в смысле 0x14
—
(19.10.2005 22:02
213.130.22.7
,
пустое
)
Дык МК-то какой? Ё-мое!
—
rezident
(19.10.2005 22:00
195.222.149.11
,
пустое
)
да нет у него SWI - AVR это
—
DASM
(19.10.2005 22:04
217.118.78.1
,
пустое
)
Про AVR не знаю, но сохранение и восстановление регистров по разному происходит при вызове функции и обработке прерывания.
—
rezident
(19.10.2005 22:05
195.222.149.11
,
пустое
)
наше дело дать человеку возможность вызвать. За спасение утопающих - отдельная плата
—
DASM
(19.10.2005 22:08
217.118.78.1
,
пустое
)
Программное прерывание? Смотря для какого кристалла.
—
rezident
(19.10.2005 21:53
195.222.149.11
,
пустое
)
А что за машина?
—
БУБУ
(19.10.2005 21:48
195.131.84.204
,
пустое
)
расшифруй
—
ы
(19.10.2005 21:46
80.92.98.211
,
пустое
)
при попытке вызова прерывания из майна выдает вот это!
—
M@RS
(19.10.2005 21:56
213.159.250.216
, 44 байт)
Естественно. По разному контент должен сохраняться и восстанавливаться. Возврат из функции команда типа ret, а возврат из прерывания reti.
—
rezident
(19.10.2005 22:02
195.222.149.11
,
пустое
)
Ответ: ну изгольнись так. Правда я умываю руки
—
DASM
(19.10.2005 22:02
217.118.78.1
, 90 байт)
Да хрен там, всё равно через call, аппаратно то вызов должен логику прерывания обработать и I флагом баловацца... а в авр нет swi? ну или ногу INT дёрнуть , хотя ну на куя такое извращение
—
Kenat
(19.10.2005 22:10
85.140.9.47
,
пустое
)
Ногу - можно, нюансы описал выше -->
—
=AVR=
(20.10.2005 02:54
80.92.96.19
,
пустое
,
ссылка
)
С ВинАВр перевожу библиотеки
—
M@RS
(19.10.2005 22:12
213.159.250.216
,
пустое
)
ну дасм парвду сказал и изь мэна и из иср вызвать функцию... Библиотеки , хм интересно... хоть что за логика извращённая ?
—
Kenat
(19.10.2005 22:20
85.140.9.47
,
пустое
)
Логика!
—
M@RS
(19.10.2005 22:33
213.159.250.216
, 105 байт)
А зачем????
—
Bill
(19.10.2005 22:52
195.46.168.236
,
пустое
)
так просто начни передачу из main выкидыванием первого символа
—
DASM
(19.10.2005 22:34
217.118.78.1
,
пустое
)
ДАСМ так и зделал. Нопосмотрел SPI там тоже самый прикол.
—
M@RS
(19.10.2005 22:36
213.159.250.216
,
пустое
)
Гм. А в MSP430 для инициализации передачи и вызова прерывания передатчика достаточно всего лишь программно установить один флаг.
—
rezident
(19.10.2005 23:28
195.222.149.11
,
пустое
)
А в AVR то же самое.
—
Bill
(19.10.2005 23:49
195.46.168.210
,
пустое
)
Тогда я причин мороки с прерыванием UARTа не понимаю :)
—
rezident
(19.10.2005 23:53
195.222.149.11
,
пустое
)
А как будто я понимаю? И, вообще, о чем тут речь идет?
—
Bill
(19.10.2005 23:55
195.46.168.210
,
пустое
)
ну логичнее получить честное прерывание от ушедшего байта, это не рушит концепцию системы. А устанока бита ручками - заставит обработчик думать "ой, а что это было, я же ничего не посылала"
—
DASM
(20.10.2005 00:02
217.118.78.1
,
пустое
)
Это ты о чем?
—
Bill
(20.10.2005 00:03
195.46.168.210
,
пустое
)
ну вы гутарите как инициировать прерывания. Я, советую выкинуть байт из main, а дальше в TxInt система разберется. А вы хотите битик TXC как я понял ставить. И не факт что он есть у других процев
—
DASM
(20.10.2005 00:06
217.118.78.1
,
пустое
)
Ничего подобного. Во-первых, бит TXC программно нельзя установить, можно только сбросить.
—
Bill
(20.10.2005 00:11
195.46.168.210
, 171 байт)
вообще туго представляю как использовать UDRE и зачем это надо. Так как все таки начать передачу то ?
—
DASM
(20.10.2005 00:13
217.118.78.1
,
пустое
)
DS надо читать щительнее.
—
Bill
(20.10.2005 00:20
195.46.168.210
, 327 байт)
НУ И НАФИГ мне знать что он пустой ? Да и мы про TX говорили . сплюююююю
—
DASM
(20.10.2005 00:41
217.118.78.1
,
пустое
)
А вот зная об этом не надо будет вставать на уши для того, чтобы передавать 1-й байт.
—
Bill
(20.10.2005 01:25
195.239.108.41
, 159 байт)
Видимо о том, что не зная хорошо архитектуры МК и языка программирования, весьма тяжело вносить коррективы в исходные тексты.
—
rezident
(19.10.2005 23:59
195.222.149.11
,
пустое
)
Ну, это и без всяких дискуссий должно быть ясно. Стоит ли воду в ступе толочь?
—
Bill
(20.10.2005 00:01
195.46.168.210
,
пустое
)
Чтобы не обидеть исправлю "... не зная досконально архитектуры МК и всех тонкостей языка программирования ..." ;-0)
—
rezident
(20.10.2005 00:00
195.222.149.11
,
пустое
)
Уроды...кто писал такое ?
—
Kenat
(19.10.2005 22:44
85.140.9.47
,
пустое
)
Вот исходник... может я чего-то не понимаю???
—
M@RS
(19.10.2005 22:51
213.159.250.216
, 8357 байт)
Да уж ...
—
Bill
(19.10.2005 23:01
195.46.168.236
,
пустое
)
мне так кааца , что кто-то логику извращённую засадил +
—
Kenat
(19.10.2005 22:59
85.140.9.47
, 119 байт)
С чего Вы взяли?
—
Bill
(19.10.2005 21:45
195.46.168.236
,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
NoIX ключ
:
Запомнить
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru