A
Arne Rossius
Guest
Hallo,
ich habe versucht, ein kleines RS232-Interface mit 5 Eingängen und 8
Ausgängen mit einem AT90S2313 zu bauen. Leider scheine ich bei der
Programmierung etwas falsch gemacht zu haben, denn es funktioniert nicht
richtig. Den Code habe ich hier hochgeladen:
http://arne.rossius.bei.t-online.de/rs232int.txt
Funktionieren soll es so:
kommt in einer kurzen Zeitspanne das gleiche Byte 2 mal, soll der
aktuelle Zustand der Eingänge gesendet werden. Wird dagegen nur 1 Byte
oder 2 verschiedene Bytes gesendet, soll das letzte gesendete Byte an
den Ausgängen ausgegeben werden.
Folgende Reaktion war aber zu beobachten:
Die Ausgänge sind alle immer 0. Sendet man 2x das gleiche Byte
(Zeitabstand egal!), so kommt ein "Dach" (schätzungsweise ASCII 30)
zurück, die Eingänge sind durch die Pullups alle auf 1. Sendet man das
Zeichen noch 2x, passiert nichts mehr, erst, nachdem man ein anderes
Zeichen gesendet hat (oder ein anderes Zeichen 2x sendet, dann kommt
wieder das Dach).
Was habe ich falsch gemacht?
Gruß,
Arne
ich habe versucht, ein kleines RS232-Interface mit 5 Eingängen und 8
Ausgängen mit einem AT90S2313 zu bauen. Leider scheine ich bei der
Programmierung etwas falsch gemacht zu haben, denn es funktioniert nicht
richtig. Den Code habe ich hier hochgeladen:
http://arne.rossius.bei.t-online.de/rs232int.txt
Funktionieren soll es so:
kommt in einer kurzen Zeitspanne das gleiche Byte 2 mal, soll der
aktuelle Zustand der Eingänge gesendet werden. Wird dagegen nur 1 Byte
oder 2 verschiedene Bytes gesendet, soll das letzte gesendete Byte an
den Ausgängen ausgegeben werden.
Folgende Reaktion war aber zu beobachten:
Die Ausgänge sind alle immer 0. Sendet man 2x das gleiche Byte
(Zeitabstand egal!), so kommt ein "Dach" (schätzungsweise ASCII 30)
zurück, die Eingänge sind durch die Pullups alle auf 1. Sendet man das
Zeichen noch 2x, passiert nichts mehr, erst, nachdem man ein anderes
Zeichen gesendet hat (oder ein anderes Zeichen 2x sendet, dann kommt
wieder das Dach).
Was habe ich falsch gemacht?
Gruß,
Arne