Hallo
so wie ich das laut der Suchfunktion in den Beiträgen gelesen habe kann Bascom keine 2te UART ansprechen (zb beim ATMega 162)
Oder geht das jetzt doch mit neueren Versionen?
Was ich brauche ist folgendes. 2 serielle Schnittstellen. Beide Endgeräte senden und empfangen mit 9600 Baud.
Allerdings haben die Daten die hin und hergeschickt werden einen overhead den ich jeweils abschneiden muss oder hinzugefuegt werden muss. Mehr soll der Atmel nicht machen.
Im Endeffekt heisst das ein par Zeichen vor dem senden hinzufuegen und ein par Zeichen vor dem Empfang "abbeissen"
Wie kann ich das am besten machen?
Hallo
danke fuer die antwort. ich haette mein problem besser formolieren muessen.
soweit ich weiss kann ich in Bascom nur eine UART mittels interupt abfragen. die zweite,dritte,vierte muss ich mit open befehl oeffnen und in den stream lesen und schreiben.
dann besteht aber die gefahr bytes zu verlieren bzw ist "unschoen" zu programieren.
es waere schoener wenn ich beide schnittstellen per interupt programieren koennte.
wenn ich das richtig nachgelesen habe geht das nicht.
stimmt das oder liege ich falsch?
das reine zerstuecklen eines strings ist mir klar wie das geht.
Die Hardware UARTs kannst du mit dem Bytematch usw abfragen. Von denen hat dein 162er doch 2, also kein Problem.
Gruß
Rolf
Ich habe mir die neue Testversion von Bascom runtergeladen.
dort gibt es eine anweisung das auch der 2te UART ueber einen interupt ausgeloesst wird. siehe mein beispielcode.
allerdings habe ich nichts gefunden wie ich in den 2ten port etwas schreiben kann (analog zu dem befehl print) und wie ich ein zeichen von der zweiten schnittstelle einlesen kann (anlog zu udr)
ueberlese ich da etwas oder gibt es da tatsaechlich keine befehle?
wenn nein warum gibt es dann ueberhaupt die moeglichkeit den UART 2 ueber interupt abzufragen?
Code:$regfile = "m162def.dat" $crystal = 3684000 $hwstack = 42 $swstack = 40 $framesize = 40 $baud = 9600 $baud1 = 9600 On Urxc Onrxd On Urxc1 Onrxd1 Enable Urxc Enable Urxc1 Enable Interrupts Do Loop End Onrxd: Print "1" Return Onrxd1: Print "2" Return
Ab und zu kommt man auch weiter, wenn man mal in der Hilfe nachsieht.
Du hast doch schon $baud1 gefunden. Wenn du genau dazu die Hilfe öffnest, siehst du, wie es geht.
Gruß
Rolf
Lesezeichen