Ok ich benötige bitte Hilfe ich möchte zum testen erstmal 3 zustände realisieren wobei es schon beim ersten Zustand zu Problemen kommt. Mit folgendem Code funktioniert es das eine Led an oder aus geht das allerdings äusserst selten. Ich glaube das sich da bei der Übertragung überschlägt. Die Leitung habe ich geprüft es kommen keine fehlerhaften Zeichen an ,... ich denke es liegt an einem ordentlichen Timing?
Warum wird trotz das ich eine eins oder zwei sende das bei der Led so nicht geschaltet?
Gruß Thomas
C# code
Code:
if ((data.lightBits3 & 0x10000) != 0)
{
txtNoseGear.Text = "1"; // ausgefahren
serialPort1.Write("2"); // sende eine 2 an den Chip
} else {
txtNoseGear.Text = "0"; // eingefahren
serialPort1.Write("1"); // sende eine 1 an den Chip
}
Thread.Sleep(1);
Bascom code
Code:
'LED1 an PB0
Led1 Alias Portb.0
Config Led1 = Output
Dim A As Byte
Do
A = Inkey()
If A = 1 Then
Led1 = 0 //Rad eingefahren LED ausschalten
End If
If A = 2 Then
Led1 = 1 //Rad ausgefahren LED ausschalten
End If
'If A > 0 Then 'we got something
' Print "ASCII code " ; A ; " from serial"
'End If
Loop
A = Waitkey() 'wait for a key
'Print Chr(a)
Do
Loop Until Inkey() = 27
End
Gegentest mit Putty // Werte in Bascom als ASCII ersetzt
Nun kann ich per Tastatur und den Tasten 1 & 2 die Led ein oder ausschalten.
Bei dieser Variante viel mir auch auf das wenn die Led eigentlich angehen sollte sie ausgeht und umgekehrt.
Tastatur 1 = Led geht an / Tastatur 2 = Led geht aus
Irgendwie ist doch hier der Wurm drin?
Code:
'LED1 an PB0
Led1 Alias Portb.0
Config Led1 = Output
Dim A As Byte
Do
A = Inkey()
If A = 49 Then
Led1 = 0 //Rad eingefahren LED ausschalten
End If
If A = 50 Then
Led1 = 1 //Rad ausgefahren LED ausschalten
End If
'If A > 0 Then 'we got something
' Print "ASCII code " ; A ; " from serial"
'End If
Loop
A = Waitkey() 'wait for a key
'Print Chr(a)
Do
Loop Until Inkey() = 27
Lesezeichen