versuch macht kluch...
hi,
kann man bei nem mega8 die HW UART und die SW UART gleichzeitig nutzen? ich will über die SW UART 2 mC miteinander kommunizieren lassen und der eine soll über HW UART mit dem pc verbunden sein...geht das? weil ich I2C nicht kapier will ich die 2 mC nicht darüber kommunizieren lassen ^^
gruss hacker
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
versuch macht kluch...
Was ist denn ne SW UART?
Du willst die UART per Software emulieren?
Wie weit sind Deine µC's denn voneinander enfernt?
Sind sie nah beieinander geht das mit dem direkten kommunizieren, sonst brauchste einen Bus.
Eine Soft-Uart ist allerdings relativ langsam im Vergleich zur echten.
Beschreibe dochmal was Du erreichen willst.
Gruß, olfi
hi,
also ich hab auf meinem roboter einen hauptprozessor und einen kleineren für die komplette sensorik. die 2 will ich mit SW UART mit einander kommunizieren lassen, dass der kleinere prozessor die schon ausgewerteten daten an den hauptproz. schickt. dieser soll über die HW UART über mit dem pc in kontakt stehen.
weswegen ich kein I2C nehmen will steht schon in meim ersten post
wäre über hilfe dankbar
gruss hacker
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
Soweit ich weis (ich benutze es selbst nicht) gibt es in Bascom SW UART Routinen, in C hab ich noch keine gesehen, gibt es aber sicherlich auch.
Auf der anderen Seite gibt es in Bascom auch fertige I2C Routinen, dazu muss man nicht verstehen wie's geht.
Mit dem Programmieren des I2C-Busses hab ich übrigens trotz Beispielprogrammen auch recht lange gebraucht (in C). Ich glaube jetzt gehts, wenn Interesse besteht ...
ciao .. b
für diesen Einsatzzweck ist I²C ziemlich gut geeignet, ich würde es mir wirklich nochmal überlegen, ob du dir das nicht doch nochmal anschaust
such mal im Forum danach, da findest du sicher Hilfe dazu, und falls noch Dinge unklar sind, kannst du ja fragen
Auch wenn es SW-Routinen dafür gibt, wird es nicht einfach werden das Timing einzuhalten. Während deine langsame SW-Routinen am Datenschaufeln sind, soll bestimmt noch anderes Zeug parallel passieren und nicht der Rest des Systems lahm liegen.
Ohne Hardwareunterstützung wird das fehleranfällig.
I2C: ist ja keine Geheimwissenschaft, und im Netz gibt es Bibliotheken für das Zeug.
SPI: Du kannst auch das SPI (Serial Peripheral Interface) des Mega8 zum Datenaustausch nutzen. Ein 8-Bit Register des Masters wird mit einem des Slaves zu einem 16-Bit-Schieberegister zusammen geschaltet. Genial einfach, schnell und leichter zu überschauen als I2C. Im Manual gibt's sogar Code-Schnippsel für Master bzw Slave in Assembler und in C.
ok ich glaub ich guck mir I²C doch mal an...aber wenn ich dann nachher blödes zeug frag seid ihr schuld
gruss hacker
Ich würde ja gern die Welt verändern..., doch Gott gibt mir den Quellcode nicht!
Hi,
ist die Frage, welche Geschwindigkeit du denn brauchst.
Ich hatte mal so'ne Schaltung mit Hardware und Software UART gebaut
(lange her) .
Es ging damals um eine Funkübertragung.
Der HW UART empfing Fernsteuersignale mit 9600 und sendete dann mit 38400 die beasrbeiteten Daten.
Ich musste damals den Software UART dazu nehmen, da ich Even Parity brauchte.
Programmiert hatte ich das in Bascom.
Gruß
Christopher
Lesezeichen