| Автор |
Съобщение |
|
nickich
Ранг: Почетен член
Регистриран на: Вто Ное 01, 2005 10:23 am Мнения: 704 Местоположение: Limerick, Ireland
|
 PIC16F877A & interrupts
Наистина ли този пик вектора на прекъсванията сочи към един и същи адрес, независимо от събитието, предизвикало прекъсването, и после във функцията, обслужваща прекъсването трябва да полирам битовете в регистрите за да разбера какво точно се е случило? ... или аз нещо не разбирам  ...ама май е така. .. не искам да повярвам, че са го измислили толкова дървено, все пак не е от най-ниския клас.
_________________ "640 К са достатъчни на всеки за всичко." Бил Гейтс
|
| Чет Яну 12, 2006 12:13 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
Да, така е - 0004h. И какво толкова не ти харесва?
|
| Чет Яну 12, 2006 12:50 pm |
|
 |
|
nickich
Ранг: Почетен член
Регистриран на: Вто Ное 01, 2005 10:23 am Мнения: 704 Местоположение: Limerick, Ireland
|
Не ми харесва, 4е е неудобно, губи се време, не мога да имам прекъсване по време на друго прекъсване, няма приоритети, ... да продължавам ли?
... абе цялата идеология на прекъсванията се насмита.
Вчера ми се наложи по-сериозно да ползвам прекъванията и се за4етох в документацията....
Май ще трябва да ги отказвам тия 
_________________ "640 К са достатъчни на всеки за всичко." Бил Гейтс
|
| Чет Яну 12, 2006 1:18 pm |
|
 |
|
Bezmozachen
Ранг: Популярен
Регистриран на: Сря Апр 27, 2005 2:47 pm Мнения: 349 Местоположение: Varna
|
Ами пиковете са така. В 18-ките има две нива на прекъсвания, но пак нещата опират проверка. Имаше и техники за вложени прекъсвания, т.е. почваш да обслужваш едно прекъсване, като разрешаваш прекъсванията, т.е. вече го обслужваш извън прекъсванията и така можеш да организираш приоритетна обработка. Лично на мен никога не ми се е налагало да го правя. 2-те нива при 18-ките са ми напълно достатъчни, за обработка на 7-8 прекъсвания.
|
| Чет Яну 12, 2006 1:33 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
Ами такива са си. И според мен това е нормално за сферата им на приложение.
Ако в твоя проект се изисква обслужване на прекъсване на няколко нива, то просто си сбъркал с избора на PIC.
|
| Чет Яну 12, 2006 1:48 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
А кое AVR има ли приоритети (не съм запознат и затова питам  )
Или трябва да се скача на AMR или нещо от тиз тип 'мощ'/клас . ?
|
| Чет Яну 12, 2006 4:21 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
MSP430 има приоритети и общо 16 вектора за прекъсване, но е малко по-висок ценови клас ( 15 лева ++ ). Има в Електронинвест ( MSP430F149 ), има и макетни платки за него. Olimex предлагат програматор за него.
|
| Чет Яну 12, 2006 4:59 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
mega-та има 21 прекъсвания (mega16). С приоритети, разбира се.  Има си просто контролер читав на прекъсванията.
|
| Чет Яну 12, 2006 5:08 pm |
|
 |
|
TheWizard
Ранг: Форумен бог
Регистриран на: Сря Апр 27, 2005 12:48 pm Мнения: 6094
|
От де почнахте - де свършихте :)
|
| Чет Яну 12, 2006 7:45 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Не можем да пропуснем възможноста да покажем колко голямо дърво за пиковете 
|
| Чет Яну 12, 2006 8:57 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Питам и отговарят. Всичко е точно.
Благодаря за инфото.
Не вярвам да ме подвеждат хи-хи, но знаеш ли. Може да злорадстват подбудени от завист към Майкрочип. 
|
| Чет Яну 12, 2006 10:30 pm |
|
 |
|
WDW
Ранг: Популярен
Регистриран на: Сря Окт 26, 2005 12:36 am Мнения: 353
|
Е добре де, и аз не съм запознат с останалите тУкмаци,но винаги това ми се е струвало толкова естествено: Настъпва прекъсването и ти просто проверяваш от къде е !!
Как е при другите? Какво значи 16 нива ??
_________________ Сичкото що е транзистор за илядо и пестотин волта се е BU ...
|
| Пет Яну 13, 2006 3:24 pm |
|
 |
|
nickich
Ранг: Почетен член
Регистриран на: Вто Ное 01, 2005 10:23 am Мнения: 704 Местоположение: Limerick, Ireland
|
Е да, настъпва прекъсването, ама защо трябва да гупиш време да проверяваш от къде е. При нормалните професори просто вектора на прекъсванията сочи към определен адрес, който е различен за съответното пррекъсване и на този адрес си слагаш указател към функцията, която искаш да се изпълни при настъпване на дадено събитие (прекъсване). Ако в момента се изпълнява функция, обслужваща дадено прекъсване и настъпи прекъсване с по-висок приоритет, професора прекъсва изпълнението на текущата и изпълнява тази с по-висок приоритет, след това се връща към текущата.
_________________ "640 К са достатъчни на всеки за всичко." Бил Гейтс
|
| Пет Яну 13, 2006 3:39 pm |
|
 |
|
Desert Leo
Ранг: Форумен бог
Регистриран на: Чет Фев 10, 2005 3:25 pm Мнения: 5677 Местоположение: София
|
Схемата на прекъсване на Пиковете си е съвсем нормална за приложенията им.
Ако имаше няколко нива с приоритети, схемата на прекъсване би се усложнила неоправдано и вместо да улесни - ще затрудни програмирането.
Всеки от изброените професори по-горе си има своите приложения и затова да се сравняват по който и да било изолиран параметър или възможност е неправилно.
Дори AVR и PIC не би трябвало да се сравняват.
|
| Пет Яну 13, 2006 4:34 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Ами всичко е въпрос на приложение:
1. Пика няма вектори, но влиза в прекъсване за има/няма 500ns. Даже и с проверки на източника, времето за реакция е до няколко микросекунди.
2. АРМ-а има много мощен векторен контролер за прекъсванията. Ама се оказва, че докато се напъха в прекъсването, току виж мръкнало.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Яну 13, 2006 4:53 pm |
|
|