Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Gelöst] "Batteriespannung" von Testprogramm liefe



Zeddi
24.09.2007, 22:38
Hi,
nachdem ich überglücklich nach 3 Tagen Fehlersuche endlich gesehn hab wie sich mein RN-Control samt Chip zu Leben erweckt hab ich natürlich gleich auch mal die Kommunikation über RS-232 ausprobieren müssen ...

Seit ich die Baud-Raten richtig eingestellt hab (9600 Baud bei 16 MHz Quarz mit ATMega16) funktioniert die Datenübertragung über RS-232 auch ohne Fehler. Wenn ich also die Tasten 4 und 5 drücke erhalte ich genau was das Programm liefern soll - ohne Fehler.

Aber bei einem Druck auf Taster 1 soll doch eigentlich auch über RS232 eine Ausgabe erfolgen oder? Einen Ton aus dem Speaker höre ich jedenfalls wenn ich Taster1 drücke - nur im Terminalfenster erscheint absolut NIX.
Kann sich das jemand erklären?

Und ich hätte noch eine Frage: Laut RN-Definition kommt bei der 3-poligen RS232-Leiste an RX doch eigentlich das ROTE Kabel oder? Weil das bei mir nur andersrum funktioniert ... evtl. hat sich da wer bei Robotikhardware verlötet ;).

Zeddi
26.09.2007, 20:11
So, hab das Problem jetzt gelöst:
Die Wertebereiche die im Code stehen und mittels welchen rausgefunden wird welcher Taster gedrückt wurde waren bei mir allg. sehr eng an der Grenze.

Hab diese nun angepasst und alle 5 Tasten funktionieren super (beim Motorentest dachte ich schon es sei was kaputt - habe keine Motoren dran - aber der dauert wohl einfach so lange ;)).

Ich habe gerade gesehen das in der Wiki das Testprogramm in dieser Beziehung besser ist als das welches auf CD ausgeliefert wird:



'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word

Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
If Ws < 500 Then
Select Case Ws
Case 400 To 450
Tastenabfrage = 1
Ton = 550
Case 330 To 380
Tastenabfrage = 2
Ton = 500
Case 260 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 90 To 130
Tastenabfrage = 5
Ton = 350
' Case Else
' Print "Tastenabfrage anpassen!ADC Wert ws=" ; Ws
End Select
Sound Portd.7 , 400 , Ton 'BEEP

End If


End Function


einfach beim Case Else und folgenden Print die ' wegmachen und schon erhält man den Wert des Tastendrucks :).