Forum: Compiler & IDEs RS 232 in C


von Virtual Art (Gast)


Lesenswert?

Hallo,

ich bin auf der Suche nach einem Programm welches die RS232
Schnittstelle bildet. Man kann doch das ganze auch über Interrupts
Steuern. Leider weiß ich nicht wie das geht. Hat einer von euch
schonmal ein Programm in C geschrieben, welches senden und empfangen
kann (RS232) und das ganze mit den Interrups erledigt?

Cu

von Oliver Keller (Gast)


Lesenswert?

Hi,

bei den examples für'n mspgcc ist eine Software UART/RS232 über einen
Timer realisiert:
http://cvs.sourceforge.net/viewcvs.py/mspgcc/examples/timerA_uart/

Gruss,
oli

von Rahul (Gast)


Lesenswert?

Ja, ich!
Neben mir werden das noch eine ganze Menge anderer Leute gemacht
haben...
Wo liegt denn dein Problem?
AVR oder MSP?
Christian Schifferle hat mal ein Tutorium geschrieben, in dem das
Polling der RS232 beim AVR beschrieben wurde.
Für die interruptgesteuerte Variante bietet sich ein Blick in die Libc
an, die beim WinAVR-Paket dabei ist an.
Stichwort "interrupt"....

Gruß Rahul

von Hirsch (Gast)


Lesenswert?

Hallo Virtual bist Du schon weiter gekommen denn ich versuche gerade das
Selbe oder besser ich versuche RS 232 zu programmieren.
Ich habe nur nicht richtig ahnung davon.

von Alex (Gast)


Lesenswert?

Hallo Hirsch,

hast nur leider aus den Fehlern des Threaderstellers garnichts gelernt.
Vielleicht gibst du ja preis, welchen Controller du verwendest, damit
dir geholfen werden kann.

Alex

von Hirsch (Gast)


Lesenswert?

Ja ist schon gut ich verwende ein ATmega 128

Hirsch

von Rahul (Gast)


Lesenswert?

Senden:
volatile char Sendtemp;
UDR = Sendtemp;

Empfangen:
volatile Char RecTemp;
interrupt (Sig_Recv)
{
 RecTemp = UDR;
}

Wie gesagt:
Ein Blick in die Lib-C-Doku zum Thema "interrupts" und "Signals",
und man findet ziemlich schnell heraus, wie das geht.
Übrigens ist die Lösung controllerunabhängig...

von Hirsch (Gast)


Lesenswert?

Wo gibt es die Lib C Duku?
Ich verstehe auch nicht wie und in welcher Reihenfolge ich die ganzen
C und Header Quelltexte Compilieren soll ich verwende Win AVR

von Hirsch (Gast)


Lesenswert?

Hallo nochmal war gerade auf der Seiter die oben angegeben ist welches
von den Programmen soll ich den da nehmen buffUsard ?
und wo bekomme ich die h Datei her mit signal?

von Alex (Gast)


Lesenswert?

Guck mal in dein WinAVR-Verzeichnis, du wärst überrascht, was man da
alles findet.
Auch die Datei signal.h ...

Gruss, Alex

von Rahul (Gast)


Lesenswert?

Sofern Du dir das WinAVR-Paket komplett heruntergeladen (18MB)hast
("sourceforge.net" oder so), liegt die Doku auf deiner Festplatte(hab
ich mir damals zumindest anhören müssen).
Im Windows-Fall hast du nach der Installation auf dem Desktop diverse
Icons, u.a. "avr-libc Manual [WinAVR]". Dabei handelt es sich um die
Doku im HTML-Format. Irgendwo habe ich die auch mal im PDF-Format
gefunden.

Zum Header-Datei-Handling kann ich nur sagen: "Frag die C-Bibel!"
Das ist das C-Buch überhaupt (heisst aber nicht Bibel...).
Es wurde von den C-Entwicklern (meines gefährlichen Halbwissens nach)
geschrieben. Die Authoren heissen Kernighan und Ritchie, und das Buch
ganz einfach "The C Programming Language".
Manche empfehlen die englische Ausgabe, weil die deutsche einfach nicht
so gut (fehlerfrei?) übersetzt ist.

Gruß Rahul

von Jörg Wunsch (Gast)


Lesenswert?

Dein Halbwissen ist OK: ``The C Programming Language'' (landläufig
nur
nach den Autoren ``Kernighan/Ritchie'' oder auch ``K&R'' genannt)
stammt in der Tat von den Schöpfern von C.

Die deutsche Übersetzung der ersten (nunmehr historischen) Auflage
hatte ich mal, die war in der Tat gruselig.  Die zweite Auflage habe
ich mir dann stattdessen lieber gleich Englisch gekauft, habe aber
gehört, daß deren deutsche Fassung sehr viel besser als die erste sein
soll.

Eine dritte aktualisierte Auflage würde eigentlich mal anstehen, um
all die Entwicklung seit ANSI C89 (alias ISO C90) zu dokumentieren
(wir sind jetzt bei ISO C99), davon habe ich aber noch nichts gehört.

von Rahul (Gast)


Lesenswert?

übrigens heisst das Makro nicht "sig_recv", sondern "sig_usart_rev";
zumindest beim ATmega162 (meinem DiplomarbeitsµC).
Gruß Rahul

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
Noch kein Account? Hier anmelden.