Guten Tag,
ich baue gerade ein VU Meter mit jeweils 10 LEDs. Diese sind an einen AVR angeschlossen, der über RS232 die Daten vom PC empfangen soll. Nun bin ich soweit, dass die Hardware funktioniert. Also mit hterm o.ä. kann ich ein Hexbyte senden und das wird korrekt angezeigt. Folgendes vielleicht zum Bytemuster:
Es wird nur ein Byte empfangen, dabei sind jeweils 4 Bit für ein Kanal. In Hexadezimal ist es dann die erste und zweite Ziffer.
Doch nun funktioniert das ganze in Delphi nicht so mit dem Byte senden. Dabei sieht mein Code so aus:
Delphi-Quellcode:
//senden
procedure TForm1.SendClick(Sender: TObject);
var ByteSenden: Byte;
const LEDsRight: array[0..10] of Byte = ($00,$01,$02,$03,$04,$05,$06,$07,$08,$09,$0A);
const LEDsLeft: array[0..10] of Byte = ($00,$10,$20,$30,$40,$50,$60,$70,$80,$90,$A0);
begin
ByteSenden := (LEDsLeft[BarLeft] + LEDsRight[BarRight]);
Comport1.Write(ByteSenden, 1);
end;
BarRight und BarLeft sind globale Integervariablen mit den Werten für den Ausschlag also 0-10.
Meine beiden Bargraphanzeigen leuchten nicht so wie sie sollen. Es leuchten nur ein paar LEDs mitten in der Anzeige. Mit hterm funktioniert jedoch alles bestens.
Weiß jemand was ich falsch mache?