oleg88135

Помогите разобраться с прерываниями

9 сообщений в этой теме

oleg88135    0

Хочу самостоятельно написать прогу под PIC12F629 для управления тиристором(симистором) с целью регулировать нагрузку. Просмотрел готовые разработки, везде используют прерывания. Самостоятельно разобраться не смог (плохо учился в школе), объясните, в чем смысл. Заранее благодарен неравнодушным и более смышленым.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    566
6 минут назад, oleg88135 сказал:

объясните, в чем смысл

Смысл чего ? Вашей задумки написать программу ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Zhuk72    12

Смысл в том, что процессор прерывает исполнение основного кода и переходит по адресу 04h, в котором программным путем (опросом флагов) определяет того, кто это прерывание вызвал. При этом разрешение глобального прерывания (GIE) отключается автоматом, и его нужно включить после выполнения всех действий. Си это делает сам, в асм это делают командой retfie.

Изменено пользователем Zhuk72

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oleg88135    0

Непонятно, как это помогает реализовать задержку для обрезки синусоиды(фазоимпульсный метод)...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    566

А покурить тему не пробовали ? - https://yandex.ru/yandsearch?text=фазоимпульсное управление тиристором&lr=2&clid=2186620
Зачем это всё переписывать тут ?
В сети просто огромное кол-во информации по этой теме. И картинки, и диаграммы, и чего только нет ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    374
10 минут назад, oleg88135 сказал:

Непонятно, как это помогает реализовать задержку для обрезки синусоиды(фазоимпульсный метод)...

Что такое фазоимпульсный метод? Это подача импульса отпирания тиристора (симистора) в определенный момент от "начала" полупериода синусоиды. И тут возникают следующие вопросы в плане реализации на микроконтроллере:

- как отследить "начало" полупериода?
- как реализовать "определенный момент" от начала?
- как сформировать импульс нужной длительности?

И для решения всех этих вопросов достаточно удобно использовать прерывания. Подаем ограниченную по току синусоиду на вход микроконтроллера, и получаем прерывание в момент, когда напряжение равно нулю (а нулю напряжение в сети равно как раз в момент "начала" полупериода). Запускаем таймер на некоторое время, например, 5 мс, и он сгенерирует нам прерывание как раз через 5 мс от начала полупериода - вот вам и "нужный" момент. Теперь включим выход и запустим таймер на 100 мкс и по прерыванию выключим выход - вот вам и импульс управления в 100 мкс.

А без прерываний это было бы совсем не так просто и красиво реализовывать.

Изменено пользователем ARV

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
oleg88135    0

Респект ARV-исчерпывающее объяснение! Ну и , естественно, весь процесс нужно зациклить?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    374

Зацикливать в данном случае надо то, что не требует прерываний: например, обслуживание кнопок, при помощи которых будет изменяться фаза отпирания тиристора. То есть в цикле непрерывно ведется опрос кнопок и корректировка фазы, а остальное - по прерываниям.

Прерывания на то и прерывания, что прерывают основной цикл работы по мере надобности.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сообщения

    • Перешить можно после полного стирания флеш-памяти, а какой смысл в полученном результате? А вот купить новый МК с целью использования его в качества тестировщика узлов платы - это очень даже замечательная идея! Особенно если CH341DP для этого окажется достаточно.  ЗЫ. Тем более, что я собираюсь снять ПЛК на предмет изучения возможности посмотреть что он вообще получает с этой платы.    
    • штангель на работе, я в отпуске, точно не скажу, лучше загуглить даташит стандартного транса ТТП500 ТОРЕЛа. Точно больше чем 1,32мм (я доматывал тот который себе оставил проводом 1,32, родной немного толще) Первый в списке покупателей БИГМАНЛАВ
    • Крайние, задние пальцы сдвинуты к пятке - по волчьи. А когти полоснули по мокрому, вот и кажутся длинными. Я не все фоткал. Там были следы и намного понятнее.
      И тусил этот выводок недалеко от стоянки нашей.   Собачки тоже бродят конечно. Оживленная магистраль с колеёй по пояс ))      
    • Приветствую.Каким проводом мотаны вторично? 
    • Кстати о пиве. Весьма рекомендую попробовать "Киликия". Буквально на днях купил бутылочку и был в восторге. Лагер, конечно, на любителя. Но мне всегда нравился.
    • Насчёт волчонка - большие сомнения (больно мелкая лапа, с не по лесному длинными когтями), скорее всего след оставил  какой нибудь  собакен (и скорее всего, собакен пришёл вместе с человеком).... Вопрос про самого страшного зверя в лесу оставляю открытым! С уважением, Сергей