Hi!

Code:
Function Readbus()                                          'Den Wert vom Bus lesen

   Ddrb = &B00000000                                        'Alles Eingänge
   Ddrc = &B11111100                                        'Umschaltung, dass es keine Crashes gibt.

   $asm

     in R17, pinc


     CBR R16, 0b00000001
     SBRC R17, 1
     SBR R16, 0b00000001

     CBR R16, 0b00000010
     SBRC R17,0
     SBR R16, 0b00000010

     in R17, pinb ;<-- HIER wird auf Pinb umgeschaltet!


     CBR R16, 0b00000100
     SBRC R17, 5
     SBR R16, 0b00000100

     CBR R16, 0b00001000
     SBRC R17, 4
     SBR R16, 0b00001000

     CBR R16, 0b00010000
     SBRC R17, 3
     SBR R16, 0b00010000

     CBR R16, 0b00100000
     SBRC R17, 2
     SBR R16, 0b00100000

     CBR R16, 0b01000000
     SBRC R17, 1
     SBR R16, 0b01000000

     CBR R16, 0b10000000
     SBRC R17, 0
     SBR R16, 0b10000000

     Loadadr Readbus , X
     st X, r16

   $end Asm

End Function
Das ist jetzt mein Code, aber der liefert nur Datenmüll......

Was geht da schief?!
Die Bits in der Maske werden schon so gezählt, gell:
0b76543210
und NICHT
0b01234567
,gell??

Naja, das würde bei meinem Monsterprogramm nochmal 0,8 Sec einspahrung bringen, wenn man das in ASM codet...

VLG Tobi