Gast
#1943166
Hallo, ich bin neu in der PIC Programierung und stehe vor einem Problem, das ich mir nicht erklären kann. Ich programmiere einen PIC16F873 mit dem PICDEM 2 PLUS BOARD, ICD2, MPLAB und CCS C Compiler. Wenn ich die GPIOs von Port B als Ausgänge setzen möchte, wird Pin 2 gleichzeitig auf High geschaltet. Bei den anderen Pins passiert dies nicht. Mein Code: #device PIC16F873 #BYTE TRISB = 0x86 void main () { TRISB &= ~(1<<1); TRISB &= ~(1<<2); TRISB &= ~(1<<3); while(1); } Disassambliert: 000 3000 MOVLW 0 001 008A MOVWF 0xa 002 2804 GOTO 0x4 003 0000 NOP #device PIC16F873 #BYTE TRISB = 0x86 void main () { 004 0184 CLRF 0x4 005 301F MOVLW 0x1f 006 0583 ANDWF 0x3, F 007 1683 BSF 0x3, 0x5 008 141F BSF 0x1f, 0 009 149F BSF 0x1f, 0x1 00A 151F BSF 0x1f, 0x2 00B 119F BCF 0x1f, 0x3 TRISB &= ~(1<<1); 00C 1086 BCF 0x6, 0x1 TRISB &= ~(1<<2); 00D 1106 BCF 0x6, 0x2 TRISB &= ~(1<<3); 00E 1186 BCF 0x6, 0x3 while(1); 00F 280F GOTO 0xf } Woran kann es liegen, dass Pin2 ganz anders reagiert? Auf dem Board sind die 3 Pins gleich verschaltet. rem