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

 
 
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
Виктория
сообщение Oct 31 2005, 05:47
Сообщение #16


инженер
****

Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701



Цитата(Regbist @ Oct 31 2005, 00:01)
Народ, я написал обработчик прерываний для com порта, используя Keil/ А как мне вызвать эти прерывание в программе?
*

Прерывания вызываются не в программе. По приходу события - запроса прерывания от источника прерываний вызывается подпрограмма обработки прерывания. В Вашем случае может быть 2 прерывания, свидетельствующие о завершении операции передачи информации по последовательному порту, и о завершении операции приема информации.
Фоновая программа с другими вычислениями выполняется параллельно процессу приема/передачи (точнее квазипараллельно). Поэтому синхронизацию фоновой программы с подпрограммой обработки прерывания ("...потом "Бац" и мне приходит команда по компорту,которую надо обработать и понять что это за команда,остановив при этом вычисления...."), равно как и обмен данными ("...и как я узнаю, что мне чтото пришло по компорту...") нужно "ручками", т.е. самим программировать.

Вообще то в Вашем случае smile.gif , уважаемая наша молодежь, нужно с книг начинать. Можно вот эти, хотя бы

1. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT. – М.: “Финансы и статистика”, 1991.
2. Фролов А.В., Фролов Г.В. Аппаратное обеспечение компьютера IBM PC. – М.: “Диалог-МИФИ”, книги 1-2, 1992. (Библиотека системного программиста; Т. 2).
3. Фролов А.В., Фролов Г.В. Программирование модемов. – М.: “Диалог-МИФИ”, 1993. (Библиотека системного программиста; Т. 4).
4. Густав Олссон, Джангуидо Пиани. Цифровые системы автоматизации и управления.- С.Петербург: “Невский диалект”, 2001.

Если у Вас уж очень серьезная необходимость, а книг нет - то могу выложить в этой ветке (кроме Джордейна).
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Oct 31 2005, 09:52
Сообщение #17


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

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



Цитата(Regbist @ Oct 30 2005, 23:01)
....я написал обработчик прерываний для com порта.....А как мне вызвать эти прерывание в программе?......


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

Или вот ышо вариант... Приходящий байтик по COM порту вываливаем на шинку порта. Тут буфером никаким не пахнет. Единственный нюанс (как и везде) - заботиться о сохранности регистров проца. Ведь если Вы заюзали регистр "a" (к примеру) - то нуна сохранить старое значение. Сохранить мона либо на стэке, либо в ячейке памяти.

удачи Вам
(круглый)
Go to the top of the page
 
+Quote Post
Roma_te
сообщение Dec 13 2005, 13:16
Сообщение #18


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

Группа: Свой
Сообщений: 123
Регистрация: 13-12-05
Из: Украина, Тернополь
Пользователь №: 12 161



Цитата(Regbist @ Oct 30 2005, 23:01) *
Народ, я написал обработчик прерываний для com порта, используя Keil/ А как мне вызвать эти прерывание в программе?
к примеру задача такая:
я выполняю какие то операции в контроллере , затем мне надо всё остановить и передеть по com порту,


1. Включаеш режым дебагера (CTRL+F5)
2. Ставиш брекпоинт в начале обработчика перериваний (Debug - Insert/Remove Breakpoint)
3. Запускаєшь на исполнение (F5)
В случае если биты ЕА и ЕS равны 1 после комманды SBUF=... (через определенное количество операций) твоя программа должна остановится на брекпоинте.

Цитата(Regbist @ Oct 30 2005, 23:01) *
затем опять начать считать что то в контроллере,либо котроллер что то считает , потом "Бац" и мне приходит команда по компорту,которую надо обработать и понять что это за команда,остановив при этом вычисления.


1. Включаеш режым дебагера (CTRL+F5)
2. Ставиш брекпоинт в начале обработчика перериваний (Debug - Insert/Remove Breakpoint)
3. Запускаєшь на исполнение (F5)
Для проверки обработчика на прием необходимо в окне Watch открыть переменные SBUF и RI, присваиваешь SBUF нужное значение затем присваиваешь RI 1 и программа останавливается на брек поинте.

Не забудь в конце обработчика програмно сбросить флаги ТI и RI smile.gif
Go to the top of the page
 
+Quote Post
san822
сообщение Dec 14 2005, 08:51
Сообщение #19


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

Группа: Свой
Сообщений: 1 195
Регистрация: 26-07-05
Из: Санкт-Петербург
Пользователь №: 7 111



