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
Lesezeichen