Отговори на тема  [ 10 мнения ] 
PIC, flag BITS, "_must_ be cleared in software" ? 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение PIC, flag BITS, "_must_ be cleared in software" ?
Правя разлика м/у must и can,но все пак колко must трябва да е :) :lol:

Т.е ще почне ли ПИК-а да не работи правилно, ако не изчистя даден Флаг бит (примерно EEIF ) ?

Благодаря предварително :P

edit:

сигурно се питате , че какво толкова 1 ред , 1 инструкция повече и все пак искам да знам, защото си мисля , че за прегледност някои път е хубаво да се сложи ред, който не е нужен, но някои път за прегледност , ако може се спестява някои ред. ;) :) :roll:

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Нед Ное 20, 2005 12:29 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Ами вече взех да ги позабрявям пиковете ама имам спомени че като не го изтриеш съответното прекъсване се изпълнява циклично докато не го изтриеш флага.


Нед Ное 20, 2005 12:51 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 24, 2005 11:41 pm
Мнения: 1049
Местоположение: Pz
Мнение 
Всички битове за които пише "must be cleared in software", трябва да ги нулираш. Няма начин - ще добавиш още едни ред. Иначе ще стане точно както казва Никола. На симулатора може да видиш какъв е ефекта.


Нед Ное 20, 2005 1:21 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30685
Местоположение: София
Мнение 
Освен ако не си забранил прекъсването да речем, не напразно са написали must, щом го ползваш като прекъсване задължително триеш.


Нед Ное 20, 2005 5:02 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение 
Е ок :) Значи аз питам , щото никъде не са написали , освен този must , какво би станало, ако не се нулира.

А иначе моята логика , защо може би могло да не се нулира е защото е FLAG bit - или да го кажа така - го възприемах само като "уведомяващ бит" ;)

Благодаря за отговорите. :)

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Нед Ное 20, 2005 10:59 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Сеп 27, 2004 9:22 am
Мнения: 15501
Местоположение: София
Мнение 
Ами те нещата са горе долу ясни. Писано е че е твоя грижа да го нулираш. Знаеш какво точно прави бита. Значи знаеш какво ще стане ако не го нулираш. Ако това което ще стане не те притеснява - не го нулираш.

Must значи че е твоя отговорността. Ако искаш/ако не искаш - както искаш.

_________________
"Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.


Нед Ное 20, 2005 12:23 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение 
Казах , че правя разлика м/у must / can , но все пак се казва, че щом flag bit X е 1 , значи е настъпил int X , а не че това прексъване ще се повтаря :?

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Нед Ное 20, 2005 1:11 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
Oбикновено този бит указва на CPU-то, че трябва да изпълни прекъсването. Тези механизми действат така:
1. нещо се случва и битът, който обсъждаше досега, се вдига.
2. ядрото вижда, че 'онзи бит' е вдигнат, и винаги, когато прекъсванията са разрешени, скача да изпълнява съответния IRS
3. да ама, като скочи, си забранява прекъсванията. Оттук нанатък 'онзи бит' не влияе върху хода на историята, защото прекъсванията са забранени.
Т.е. след като веднъж 'скочи', повече не повтаря.
4. твоята ISR прави нещо и излиза.
5. при излизането прекъсванията се разрешават. 'Онзи бит' пак става депутат в НС на CPU-то.
И сега е веселбата: ако 'онзи бит' все още е вдигнат, отиваме в т.2.
Какъв е изходът : в т.4 битът трябва да се нулира.


Нед Ное 20, 2005 1:23 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Много добре ти го обясни батето.
Ако не ползваш прекъсването и е забранено тогава това си е е точно информационен флаг вдига се се при настъпване на събитието и си стои вдигнат докато софтуерно не го изчистиш. Тогава в зависимост от логиката на програмата може и да не го чистиш всеки път.
В по свястните процесори тоя тип флагове се изчистват автоматично след обработване на прекъсването.


Нед Ное 20, 2005 1:31 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение 
bateAz написа:
Oбикновено този бит указва на CPU-то, че трябва да изпълни прекъсването. Тези механизми действат така:
1. нещо се случва и битът, който обсъждаше досега, се вдига.
2. ядрото вижда, че 'онзи бит' е вдигнат, и винаги, когато прекъсванията са разрешени, скача да изпълнява съответния IRS
3. да ама, като скочи, си забранява прекъсванията. Оттук нанатък 'онзи бит' не влияе върху хода на историята, защото прекъсванията са забранени.
Т.е. след като веднъж 'скочи', повече не повтаря.
4. твоята ISR прави нещо и излиза.
5. при излизането прекъсванията се разрешават. 'Онзи бит' пак става депутат в НС на CPU-то.
И сега е веселбата: ако 'онзи бит' все още е вдигнат, отиваме в т.2.
Какъв е изходът : в т.4 битът трябва да се нулира.


След като ми казаха , че ще почне да се върти предположих горе-долу , че това става, но наистина го обясни перфектно ! Благодаря. :)
Сега всичко е кристално ясно :supz:

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Нед Ное 20, 2005 3:20 pm
Профил ICQ
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 10 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни