Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Аппаратные прерывания - не могу понять
Аппаратные прерывания - не могу понять
ivan_fd Дата: Пт, 26.03.2010, 12:04  |                                                                                                                Сообщение # 16
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1137
Репутация: 108   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Quote (Python)
Зачем тогда учиться программировать на Протон_бейсике, тем более есть такая инструкция в компиляторе.

Ну есть же прерывания ON INTERRUPT, хотите писать в прерывании на Басике используйте его, но здесь
придется пожертвовать точьностью.

В хардварном прерывании можно писать на басике, но как он себя поведет потом...? Если вы читали тему сначала, то видели какие были проблемы у меня, из за того , что я писал на басике в прерывании.


Меня все время преследуют умные мысли...но я быстрее!!!
Anatoliy1000 Дата: Вс, 24.01.2021, 18:45  |                                                                                                                Сообщение # 17
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 179
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Здравствуйте! Что такое хардвардные прерывания?
Попробовал сделать прерывание на кнопке, сначала получилось, потом стал дальше код писать и все... При срабатывании прерывания переход идет в шапку программы. Все изменения попробовал отменить, а воз и ныне там.
Первое сообщение читал. Гугл молчит про "хардвардные прерывания").
В спойлере показал кнопку и "шапку программы"
'============ОСНОВНАЯ ПРОГРАММА====================
main:
    PulsOut PORTC.3,25000
    DelayMS 250 
GoTo main'------------------------------------------------------------------------------------------------

int:  'произошло прерывание---------------------------------------------------------------------
Context Save 
     'флаг прерывания от внешнегоИсточника
            'Бит 1 INT0IF: Флаг внешнего прерывания INT0 (INTCON.1)
            '1 = выполнено условие внешнего прерывания INT0 (сбрасывается программно)
    If INTCON.1=1 Then 
'        foto_rez = ADIn 0 ' Произвести АЦП в 0-ем канале и результат записать в переменную 
'        Cls
'        Print  At 1, 1, foto_rez ' Display an error if Hserin timed out    
        INTCON.1=0
    End If 
Context Restore
Прикрепления: 9676006.png(35.9 Kb)


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
Сообщение отредактировал Anatoliy1000 - Вс, 24.01.2021, 18:49
Константин Дата: Пн, 25.01.2021, 06:47  |                                                                                                                Сообщение # 18
Группа: Проверенные
Ранг:  Новенький
Сообщений: 11
Репутация: 0   ±
Замечания:   ±
На сайте с 10.05.2013

Статус: Offline

Hardware это аппаратное прерывание возможно вы его не включили On_Interrupt GoTo int  ' Включить аппаратную обработку  прерывания
Сообщение отредактировал Константин - Пн, 25.01.2021, 06:50
xvovanx Дата: Пн, 25.01.2021, 12:26  |                                                                                                                Сообщение # 19
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 437
Репутация: 50   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

А почему используете аппаратные, а не железные прерывания? Они надежней в работе.
Хорошо бы видеть весь код и схему.

Сообщение отредактировал xvovanx - Пн, 25.01.2021, 12:29
ivan_fd Дата: Пн, 25.01.2021, 13:08  |                                                                                                                Сообщение # 20
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1137
Репутация: 108   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Хардварные - Апаратные - Железные - это одно и то же. В протоне есть еще и софтовые прерывания, имхо, никому не нужная фигня. В ранних версиях протона были проблемы, если в прерывания напихать много кода на байсике, (хотя это не есть хорошо для любого компилятора) как в новых не знаю.
Anatoliy1000,  давайте код, который не работает.


Меня все время преследуют умные мысли...но я быстрее!!!
xvovanx Дата: Пн, 25.01.2021, 15:21  |                                                                                                                Сообщение # 21
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 437
Репутация: 50   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата xvovanx ()
А почему используете аппаратные, а не железные прерывания? Они надежней в работе.

Цитата ivan_fd ()
Хардварные - Апаратные - Железные - это одно и то же.

Ну конечно же опечатался, имел ввиду софтовые и железные

П.С. еще добавлю, не по теме прерываний, но все таки решил написать чтоб не забылось. Иногда при чуть нехватке объема чипа для программы в начале кода писал строку "Declare Optimiser_Level 1" и hex файл на выходе уже имеет меньший объем. Чем больше выставить уровень оптимизации, тем сильнее сжимается код. Ну так вот, в паре своих проектов все нормально оптимизировалось и работает без проблем. А вчера в другом проектике сразу заметил глюки в работе программы, перескакивает алгоритм работы через куски программы и циклы, где-то теряются точки входа-выхода при оптимизации. Так что не советую её использовать, лучше самому постараться и чуть уменьшить, скорректировав объем проги.

Сообщение отредактировал xvovanx - Пн, 25.01.2021, 15:40
ЯНДЕКС Дата: 25.01.2021
ivan_fd Дата: Пн, 25.01.2021, 15:46  |                                                                                                                Сообщение # 22
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1137
Репутация: 108   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Цитата Константин ()
On_Interrupt GoTo int
Это как раз и есть железные.


Меня все время преследуют умные мысли...но я быстрее!!!
xvovanx Дата: Пн, 25.01.2021, 17:39  |                                                                                                                Сообщение # 23
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 437
Репутация: 50   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Я чтоб не спутать железные пишу так "On_Hardware_Interrupt"
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Аппаратные прерывания - не могу понять
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: