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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Прерывание на С, для Keil
Regbist
сообщение Sep 28 2005, 06:46
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 8-09-05
Пользователь №: 8 357



Здраствуйте.
Меня, как студента, волнует вопрос о прерываниях. А именно "как и с чем их едят ?" Иначе говоря, объясните, зачеи они нужны ? может есть где литература ?
и ещё.
ПОльзуюсь Keil для процессора DS80C400. когда исползую пример с прерыванием (пример не мой,а с сайта) и подгружаю файл startup.a51, то выдаётся ошибка типа "Memory spase overloop". МНе не понятно, почему происходит наложение адресов, и как от этого избавиься ?
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Sep 28 2005, 12:39
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



Файл startup.a51 надо отредактировать в соответствии с конфигурацией памяти контроллера (и не только памяти, там много настроек).


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
Regbist
сообщение Sep 28 2005, 19:54
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 8-09-05
Пользователь №: 8 357



а не подскажешь где можно поситать про эти настройки ? или может сам сможешь пояснить немного ? smile.gif))
Go to the top of the page
 
+Quote Post
G}{OST
сообщение Sep 29 2005, 06:21
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 48
Регистрация: 6-05-05
Пользователь №: 4 784



Цитата(Regbist @ Sep 28 2005, 23:54)
а не подскажешь где можно поситать про эти настройки ? или может сам сможешь пояснить немного ? smile.gif))
*

в самом файле, в комментариях


--------------------
cul8r!
* #ru_embedded - эмбеддерский чат
Go to the top of the page
 
+Quote Post
Kaplinsky
сообщение Sep 29 2005, 07:35
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 97
Регистрация: 26-05-05
Из: Киев, Украина
Пользователь №: 5 426



Цитата(Regbist @ Sep 28 2005, 08:46)
Здраствуйте.
Меня, как студента, волнует вопрос о прерываниях. А именно "как и с чем их едят ?" Иначе говоря,  объясните, зачеи они нужны ? может есть где литература ?
и ещё.

RTFM. Про прерывания у преподавателя лучше поспрашивай. Слишком долго обьяснять...

Цитата
ПОльзуюсь Keil  для процессора DS80C400. когда исползую пример с прерыванием (пример не мой,а с сайта) и подгружаю файл startup.a51, то выдаётся ошибка типа "Memory spase overloop". МНе не понятно, почему происходит наложение адресов, и как от этого избавиься ?
*


А чей проц ?
Убедись что Кейл у тебя крэкнутый. Хотя если ты берешь пример то даже если он не крэкнутый то должно пахать. Там в триальном ограничение по размеру кода.
Полезно будет посмотреть хелпы, лежат в папке С:\Keil\C51\HLP а также даташит к процу...


--------------------
Смотреть в себя, зреть муки свои, зная, что сам ты виновник мук - вот истинное страдание.
Отладка / Софокл, "Аякс".
Go to the top of the page
 
+Quote Post
Troll
сообщение Oct 18 2005, 03:34
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 104
Регистрация: 30-06-05
Из: С-Петербург
Пользователь №: 6 406



Цитата(Regbist @ Sep 28 2005, 09:46)
Здраствуйте.
Меня, как студента, волнует вопрос о прерываниях. А именно "как и с чем их едят ?" Иначе говоря,  объясните, зачеи они нужны ? может есть где литература ?
и ещё.
ПОльзуюсь Keil  для процессора DS80C400. когда исползую пример с прерыванием (пример не мой,а с сайта) и подгружаю файл startup.a51, то выдаётся ошибка типа "Memory spase overloop". МНе не понятно, почему происходит наложение адресов, и как от этого избавиься ?
*


на сайте смотри примеры:
ftp://ftp.dalsemi.com/pub/tini/ds80c400/c...ries/index.html
раздел ISR Installation - это и есть работа с прерываниями

оттуда же скачай файл startup.a51 для 400 проца
адрес начала программы в startup.a51 должен совпадать с адресом в настройках компилятора.


--------------------
Hemos Pasado
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Oct 18 2005, 12:01
Сообщение #7


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Regbist @ Sep 28 2005, 10:46)
......волнует вопрос о прерываниях. А именно "как и с чем их едят ?" Иначе говоря,  объясните, зачеи они нужны ? ......


если коротко...

