Hallo,
ich habe wieder mal ein Problem und komme einfach nicht weiter.
Zur Hardware: Ich habe eine kleine Terminalbox mit einem M8 und einem
LCD.
Nun möchte ich von meinem Board (MYAVR) an dieses Terminal was senden
und dieses soll auf dem 2x16LCd angezeigt werden.
Das Protokoll ist ein 9P1.
Was ich weis ist, dass ich ein Paket mit 34 Bytes senden muss. Das erste
und das letzte Byte ist ein Steuerbyte mit dem neunten Bit=0. Die
restlichen 32 Byte dazwischen sind Textbytes und haben beim neunten Bit
=1. Das ist der Text, der nachher auf dem 2x16 Display angezeigt wird.
Verwendet wird eine 1-wire RS232 Verbindung.
Nun habe ich absolut keinen Plan, wie ich das senden soll. Das
Signalkabel ist sowohl auf dem TX als auch auf dem RX Pin des M8.
Was ich herausgefunden habe ist, dass ich das neunte Bit in das TXB8 des
UCSRB schreiben muss und natürlich vorher noch das TXEN einschalten
muss. Danach muss ich meine Daten in das UDR schreiben.
Doch wie ich das in BAscom anstelle weis ich leider gar nicht...Ich
hoffe auf einen guten Rat von euch. Bin echt schon verzweifelt.
Danke,
Daniel
>Ich bin leider Neuling in Bascom, aber für euch Profis sollte das ja>super schnell gehen ;o)
Ich habe auch keine Ahnung von Bascom, aber im Datenblatt des
Controllers steht, wie man 9bit-Kommunikation aufbaut.
Dann muss man nur noch ein paar magische Worte in Bascom eintippen und
alles ist gut.
jaja die magischen worte ;o)
die fehlen mir...leider
Aber kannst du mir vielleicht mitteilen, wie ich ein byte definiere,
damit es 9 bit hat? oder besser, was muss ich tun, wenn ich zb. den
Buchstaben "A" einmal mit dem 9.Bit=1 und einmal mit dem 9.bit=0
übertragen kann? Wie kann ich dem Buchstaben A die Bits zuweisen?
Ein Programmierer wird sich jetzt sicher fragen, Mann, was will der denn
;o)
Lg
Hi
>Aber kannst du mir vielleicht mitteilen, wie ich ein byte definiere,>damit es 9 bit hat? oder besser, was muss ich tun, wenn ich zb. den>Buchstaben "A" einmal mit dem 9.Bit=1 und einmal mit dem 9.bit=0>übertragen kann? Wie kann ich dem Buchstaben A die Bits zuweisen?
Ich habe eigentlich auch keine Ahnung von Bascom. Aber es unterstützt
doch laut Bascom-Hilfe den 9-Bit-Mode ->'config com1/com2/comx'. Eine
andere Variante wäre, die UART-Register direkt zu beschreiben (evtl
ASM). Dann hast du die volle Kontrolle.
MfG Spess
Steht doch in der Hilfe in Bascom -> Index -> Config com1
Action
Configures the UART of AVR chips that have an extended UART like the M8.
Syntax
CONFIG COM1 = baud ,
synchrone=0|1,parity=none|disabled|even|odd,stopbits=1|2,databits=4|6|7|
8|9,clockpol=0|1
Remarks
baud
Baud rate to use. Use 'dummy' to leave the baud rate at the $baud
value.
synchrone
0 for asynchrone operation (default) and 1 for synchrone operation.
Parity
None, disabled, even or odd
Stopbits
The number of stop bits : 1 or 2
Databits
The number of data bits : 4,5,7,8 or 9.
Clockpol
Clock polarity. 0 or 1.
http://www.comwebnet.de
Vielen Dank,
das hilft gut weiter, das hab ich schon einprogrammiert!
Kann ich nun mit dem Einfachen Print Befehl Bytes wegschicken?
Oder muss ich, wie in der M8 Doku, hier mit den Registern arbeiten wie
ucsrb, TXB8? oder macht das eben schon bascom mit dem config com?
Ich weis, für euch triviale Fragen, aber jeder muss mal klein anfangen!
Lg
Bitte noch einmal um Hilfe:
Angenommen ich muss folgendes senden:
/FE/Hallo ich bin noch ein Neuling../FF/
Das sind 34 bytes, das erste byte und das letzte byte ist ein
Steuerzeichen.(HEX) Da gehört Bit9=0.
Dazwischen die 32bytes sind Textzeichen.Da gehört Bit9=1.
Sonst kennt sich das Terminal nicht aus.
Könnt ihr mir bitte nun helfen, wie ich das mit dem 9.bit zuordne, damit
es einmal 0 und einmal 1 ist?
Dann wäre ich fertig ;o)
DANKE!
Lg
So wie ich das sehe willst du etwas auf der Jeti box anzeigen.
Ich komm selber nicht weiter. Das 9. bit ist bei mir in C kein Problem.
Hast du schon was erreicht? Bei mir kommt immer Communication Error.
Gruß Christian