Quantcast
Channel: MEL PICBASIC Forum
Viewing all articles
Browse latest Browse all 4745

Shiftin on 16F628 changes input A.2 to output?

$
0
0
Hello,

I have a strange thing going on here...
I try to decode serial information (shift register) to 2 seven-segment displays.
This is the code:
Code:

DEFINE OSC 8
 CMCON = 7
 TRISA = %11111100            ' PORTA.0 and PORTA.1 = Outputs (Anodes Displays)
 TRISB = %00000000            ' PORTB = Outputs (Cathodes Displays)

 W  Var Word                  ' Variable for ShiftIn
 PORTB = 255                  ' All Cathodes High, display off
 PORTA.0 = 0                  ' Anode Low, display off
 PORTA.1 = 0                  ' Anode Low, display off

' PORTA.2 = Clock in
' PORTA.3 = Data in
' PORTA.4 = Latch in
 
 MainLoop:
  ShiftIn PORTA.3, PORTA.2, 0, [W\16] 
 WaitLoop:                    ' Wait for the Latch to go High
  If PORTA.4 = 0 then Waitloop 
  PORTB = (W & 255) XOR 255  ' PORTB = Lowest 8 Bits
  PORTA.0 = (W >> 8) & 1    ' PORTA.0 = Anode display
  PORTA.1 = (W >> 8) & 2    ' PORTA.1 = Anode display
 Goto MainLoop

The strange thing is that PORTA.2, although configured as input, is changed to an output!
If a comment the 'ShiftIn' out, PORTA.2 stays an input.
I am sure I am overlooking something, but what????

Viewing all articles
Browse latest Browse all 4745

Trending Articles