Hallo Leute, Ich habe ein kleines Problem. Ich möchte Steuerbefehle von einem Controller A zu einem anderen (Board B) Übergeben. Hierzu wurden die Ports von Board A als Ausgänge Definiert und die Ports des Boards B als Eingang mit Pull-Up. Leider klappt das nicht wie gewünscht und ich wollte mal Fragen ob ich es vielleicht an einem Fehler in meinem Code liegt, den ich selber immer übersehe. Beispiel: An dem Board B liegen folgende Spannungen an: PortC,0 = 0V PortC,1 = 5V PortC,2 = 0V PortC,3 = 0V PortC,4 = 0V aber ich erhalte leider keine dezimale 1, wie ich es erwartet (bzw. gerne) hätte ;) Danke schonmal für die Hilfe ldi tmp,0b00000000 in tmp,PINC cbr tmp,0b11110001 ror tmp cpi tmp,0 breq c_status_0 cpi tmp,1 breq c_status_1 [...]
Hallo, Teemo wrote: > Beispiel: > An dem Board B liegen folgende Spannungen an: > PortC,0 = 0V > PortC,1 = 5V > PortC,2 = 0V > PortC,3 = 0V > PortC,4 = 0V > > aber ich erhalte leider keine dezimale 1, wie ich es erwartet (bzw. > gerne) hätte ;) ??? > ldi tmp,0b00000000 ; alles Eingänge > in tmp,PINC ; Daten nach tmp holen > cbr tmp,0b11110001 ; Clear Bit in Register, Du löschst also ; Bit 3, Bit 2, Bit 1 > ror tmp ; rechts schieben, also auch das gerade ; gelöschte Bit 1 in Bit 0 schieben > > cpi tmp,0 ; auf 0 testen, also 0b00000000 ; Bit 0...Bit 2 sind nach Deinem cbr oben ; sowieso 0, das Ergebnis hängt also nur ; noch vom Zustand der ; ehemaligen Bits 7...4 ab... > breq c_status_0 > cpi tmp,1 > breq c_status_1 > [...] Gruß aus Berlin Michael
> ldi tmp,0b00000000 ; alles Eingänge Wozo? tmp wird gleich im nöächsten Befehl wieder überschrieben. > ror tmp Nimm lsr statt ror. ror shiebt das Carry-Flag in das oberste Bit von tmp, was sicher nicht deine Absicht ist. >> cbr tmp,0b11110001 ; Clear Bit in Register, Du löschst also > ; Bit 3, Bit 2, Bit 1 Nein, es löscht alle anderen Bits. cbr ist ein And mit dem Komplement des Arguments.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.