Дорогие Форумчане! И опять без Вашей помощи у меня стоп-кадр туплю однако. Натолкните в нужное русло. Как вывести двоичное число в параллельный порт. Поясню. Имеем приемник, в котором кодировка приема задается 8 разрядами - от ADR=%00000000 до ADR=%11111111. К шине адресов подключены 8 портов процессора. Как организовать сканирование? Пытался в цикле от 0 до 65635 командой GetBit выдергивать отдельные биты, но вывести в паралельный порт без гем...роя не выходит. Киньте идею красивого цикла
P.S. С последовательным USARTом как-то все просто. Короче туплю.
xvovanx, а в чем вопрос ???? Если про чтение, то ... В прерывании считываем весь порт, далее уже в основном коде издеваемся над битами. Если не хочетсяя заморачиваться с таймерами и скорость опроса не высокая, то можно воспользоваться расширителем портов типа PCF8574. У него есть нога INT которая генерит прерывание при изменнии состояния любой ноги. Сбрасывается автоматом при чтении из I2C. Если про побитную запись, то ......
Dim PortOut as byte
PortOut=0 ' чистим переменную от старого хлама PortOut.5=1 ' выставляем биты PortOut.1=1 ' те что нуно PortB=PortOut ' обновляем порт (Б в данном случае )
Так же можно поступать и с PCF8574 (единственное но ... Там подтяжку по питанию нужно ставить. Выходы с открытым стоком у нее)
PortOut=0 ' чистим переменную от старого хлама PortOut.5=1 ' выставляем биты PortOut.1=1 ' те что нуно PortB=PortOut ' обновляем порт (Б в данном случае )
Это то, что нужно! И действительно все так просто оказалось.
P.S. с меня как обычно код ПОМОЩЬ=%00000100 РЕПУТАЦИЯ=РЕПУТАЦИЯ+ПОМОЩЬ.2
Сообщение отредактировал
xvovanx - Сб, 07.02.2015, 18:42