Цитата(Vic1 @ Oct 31 2005, 08:47) *
Вообще то в Вашем случае smile.gif , уважаемая наша молодежь, нужно с книг начинать. Можно вот эти, хотя бы

1. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT. – М.: “Финансы и статистика”, 1991.
2. Фролов А.В., Фролов Г.В. Аппаратное обеспечение компьютера IBM PC. – М.: “Диалог-МИФИ”, книги 1-2, 1992. (Библиотека системного программиста; Т. 2).
3. Фролов А.В., Фролов Г.В. Программирование модемов. – М.: “Диалог-МИФИ”, 1993. (Библиотека системного программиста; Т. 4).
4. Густав Олссон, Джангуидо Пиани. Цифровые системы автоматизации и управления.- С.Петербург: “Невский диалект”, 2001.

Если у Вас уж очень серьезная необходимость, а книг нет - то могу выложить в этой ветке (кроме Джордейна).




Очень бы хотелось почитать что-нибудь о прерываниях на русском языке,
желательно с примерами на ЯП Си.
У меня по Си есть книги, но, к сожалению, в них про прерывания не сказано почти ничего.
Наверное не то читаю...
Go to the top of the page
 
+Quote Post
Виктория
сообщение Dec 14 2005, 12:47
Сообщение #20


инженер
****

Группа: Свой
Сообщений: 520
Регистрация: 19-09-05
Из: Самара
Пользователь №: 8 701



Цитата(san822 @ Dec 14 2005, 12:51) *
Цитата(Vic1 @ Oct 31 2005, 08:47) *



Вообще то в Вашем случае smile.gif , уважаемая наша молодежь, нужно с книг начинать. Можно вот эти, хотя бы

1. Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT. – М.: “Финансы и статистика”, 1991.
2. Фролов А.В., Фролов Г.В. Аппаратное обеспечение компьютера IBM PC. – М.: “Диалог-МИФИ”, книги 1-2, 1992. (Библиотека системного программиста; Т. 2).
3. Фролов А.В., Фролов Г.В. Программирование модемов. – М.: “Диалог-МИФИ”, 1993. (Библиотека системного программиста; Т. 4).
4. Густав Олссон, Джангуидо Пиани. Цифровые системы автоматизации и управления.- С.Петербург: “Невский диалект”, 2001.

Если у Вас уж очень серьезная необходимость, а книг нет - то могу выложить в этой ветке (кроме Джордейна).




Очень бы хотелось почитать что-нибудь о прерываниях на русском языке,
желательно с примерами на ЯП Си.
У меня по Си есть книги, но, к сожалению, в них про прерывания не сказано почти ничего.
Наверное не то читаю...


Теоретически, для чего нужны прерывания - см. 2 главу [4]
Практически на примерах программирования на Си для IBM PC AT - глава из [2].
Последний файл - это материал из моих старых лекций (давно электронный вариант не обновляла, рассказываю студентам уже немного по другому и естеств., с примерами)

А дальше уже смотрите свою док. на используемый контроллер (принципы организации прерываний) и компилятор Си (ключевые слова типа interrupt, функции установки векторов прерываний и маскирования).
Прикрепленные файлы
Прикрепленный файл  olson1.zip ( 2.33 мегабайт ) Кол-во скачиваний: 52
Прикрепленный файл  ch2.htm ( 80.12 килобайт ) Кол-во скачиваний: 68
Прикрепленный файл  lec.doc ( 34 килобайт ) Кол-во скачиваний: 356
 
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 23 2005, 14:21
Сообщение #21


кекс
******

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



Цитата(Karol @ Oct 21 2005, 07:53) *
Какое время отклика на прерывание следует ожидать у LPCxx ? По моим наблюдениям отклик на внешнее прерывание, SPI и I2C в области микросекунд. Программа на Кейл Ц во внешней RAM.


Время отклика в первую очередь зависит от приоритета прерывания и далее от частоты кварца, настроек PLL, частоты периферийной шины... переход на обработчик FIQ LPC (в Keil) в области наносекунд (завершение текущей команды, сохранение в стек адреса возврата и переход по адресу FIQ), IRQ векторные - медленнее, а безвекторные могут откликаться, как Вы и говорите, в области микросекунд, т.к. могут откладываться до завершения обработки всех активных более высокоприоритетных прерываний плюс имеют дополнительный тормоз - потребность в программном определении источника прерывания. Реакция на прерывание не зависит от источника, будь-то внешний источник или внутренний, главное в какой слот записан вектор обработчика.
Go to the top of the page
 
