Страница 1 из 1

Контроль SW3-1

СообщениеДобавлено: 29 окт 2010, 21:27
eivanov
В моей лабораторной (6 в2) драйвер DIP-переключателей должен фиксировать изменения DIP-ов SW3-1 и SW3-2. SW3-2 легко проверить (EXT_LO), а как правильно контролировать SW3-1?
Если разнести его дипы по разным обработчикам прерываний (EX1, EX2, T0/T1), то получается как-то не очень красиво (да и я могу отлавливать 1-0, либо сигнал, а не 1-0, 0-1), по условию драйвер должен находиться в одном месте.

Re: Контроль SW3-1

СообщениеДобавлено: 30 окт 2010, 01:07
DinKa
DIP-переключатели SW3-1 контролируйте через порты ввода-вывода МК ADuC812, т.е. читайте GPIO P3.2-P3.5.

Re: Контроль SW3-1

СообщениеДобавлено: 30 окт 2010, 15:38
eivanov
DinKa писал(а):DIP-переключатели SW3-1 контролируйте через порты ввода-вывода МК ADuC812, т.е. читайте GPIO P3.2-P3.5.

Я уже пробовал: сначала записал 0xFF в P3, чтобы он работал на вход, — там всегда 0 вне зависимости от SW3-1...

Re: Контроль SW3-1

СообщениеДобавлено: 30 окт 2010, 16:30
DinKa
Всегда ноль на всех четырех входах или только на одном - INT0? Чтобы "отпустить" INT0, 6-й бит регистра ENA (ПЛИС) должен быть равен 1, так как после работы загрузчика ENA.INT0 = 0.
Как читаете порты ввода P3?
Физически никаких ограничений не должно быть, т.е. сигнал на ножку приходит: внешние прерывания INT0/1 и таймеры T0/1 в режиме счетчика работают.
В программе только чтение порта P3 или много чего еще другого? Уберите лишнее.

Re: Контроль SW3-1

СообщениеДобавлено: 30 окт 2010, 20:39
eivanov
Спасибо, всё заработало. Я наглючил: выводил не ту переменную, в которую читал P3...
Со мной иногда такое случается :-)