прерывания это события и всё что с ними связано. В различных OS принято выделять прерывания аппаратные и программные. Программные вызываються из того или иного куска кода OS или загруженной программы. Аппаратные - инициируються аппаратурой. Как правило в схеме с бОльшим кол-вом прерываний ставиться доп. аппаратный контроллер прерываний (например 8251 - интеловская линейка x86). Результатом прерывания с точки зрения аппаратуры - есть вход микропроцессора. В МК есть так же входа, которые можно использовать как линии прерывания (в зависимости от схемного решения). Как правило существуют основные прерывания : от последовательного порта, от внешних источников (входа), от таймера и т.п.. Как правило каждому прерыванию ставиться в соответствие определённое смещение в памяти, на адрес которого перейдёт управление МК. Чтоб упорядочить прерывания - существует иерархия прерываний и возможность их маскировать (блокировать). Подпрограммки прерываний пишуться лаконично (как выстрел smile.gif ) - хотя это не закон...

пример...
ставим RS232 на приём, разрешаем прерывание от последовательного порта. В обработчике пишем - считать символ из порта и записать его в буффер.
нафига это нуна...буффер самого порта не безграничен. а принятые данные возможно и не имеют значения для Вашей логики...

с уважением
(круглый)
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Oct 18 2005, 14:24
Сообщение #8


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Regbist
Наконец-то дошло что на progz.ru делать нечего. wink.gif


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
Regbist
сообщение Oct 20 2005, 08:54
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 8-09-05
Пользователь №: 8 357



SpiritDance -а ты vodoopeople ?
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Oct 20 2005, 12:01
Сообщение #10


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Угу cool.gif


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 20 2005, 13:08
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Regbist @ Sep 28 2005, 12:46)
Меня, как студента, волнует вопрос о прерываниях. А именно "как и с чем их едят ?" Иначе говоря,  объясните, зачеи они нужны ?
*

Прерывания нужны для обработки каких-то внешних (по отношению к МК и исполняемой программе) событий, которые неопределены во времени. Т.е. могут возникнуть когда угодно.
Go to the top of the page
 
+Quote Post
Make_Pic
сообщение Oct 20 2005, 17:12
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Цитата(rezident @ Oct 20 2005, 16:08)
Цитата(Regbist @ Sep 28 2005, 12:46)
Меня, как студента, волнует вопрос о прерываниях. А именно "как и с чем их едят ?" Иначе говоря,  объясните, зачеи они нужны ?
*

Прерывания нужны для обработки каких-то внешних (по отношению к МК и исполняемой программе) событий, которые неопределены во времени. Т.е. могут возникнуть когда угодно.
*


И в дополнение неоходима моментальная реакция на это событие, временно плюнув на все остальноеwink.gif
Go to the top of the page
 
+Quote Post
Karol
сообщение Oct 21 2005, 05:53
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 23-06-04
Пользователь №: 150



Какое время отклика на прерывание следует ожидать у LPCxx ? По моим наблюдениям отклик на внешнее прерывание, SPI и I2C в области микросекунд. Программа на Кейл Ц во внешней RAM.
Go to the top of the page
 
+Quote Post
Regbist
сообщение Oct 30 2005, 19:01
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 8-09-05
Пользователь №: 8 357



Народ, я написал обработчик прерываний для com порта, используя Keil/ А как мне вызвать эти прерывание в программе?
к примеру задача такая:
я выполняю какие то операции в контроллере , затем мне надо всё остановить и передеть по com порту, затем опять начать считать что то в контроллере,либо котроллер что то считает , потом "Бац" и мне приходит команда по компорту,которую надо обработать и понять что это за команда,остановив при этом вычисления.

ну в итоге всё сводится к тому, как мне вызвать обработчик прерываний в программе?
и как я узнаю, что мне чтото пришло по компорту ?
Go to the top of the page
 
+Quote Post
Sergu
сообщение Oct 31 2005, 05:31
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 67
Регистрация: 18-03-05
Пользователь №: 3 452



Цитата(Regbist @ Oct 30 2005, 22:01)
ну в итоге всё сводится к тому, как мне вызвать обработчик прерываний в программе? 
и как  я узнаю, что мне чтото пришло по компорту ?


Прерывание само вызовется, если вы его разрешите ;-)

Один из вариантов - в прерывании работать со спец-ми буферами на прием и передачу, а в основной программе узнавать о делах по состоянию переменных, в которых хранится кол-во байтов в этих буферах

примеры есть, например в
ISR-Driven Serial I/O V2
This example program provides you with easily configurable interrupt- driven serial I/O routines
This example works with any 8051-compatible device.
http://www.keil.com/download/files/intsio2.zip
Go to the top of the page
 
+Quote Post

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

 


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


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