Hallo Leute.Bin leider ein Anfänger in sachen controller programmieren und hänge gerade an dem Verständnis von codevision zu "receive über usat mit interrupt.Verstehe nicht wie ich nun empfangene daten speichern kann ohne das sie mir verloren gehen?Wird immer ein Interrupt beim empfangen ausgelöst? Habe mal den code mitgeschickt ,den mit codevision"codewizar" erzeugt hat.Hoffe jemand hat Zeit bzw lust mir weiterzuhelfen
Hallo, "Verstehe nicht wie ich nun empfangene daten speichern kann ohne das sie mir verloren gehen?" Warum sollen sie verloren gehen? "Wird immer ein Interrupt beim empfangen ausgelöst?" Das wird über ein Interrupt-enable-Flag eingestellt. Vielleicht bietet der Compiler auch eine Funktion dazu. Gruß Wolfgang -- www.ibweinmann.de Brushless Development Kit
Wenn ich jetzt zb. daten empfange.Wie kann ich die Register auslesen bzw wo stehen die Daten?
@Jürgen lade dir am besten die PDF-Datei deines Atmel von der Herstellerseite herunter. Dort ist das besser beschrieben(Funktion UART mit C-Codeschnipsel)Wahrscheinlich siehst du gerade den Wald vor lauter Bäumen nicht ^^. Und nimm dir das AVR-Tutorial von diesem Forum, da ist auch C noch ein wenig erklärt(Voraussetzung)ansonsten kannst du dir C-Tutorials ergoogeln.
Hallo .Also programmieren selbst kann ich eigentlich(mehr oder weniger) Fange aber erst gerade an controller zu programmieren.Das datenblatt habe ich auch schon durchgeforstet und tranmittnen bekomme ich auch gut hin.Uart Prinzip (Welche Register man setzt )ist eigentlich auch klar.Mein problem ist (auch wenn das verrückt klingt),das ich nicht verstehe mit der obrigen code-einstellung ,Daten die ich erhalte zb: 12 AB (als hex) , zu speichern und später auszulesn.
brauchst du dich bei CodeVision kaum drum zu kümmern. Der Interrupthandler schreibt die angekommenen Daten in einen Ringbuffer, Buffergrösse kannst du einstellen, je nach Baudrate, Datenaufkommen und wie oft du nachschauen kannst, ob Daten da sind. Wieviele Bytes da sind, steht in rx_counter, abholen kannst du die Daten mit getchar(). Zu guter Letzt gibt es noch das Bit rx_buffer_overflow. Wenn gesetzt, ist der Buffer übergelaufen, d.h. du hast Daten verloren -> neu anfordern. Kommt bei ordentlicher Programmplanung aber nicht vor.
@jürgen: ACHTUNG! Wenn Du die kostenlose Evaluation-Version von CodeVision benutzt, kannst Du keine Interrupt-gesteuerte UART-Bearbeitung machen! Das ist neben dem Code Size Limit eine der Einschränkungen der Freeware-Version!
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.