BASCOM: HEX-Befehl per UART senden

Gast #874184
Lesenswert?

Hallo zusammen,

ich möchte mit einem ATMega8 Befehle per UART an einen iPod senden.
(Baudrate 19200, Standardeinstellungen.)

Vom PC aus hat das ganze wunderbar funktioniert. Aber vom AVR bekomme 
ich es nicht hin.
So ein Befehl sieht zum Beispiel so aus:
0xFF 0x55 0x03 0x00 0x01 0x04 0xF8

Ich habe es mit

1
Header1 = &HFF
2
Header2 = &H55
3
Length = &H03
4
Modus = &H00
5
Command1 = &H01
6
Command2 = &H04
7
Check = &HF8
8

9
Printbin Header1 ; Header2 ; Length ; Modus ; Command1 ; Command2 ; Check
10

11
ODER
12

13
Print Hex(header1) ; Hex(header2) ; Hex(length) ; Hex(modus) ; Hex(command1) ; Hex(command2) ; Hex(check)

probiert, aber es will nicht funktionieren.
Verkabelung habe ich zig mal geprüft, ist korrekt.

Mache ich da was falsch? Gibt es alternativen?

Vielen Dank im Vorraus,

Dan

PS: Auch wenn Bascom hier verpönt ist, für meine Schnellanwendung ist es 
gerade sehr praktisch.
#874187
Lesenswert?

Sendet Print am Ende nicht noch einen Zeilenumbruch hinterher? Stört den 
das ggf.?

Sende die Zeichen ansonsten mal an deinen Rechner - da hast du vermulich 
mehr Chancen zu debuggen.

Wie sieht die externe Beschaltung deines Controllers für die serielle 
Schnittstelle aus? Max232 verbaut?
Gast #874348
Lesenswert?

Beim alten BASIC für DOS hatte ich mal ein Problem mit einer Relaiskarte 
am Druckerport. Hat sich dann rausgestellt, dass, sobald ich das 
Steuerbyte gesendet hab, der Zeilenumbruch hinterher alles wieder 
überschreibt. Damals war es so zu lösen:
1
REM mit Zeilenumbruch:
2
Print #1, Status
3

4
REM ohne:
5
Print #1, Status;
#874353
Lesenswert?

Dan wrote:
> PS: Auch wenn Bascom hier verpönt ist, für meine Schnellanwendung ist es
> gerade sehr praktisch.

Christian_RX7 wrote:
> Ich glaube schon, ...


Verpönt ist eigentlich nicht Bascom, sondern daß Bascom-Nutzer lieber 
etwas glauben oder rumprobieren, statt einfach mal in der Doku 
nachzusehen.

Wenn man Bibliotheksfunktionen benutzt, muß man auch nachsehen, wie sie 
zu verwenden sind.


C-Programmierer können natürlich auch versuchen, Bibliotheksfunktionen 
zu verwenden, ohne sie zu kennen.
Aber C hat ziemlich strenge Syntaxregeln und der Compiler meckert in der 
Regel sofort, wenn man etwas ohne Verstand benutzt.


Peter
#874447
Lesenswert?

Semikolon am Ende der Print-Zeile sollte den Zeilenumbruch unterdrücken:

Print Hex(header1) ; Hex(header2) ;

Aber bist du dir sicher, dass die Hex-Funktion das tut, was sie soll?

Verwende mal die von Gast genannte Variante mit der chr()-Funktion. Das 
sollte eigentlich funktionieren. Ich weiß jetzt allerdings nicht, was 
der iPod an Daten erwartet.
Gast #1020196
Lesenswert?

Wie wäre denn der Anschluss an einen Beamer.

Meine Verbindung zwischen PC und Beamer funktioniert.

Nur was muss ich machen, damit das auch von einem AVR aus klappt.
Was muss denn noch zwischen Beamer und AVR?

Wenn ich einen Mega8 nutzen will und die beiden Pins 2 und 3 (TX und RX) 
schon für was anderes verwende, was könnte ich dann machen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren