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
Hat denn niemand eine Idee von euch? Ich bin leider Neuling in Bascom, aber für euch Profis sollte das ja super schnell gehen ;o) LG
>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
ah, ich seh gerade mit print alleine sollte das funktionieren....
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
Musst du im entsprechenden UART Register setzen. Was steht denn in der BASCOM Hilfe dazu?
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
Hi Meines Wissens kann der PC keine 9-Bit. MfG Spess
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.