Please stay on topic.
Here's a summary: I have two pesky devices in my circuit. A multiplexer and a decoder.The multiplexer is connected as:
Code:
MUX
'------------
'RA5 INH
'RA1 A
'RA2 B
'RA3 C
'RA4 D
'------------
notice how the selection channels are on consecutive pins thus making things easy for selecting the channels:
Code:
'mux channel selection
'low inh_mux
'for i= 0 to 15
' Porta = (Porta & %11000001 ) + (i *2) 'port masking for cycle purposes
'next i
On the other hand the decoder pins are scattered across PORT B and PORTC:
Code:
'DCD
'----------
'RE2 G1,G2
'RB7 A
'RB6 B
'RB5 C
'RC6 D
here's the code i've devised:
Code:
'dcd channel selection
low g_dcd
for i=0 to 15
portb = (portb & %00011111 ) + (i rev 3)<<5
portc = (portc & %10111111 ) + (i<<3)
next i
The PORTB pins selection works fine (meaning lines A, B and C of the decoder behave as I expected). But line D (the only one on PORTC) gives me a headache. Am I missing something in the mask ?
Bookmarks