Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Прерывания (Вопрос по прерыванию)
Прерывания
555serg Дата: Пн, 02.07.2012, 16:48  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 55
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Здраствуйте . Возник вопрос , кто знает пожалуйста подскажите. В программе использующей прерывание , выходя из обработчика прерывания исользуется команда RESUME , так вот эта самая команда сбрасывает флаг вызвавший данное прерывание , или этот флаг нужно сбрасывать самостоятельно програмно ?( например для TMR1 , так PIR1.0 = 0 )
Сообщение отредактировал 555serg - Пн, 02.07.2012, 16:49
ЯНДЕКС Дата: 02.07.2012
mikhail09p Дата: Пн, 02.07.2012, 18:46  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 507
Репутация: 11   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Команда Resume предназначена для того, чтобы вновь разрешить обработку возникающих прерываний ранее запрещенных командой Disable, поэтому она должна располагаться в конце подпрограммы обработки прерывания.
выходя из обработчика прерывания исользуется команда RESUME - это КАК ??? surprised

прочтите http://terrarus.ucoz.ru/proton_....me.html

Сообщение отредактировал mikhail09p - Пн, 02.07.2012, 18:47
555serg Дата: Пн, 02.07.2012, 22:52  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 55
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Это как . Очень просто - команда RESUME ставиться В КОНЦЕ подпрограммы обработки прерывания для того , чтобы вернуться в то место основной программы , где она была прервана. ( это по книге Чака Хелибайка для PicBasic Pro - собственно на PicBasic и писалась программа по поводу которой и возник вопрос ) По вашей ссылке михаил , команда RESUME делает тоже самое плюс сбрасывает (в единицу ) бит разрешения глобального прерывания GIE регистра INCON , но все это для Протона , меня же интересует PicBasic Pro. Вопрос остается открытым - в самом обработчике прерывания нужно ли програмно ( самостоятельно ) сбрасывать флаг ( бит ) этого только что обработанного прерывания , или команда RESUME (или какаето из двух этих DISABLE - ENABLE ) делает это самостоятельно . Спасибо за ответы.

Добавлено (02.07.2012, 22:52)
---------------------------------------------
Еще по прерыванию хотел спросить , какой командой ( командами ) в теле обработчика прерывания , в начале сохраняются регистры STATUS и аккумулятор , а в конце перед выходом восстанавливаются обратно регистр W и STATUS . Спасибо.

Сообщение отредактировал 555serg - Пн, 02.07.2012, 23:16
mikhail09p Дата: Вт, 03.07.2012, 00:12  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 507
Репутация: 11   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Quote (555serg)
в самом обработчике прерывания нужно ли програмно ( самостоятельно ) сбрасывать флаг ( бит ) этого только что обработанного прерывания

Ответ- да!

Переходите на Протон - проще и удобней! Да и учебник есть.
555serg Дата: Ср, 04.07.2012, 00:39  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 55
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Спасибо большое Михаил. Теперь смог разобраться , написал простенькую программу для прощупывания прерываний от TMR1 , ниже прикладываю програмку . В которой таймер TMR1 , создает прерывания каждые 100 микросекунд , к контроллеру PIC16F877A подключены два индикатора , оба трехразрядные - один красный с общим катодом , ведет счет по 500 микросекунд , - второй зеленый с общим анодом , ведет счет по секундам , применена динамическая индикация , без гашения незначащих нулей. Счет ведется от нуля до 60 секунд , далее все по новой. smile Для себя открыл одну интересную закономерность по поводу таймера TMR1 , - так как счет в таймере происходит в двух восьмиразрядных регистрах ( младшем - TMR1L и старшем - TMR1H ) то , если не загрузить никакое значение в оба регистра , то по умолчанию счет будет вестись с 0. Все сие собрано на макетной плате , если кому интересно смогу постараться нарисовать схемму. ********** По поводу Протона , читал отзывы о нем , пишут что иногда глючит ,- это правда ?
Прикрепления: Din-Ind-Preriva.pbp(6Kb)
mikhail09p Дата: Ср, 04.07.2012, 19:35  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 507
Репутация: 11   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Ну, глючит он ничуть не чаще, чем PicBasic ! biggrin
А если серьёзно, то я не видел глюков компилятора - только если сам не наломал дров.
555serg Дата: Чт, 05.07.2012, 21:27  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 55
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Хорошо , понял. Буду подумывать насчет Протона. Если не трудно, ткните пож. пальцем откуда и чего надо скачать для начала работы в Протоне. Спасибо. По ПИК Барсику - у себя глюков тоже ни разу не наблюдал. tongue
Broka Дата: Чт, 05.07.2012, 22:18  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 252
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Вот тут почитай., там и примеров полно. Всё доходчиво описано
http://terrarus.ucoz.ru/proton_plus_ide/index.html
Сам компилятор можно вот здесь поискать например
http://www.picbasic.ru/load/3


Наладчик КИП и А
Сообщение отредактировал Broka - Чт, 05.07.2012, 22:22
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Прерывания (Вопрос по прерыванию)
Страница 1 из 11
Поиск: