Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Serial_Init_IRQ Kategorie: Programmierung C (von Torsten - 13.09.2010 20:25)
Als Antwort auf Re: Serial_Init_IRQ von PeterS - 13.09.2010 11:55
Ich nutze:
C-Control Pro Mega32, CC-Pro 32 Application Board
> > > > Hallo Zusammen,
> > > >
> > > > langsam bin ich echt am Verzweifeln... Habe die C Pro Mega128 und möchte gerne die Funktion
> > > > Serial_Init_IRQ benützen. Ich lade lediglich das Beispiel aus der Doku - und bin nicht
> > > > mal in der Lage den String zu verschicken. Es kommen immer nur die ersten 2 Zeichen am Rechner an.
> > > > Das gleiche Verhalten in C, Basic, mit dem Beispiel aus der Bibliothek und in meinem eigentlichen
> > > > Projekt. Was geht da schief?!? Mit der einfachen Version "Serial_Init" klappt alles bestens!!
> > > >
> > > > Vieleicht hat ja jemand einen Tipp...
> > > > Vielen Dank,
> > > >
> > > > Wolfgang
> > >
> > > Das Beispiel an sich ist fast zu kurz. Füge mal als letzte Zeile ein "while(1);" als Endlosschleife
> > > ein. Es kann gut sein, das das Programm beendet wird, bevor der gesamte RS232 Buffer ausgegeben
> > > ist.
> > >
> > > Gruss Peter
> >
> > Danke für den Hinweis Peter,
> > leider hilft auch das nicht :-(
> > Es kommen immer nur die ersten zwei Zeichen des Strings an. Bei Verwendung von
> > "Serial_WriteText(0,str);" passiert übrigens genau das selbe.
> >
> > So sieht der Code exakt aus:
> >
> > // 35 byte Sende + Empfungspuffer + 6 byte interne FIFO Verwaltung
> > byte buffer[41];                                // Array deklariert
> > //------------------------------------------------------------------------------
> > // Hauptprogramm
> > //
> > void main(void)
> > {
> >     int i;
> >     char str[10];
> >     AbsDelay(8000);     // Zeitpuffer zum Umschalten auf das Terminal
> >     str="Test";
> >     i=0;
> >
> >     // Initialisiere Schnittstelle mit 19200baud, 8 Bit, 1 Stop Bit, keine Parität
> >     // 20 byte Empfangspuffer - 15 byte Sendepuffer
> >
> >     Serial_Init_IRQ(0,buffer,20,15,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD19200);
> >     while(str[i]) Serial_Write(0,str[i++]);  // Gib den String aus
> >     while(1);
> > }
> >
> > Ich verwende die IDE 2.1.0.0, Compact-C Compiler Version 1.51.0.51.
> > Bin schon am Ã?berlegen, ob ich die IDE mal neu installieren soll?!?
> >
> > Viele Grü�e,
> > Wolfgang
> >
>
> Sorry, fällt mir jetzt nichts neues zu ein. Wenn ich eine Eingebung habe, dann schreib ich
> das hier.
>
> Gruss Peter



 Hallo  Wolfgang,

 eine Patentlösung kann ich leider auch nicht bieten.
 Aber ein paar kleine Tips.

 1. Mir fällt auf daÃ?,  "AbsDelay(8000);" noch vor dem Aufruf von
 "Serial_Init_IRQ(...)" steht. Würde vorschlagen den Funktionsaufruf
 "Thread_Delay(xxx);" nach der Initialisierung der seriellen Schnittstelle
 einzufügen.

 2. Auf der suche nach der Baudrate mit welcher die IDE arbeitet bin ich
 bis jetzt erfolglos. Warscheinlich hilft hier nur die verschiedenen Baudraten
 mal durchzuprobieren.

 3. Sofern es sich bei der Ausgabe an die serielle Schnittstelle immer um Textdaten
 handelt kann man das Windowsprogramm "HyperTerminal" für den Empfang
 von Daten verwenden. Die Baudrate läÃ?t sich dann auch einstellen.

 VG Torsten  


    Antwort schreiben


Antworten:

Re: Serial_Init_IRQ (von PeterS - 13.09.2010 21:11)