Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Das Ende einer Übertragung? Das heißt es wird nach jedem Eingang eines Zeichens gesetzt? Welches Bit wäre das?
Das Bit müsste "USART Receive Complete Interrupt Flag" heißen und es wird gesetzt sobald ungelesene Daten im Buffer stehen und wird gelöscht sobald der Buffer leer ist.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Ahh ok! Vielen Dank!!!
Hi,
also ich hab jetzt versucht das Bit abzurufen. Wenn UCSRA.RXC = 0 dann soll erst die Antwort gesendet werden. Das funktioniert aber leider auch nicht. Will ich die Zahl 2 senden bekomme ich wieder als Empfang 255. Jetzt versteh ichs gar net mehr? weil der Empfang muss jetzt ja definitiv beendet sein oder!?
Hat das evtl. etwas damit zu tun das ich die Daten per rs485 übertrage?
Hi,
Wenn du einen Fehler im RS485 hast kann dies der Fehler sein. Oder hast du UART-RS485 Konverter und die sind nicht für deine Baudrate ausgelegt? Welche Baudrate, Controller und Takt verwendest du den? Und wie sieht der ganze Aufbau aus?
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Also , es ist ein Atmega162, 8MHZ Quarz, Baudrate: 38400, an einem MAX485. (der max485 kann bis zu 2,5Mb)
Ich habe jetzt vor auf die 14,7456 MHZ umzustellen.
Wie gesagt wenn ich ein Wait dazwischen setze funktioniert das Senden und Empfangen Problemlos. Ich verwende die Funktion der automatischen Sende-Empfangsumschaltung in Bascom. Aber ich denke nicht das es an der Hardware liegt. In anderen stellen im Programm wo ein paar Zeilen Code zwischen dem Empfangen und Senden liegen, funktioniert es sogar auch ohne ein Wait.
Ist vielleicht diese automatische Sendeumschaltung zu langsam?
Was auch noch interessant sein könnte an der Stelle lese ich die Daten in ein Array ein. also per Inputbin #1, Empfang() , 1 und sende dann aus einem Array printbin #1, Senden(), 1 ;
Geändert von demmy (18.05.2012 um 10:59 Uhr)
Lesezeichen