+Quote Post
Regbist
сообщение Dec 29 2005, 10:44
Сообщение #22


Участник
*

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



здрасте!!! это снова я, и снова с прерываниямиsmile.gif
теперь проблема такая.
написал обработчик прерывания по com порту для микроконтроллера (DS80c400) в кейле,но при компиляции проекта прроисходит наложение адресов. #memory space overlap from c:400023h to c:400027h#. как мне избавиться от этого?
ещё такие особенности заметил при эксперименте с этим делом smile.gif
если для етого контроллера компилировать проект для его пошагового исполния в эмуляторе кейловском, то всё нормально компилируется, если же подгружать файл startup.a51(необходииый для загрузки в железо), то как раз происходит вышеуказанная путаница....

наверно я один из студентов разбираюсь с железяками в такое время, когда все остальные уже начали отмечать НГ smile.gif)))
всем удачи и с наступающим smile.gif
Go to the top of the page
 
+Quote Post
Regbist
сообщение Jan 10 2006, 13:03
Сообщение #23


Участник
*

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



UP!!
Go to the top of the page
 
+Quote Post
Roma_te
сообщение Jan 11 2006, 19:12
Сообщение #24


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

Группа: Свой
Сообщений: 123
Регистрация: 13-12-05
Из: Украина, Тернополь
Пользователь №: 12 161



Цитата(Regbist @ Dec 29 2005, 14:44) *
написал обработчик прерывания по com порту для микроконтроллера (DS80c400) в кейле,но при компиляции проекта прроисходит наложение адресов. #memory space overlap from c:400023h to c:400027h#. как мне избавиться от этого?
ещё такие особенности заметил при эксперименте с этим делом smile.gif
если для етого контроллера компилировать проект для его пошагового исполния в эмуляторе кейловском, то всё нормально компилируется, если же подгружать файл startup.a51(необходииый для загрузки в железо), то как раз происходит вышеуказанная путаница....


Попробуй подгружать не startup.a51 а start390.a51 из ...Keil\C51\EXAMPLES\Dallas 390\C (я прицел его к етому сообщению)

Извиняюсь, почемуто файл с расширением A51 не цепляется (смотри предыдущее сообщение). Поетому пришлось переименовать в ТХТ (смотри атачмент).
Прикрепленные файлы
Прикрепленный файл  START390.TXT ( 7.12 килобайт ) Кол-во скачиваний: 142
 
Go to the top of the page
 
+Quote Post
Regbist
сообщение Jan 26 2006, 19:40
Сообщение #25


Участник
*

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



я подгружал файл startup400.a51 и startup390.a51 ошибка такая же sad.gif(( может в настройках Keila надо сделать что то ? пока разбираюсь с файлом startup400.a51, может там кроется истина smile.gif
Go to the top of the page
 
+Quote Post
Roma_te
сообщение Jan 26 2006, 20:32
Сообщение #26


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

Группа: Свой
Сообщений: 123
Регистрация: 13-12-05
Из: Украина, Тернополь
Пользователь №: 12 161



Цитата(Regbist @ Jan 26 2006, 23:40) *
я подгружал файл startup400.a51 и startup390.a51 ошибка такая же sad.gif(( может в настройках Keila надо сделать что то ? пока разбираюсь с файлом startup400.a51, может там кроется истина smile.gif

Выложи здесь обработчик прерываний, может с ним чтото не так.
Попробуй в startup400.a51 отключить ненужные опции (следуй операторам IF ELSE) и рано или позно найдеш что тебе мешает (хотя я лично не вижу что ето может быть).
Go to the top of the page
 
+Quote Post
alm_
сообщение Feb 16 2006, 08:43
Сообщение #27


Участник
*

Группа: Свой
Сообщений: 25
Регистрация: 2-02-06
Пользователь №: 13 904



Адрес code:27h - это адрес вектора прерывания serial0. Очевидно у тебя два обработчика прерывания на этот порт (interrupt 4)

Но самое главное - бросай этот процесоор. Он не приспособлен для написания больших программ (с размером кода больне 64К) - просто не хватает сегмена data для автоматических переменных (туда помещаются аргументы функций и переменные внутри функция). Те, кто используют для этих целей сегмент xdata/hdata - извращенцы. И прочих дыр там полно - загрузчик, таймеры, выборка периферии.

Для проектов с размером коа меньше 64К Используй AVRMega, для большего - ARM7
Go to the top of the page
 
+Quote Post

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

 


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


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