Мова Асамблеї по ПОС 16F872 (перебиває)

S

scdoro

Guest
Привіт,
У мене є сумніви з програмування ПІК 16F872 на асемблері.
1) Чи може програма мати більше одного переривання?Якщо це так, я хотів би знати, як встановити пріоритет?так що два переривання не буде зіткнення разом?
2) на beinging програми
Org 0x000
Goto Start; пропустити місця, на які вказує
; Вектор переривання
Org 0x004
Перейти iserv
якщо є більш ніж одне переривання, мені потрібно додати інші команди вище вектора?
3) Чи можуть дві переривання відбуваються в той же час?Як подолати це?
4), ми можемо викликати підпрограму (виклик функції) в обслуговування переривання?

Велике спасибі за допомогу

 
Привіт,

є тільки один пріоритет переривання на pic16 серія серія PIC18 тільки два переривання пріоритети ...

1) програма може мати стільки переривання, як ваш підтримує ПОС, але ви не можете встановити пріоритет і ви також можете не робити нічого, щоб запобігти запуск декількох interrups в той же час.

2) немає, оскільки це не підтримується pic16

3) будь-яке переривання може статися у той же час ви не можете робити нічого проти цього

4) Так, ви можете викликати функцію під час перервати але ви повинні намагатися не робити, тому що це додає ще один стек рівня (pic16 і лише вісім рівнів), і вона також приведе до відстрочки перервати вашу відповідь.Це Godd ідея тримати перервати підпрограму якомога коротшим.

Для підтримки кількох interrups вам доведеться робити обробник переривань як це (Привіт-tech С):

Пустота переривання ISR (VOID)
(
якщо (RCIF)
(
)

якщо (TMR2IF)
(
)
)

Не забудьте очистити прапор переривання, що викликає ваше перервати, якщо не робиться автоматично апаратно противному випадку вам буде застрягла всередині переривання назавжди

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Посмішка" border="0" />сподіваюся, що це допомагає та найкращими побажаннями

 
Цитата:

1) Чи може програма мати більше одного переривання?
Якщо це так, я хотів би знати, як встановити пріоритет?
так що два переривання не буде зіткнення разом?2) на beinging програми

Org 0x000

Goto Start; пропустити місця, на які вказує

; Вектор переривання

Org 0x004

Перейти iserv

якщо є більш ніж одне переривання, мені потрібно додати інші команди вище вектора?
 

Welcome to EDABoard.com

Sponsor

Back
Top