"DVDXpert" - компас в мире Hi-Fi и High End техники и другой stereo и home cinema аппаратуры.

ПРОГРАММЫ И СХЕМЫ ПИШЕМ ПЕРВЫЕ ПРОГРАММЫ

23-12-2023

Хороший вопрос • Дребезг в момент нажатия кнопки устраняется легко Когда процессор переходит на вектор обработки прерывания, автоматически сбрасывается бит GIE, тем самым запрещаются повторные прерывания (у PIC16F84 только один вектор прерывания) При выпочнении команды RETFIE бит GIE восстанавливается Как особо указано в фирменной документации, если происходит событие прерывания, когда прерывания запрещены, то соответствующий флагбит все равно устанавливается Именно поэтому мы программно обнуляем флагбит INTF в конце подпрограммы обработки прерывания Если бы мы обнулили его сразу, как только вошли в прерывание, он мог бы быть вновь установлен изза дребезга контактов, и выйдя из прерывания, контроллер вновь ушел бы в прерывание В нашей программе, пока генерируется звук, дребезг успевает исчезнуть с большим запасом по времени Таким образом, дребезг при замыкании контактов нашей программе не страшен

Другое дело дребезг при размыкании Еспи кнопка разомкнется, пока генерируется звук, ничего не случится Если же разомкнуть кнопку в то время, когда программа вернулась в обычный режим, то изза дребезга вновь может быть сгенерировано прерывание На практике это случается примерно в одномдвух счучаях из десяти размыканий Следовательно, сразу после выхода из прерывания должен быть сформирован некий защитный интервал, в течение которого прерывания по RB0/INT запрещены Попытайтесь самостоятельно усовершенствовать программу

ПОДРОГРАММА ТАБЛИЧНОЙ КОНВЕРТАЦИИ БУДЬТЕ ВНИМАТЕЛЬНЫ!

Табличная конвертация чисел является очень эффективным приемом программирования микроконтроллеров Этот прием удается реализовать благодаря команде RETLW, которая осуществляет возврат из подпрограммы с записью константы в аккумулятор, а также благодаря возможности прямых арифметических операций над программным счетчиком

Мы уже применяли табличную конвертацию в одном из примеров, в программе управления шаговым двигателем Как работает эта подпрограмма7 Перед обращением к подпрограмме в аккумулятор записывается некая константа, которую надо преобразовать.

В теле самой подпрограммы первой командой является ADDWF PCL, F Это означает, что после того, как процессор считал эту команду и аппаратно увеличил программный счетчик на один шаг, содержимое аккумулятора суммируется с содержимым регистра PCL, в котором хранятся младшие разряды программного счетчика, и результат записывается в регистр PCL


Смотрите также:
 ЭЛЕКТРОННЫЕ ЧАСЫТЕРМОМЕТР НА PIC16F84
 ЦИФРОВЫЕ КОНСТАНТЫ И СИСТЕМЫ СЧИСЛЕНИЯ
 ОСТАНОВ ПО УСЛОВИЮ
 Виды телевидения. Спутниковое телевидение.
 Интерактивный проектор

Добавить комментарий:
Введите ваше имя:

Комментарий:

Защита от спама - решите пример: