Hallo,
ich steuere meine Kino Vorstufe per RS232.
Das klappt alles ohne Probleme.
Nun möchte ich die Steuerung etwas erweitern, dabei tritt ein Problem
auf.
Ich frage die Lautstärke mit folgenden Befehl ab:
Nach dem ersten abfragen bekomme ich eine korrekte Antwort von der
Vorstufe die so aussieht:
Nun sende ich den Befehl zur Lautstärkeabfrage ein zweites mal und
bekomme da nicht mehr ganz das Ergebnis wie bei der ersten Abfrage:
Wobei das Fragezeichen irgendwas ist, was da nicht hin gehört
Wenn ich die Schaltung kurz vom Strom trenne und es erneut abfrage, dann
klappt es beim ersten mal wie gewüncht und bei den nächsten Abfragen
kommt wieder der Fehler dazu.
Anbei mal mein Testprogramm:
1 | $regfile = "m16adef.dat"
|
2 | $crystal = 8000000
|
3 | $hwstack = 32
|
4 | $swstack = 10
|
5 | $framesize = 40
|
6 | $baud = 9600
|
7 |
|
8 | Config Com1 = 9600 , Parity = None , Stopbits = 1 , Databits = 8
|
9 |
|
10 | Config Lcdpin = Pin , Rs = Portd.7 , E = Portc.0 , Db4 = Portc.1 , Db5 = Portc.2 , Db6 = Portc.3 , Db7 = Portc.4
|
11 | Config Lcd = 20 * 2
|
12 | Cursor Off
|
13 | Cls
|
14 |
|
15 | Dim Lautstärke As String * 16
|
16 |
|
17 | Config Rc5 = Pind.6 , Wait = 2000
|
18 | Dim Address As Byte
|
19 | Dim Command As Byte
|
20 |
|
21 | Enable Interrupts
|
22 |
|
23 | Do
|
24 | Getrc5(address , Command)
|
25 | If Address < 255 Then
|
26 | Command = Command And &B01111111
|
27 | End If
|
28 |
|
29 | If Command = 0 And Address = 0 Then
|
30 | Cls
|
31 | Print "@MAIN:VOL=?"
|
32 | Input Lautstärke
|
33 | Locate 1 , 1 : Lcd Lautstärke
|
34 | End If
|
35 | Loop
|
Da kommt gleich noch ein Nachtrag...