Vielleicht über RS232?
PS: Ich kenn mich da auch nich so aus, würde mich auch mal interessieren.
Hallo,
für meinen Roboter brauche ich die Möglichkeit irgendwie einem Mega8 zwei Zahlen bis 255 mitzuteilen. Ich hab bereits einen UART ausprobiert, das hat gar nicht gefunzt. Habt ihr vielleicht noch andere Ideen? I2C find ich ziemlich kompliziert, SPI auch. Aber vielleicht gibts ja auch noch irgendwelche nicht so herkömmliche Kommunikationsmethoden?
Programmiert werden soll das ganze in Bascom.
o
L_
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!
http://de.youtube.com/watch?v=qV1cZ6jUeGE
Vielleicht über RS232?
PS: Ich kenn mich da auch nich so aus, würde mich auch mal interessieren.
Der war gut... (sorry für das Kommentar;Aber das kann ich mir nicht verkneifen)...
UART=RS232, jedenfalls soweit ich weis bei den AVRs, bis auf dass die Arbeitsspannung verschieden ist.
Schau dich mal im Wiki um, da gibts viele nette Beschreibungen.
Der Mega32 hat schon I2C per Hardware... Wäre also das "simpelste"... bei deinem anderen µ bin ich mir nicht sicher...
UART = Universal Asynchronous Receiver Transmitter
das mit speziellen Spannungspegeln ist dann RS232
Drumm kommt zwichen PC und µC immer ein Pegelwandler da die AVRs mit 5V und die RS232 mit +/-12V arbeitet.
@Lunarman
Wenn Du noch ein paar Pins freihast kannste dir ja ne parallele Schnittstelle aufbauen aber warum mit Kanonen auf Spatzen schießen. UART ist ned schlcht und geht auch was für ein problem hattest Du denn?
MfG
Mein problem war, das nie was angekommen ist. Beim m32 musste ich halt soft UART benutzen, da der hardwareuart ja auf dem RN-Control schon besetzt ist.
Die codes:
Code:$regfile = "m32def.dat" $crystal = 16000000 $baud = 2400 Print "funktioniert rs232" Waitms 1000 Config Portc.0 = Output Portc.0 = 0 Open "Comd.6:2400,8,n,1" For Output As #1 Open "Comd.3:2400,8,n,1" For Input As #2 Dim Text As String * 16 Dim Textneu As String * 16 Input "Zeichen eingeben " , Text Print "RN sagt " ; Text Print #1 , "RN sagt " ; Text Input #2 , Textneu Print "RN sagt " ; Textneu EndUnd was im Terminal ankommt:Code:$regfile = "m8def.dat" $crystal = 1000000 $baud = 2400 Do Dim Text As String * 16 Config Portb.0 = Output Portb.0 = 1 Input , Text Portb.0 = 0 Print "M8 sagt " ; Text Loop End
funktioniert RS232
Zeichen eingeben abcd
RN sagt abcd
RN sagt
M8 sagt RN sagt
Das ganze ist sehr merkwürdig, da ganz eindeutig eine stabile Kommunikation stattfindet (RN sagt M8 sagt RN sagt), aber der eigentliche String abcd, den ich eingebe, nicht übertragen wird. Auch kann ich mir den Zeilenumbruch nicht erklären. Bin aber auch grad zu müde.
o
L_
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!
http://de.youtube.com/watch?v=qV1cZ6jUeGE
Naja die SoftUART und SoftI2C Sachen haben bei mir auch nie richtig funktioniert. Aber wenn du I2C überhaupt nicht anderswo benutzt, bietet sich das ja wunderbar an, und ist sowohl beim M32 als auch beim M8 hardwaremäßig vorhanden. Und SoftwareLibs gibts auch zu genüge (zB für C von Peter Fleury). Und für Bascom sollte es sogar schon dabei sein. Da musst du nur I2cInit, I2cStart, I2cSend/receive und I2c/stop Befehle benutzen, es ist nicht viel komplizierter als UART.
Lesezeichen