Пост N: 946
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 29.10.09 08:55. Заголовок: Прерывания
Читая 59 статью абонемента, неожиданно подумал о системе прерываний в ПИКах. Все таки идиотская система. Всего один или два вектора прерываний, хотя если по уму, то для каждого прерывания должен быть свой вектор. Так сделано в Amel ах и по моему в DS ПИКах.
Вектор прерывания - это адрес, на который осуществляется переход, при возникновении прерывания. У ПИКов среднего семейства такой адрес один: 04h У Интела, например, у каждого прерывания - свой адрес.
Пост N: 1526
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
4
Награды:
Отправлено: 29.10.09 20:07. Заголовок: Не совсем так. Я ска..
Не совсем так. Я сказал что было бы лучше (если бы для каждого прерывания был свой фиксированный адрес), но увы... имеем то, что имеем. Раз всё равно ничего изменить нельзя (переход на Atmel в данном случае в расчет не берем), то ничего страшного в одном векторе прерывания нет.
Пост N: 948
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
1
Фото:
Отправлено: 29.10.09 23:29. Заголовок: А куда деваться? Нек..
А куда деваться? Некуда. Но уже подумываю осваивать ДС пики. Бегло посмотрел даташиты на DS30F3010. Похоже в них есть даже регистровый файл, как в Атмелах. А это бешенное быстродействие, лучшего похоже пока и нет, с косвенной адресацией дела обстоят попроще, похоже больше нет этих постоянных обращений к аккумулятору(он конечно есть, но в регистровом файле можно напрямую выполнять все операции, он имеет прямой доступ к АЛУ.). У каждого прерывания свой вектор и свой приоритет, хотя с приоритетом они погорячились, лучше бы назначать его самостоятельно. Аппаратный модуль умножения как у 18 пиков, только разрядность поболее, вроде как еще и делитель есть, но не уверен. Нашел много общего между ДС пиками и Атмелами, но пики как то роднее и ближе к сердцу. Кстати, ни у кого нет исходников для ДС пиков попроще? Хотелось бы въехать в структуру программы, хотя бы потихоньку, а то времени нет, на работу уезжаю в 9 утра, а с работы уже забыл когда приезжал раньше 9 вечера, да еще и без выходных... Совсем все забросил.
Пост N: 1531
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
4
Награды:
Отправлено: 30.10.09 01:00. Заголовок: MAZ пишет: А в чем ..
MAZ пишет:
цитата:
А в чем выгода, если у каждого прерывания свой адрес (вектор)?
не надо анализировать биты чтобы знать что вызвало прерывание. Тупо по адресу 04h пишешь goto 1000h и переходишь на обработку прерывания по входу INT, по адресу 08h пишешь goto 1200h и переходишь на обработку прерывания от таймера, поадресу 12h пишешь goto 2000h и на обработку прерывания от второго таймера и т.д., т.е. при прерывании от разных источников программа улетает по разным адресам (они обычно идут один за другим, место только для команды goto и адреса где находится п/программа обработки). После 8080, Z80, ВЕ51 это было непривычно, но теперь нормально, никакой ущербности не вижу.
Все даты в формате GMT
3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет