Hallo Leute,
ich muß über eine RS-232 Sollwertvorgaben für einen Digitalen Signalprozessor einlesen. Da der DSP mit einer Festkommaarithmetik arbeitet muß ich die Daten in festgelegte Formate umwandeln. Dazu gibts auch eine Funktion in einer Bibliothek des DSPs, die einen string aus ASCII Zeichen in eine Festkommazahl umwandelt, diese benötigt einen Zeiger auf den String als Argument. Da hab ich mir gedacht benutz mal strcat um die Daten aus dem Lesepuffer an den String anzuhängen, leider wird nur das erste übertragene Zeichen angehangen.
Das ganze wird Interrupt gesteuert aufgerufen, wenn daten ankommen wird der Puffer(1 byte) gelesen und dann beim nächsten Paket wieder.
hier ist mal ein teil des Quellcodes:
Alles anzeigen
Ich möchte eigendlich 8 Zeichen übertragen und dann konvertieren.
Ich bin zugegebener Maßen kein C-Kenner und hoffe hier den passenden Denkanstoß zu bekommen.
Bin für jede Hilfe dankbar!!
Gruß
Florian
ich muß über eine RS-232 Sollwertvorgaben für einen Digitalen Signalprozessor einlesen. Da der DSP mit einer Festkommaarithmetik arbeitet muß ich die Daten in festgelegte Formate umwandeln. Dazu gibts auch eine Funktion in einer Bibliothek des DSPs, die einen string aus ASCII Zeichen in eine Festkommazahl umwandelt, diese benötigt einen Zeiger auf den String als Argument. Da hab ich mir gedacht benutz mal strcat um die Daten aus dem Lesepuffer an den String anzuhängen, leider wird nur das erste übertragene Zeichen angehangen.
Das ganze wird Interrupt gesteuert aufgerufen, wenn daten ankommen wird der Puffer(1 byte) gelesen und dann beim nächsten Paket wieder.
hier ist mal ein teil des Quellcodes:
Quellcode
- char rdata[];
- rdata[0] = 0;
- ...
- if(ticker1 == '8') // '8' wegen der smilies ;-)
- {
- Qs_ref=_atoIQ(&rdata); //Funktion zur Stringkonvertierung
- ticker1 = 0;
- }
- ...
- //Teil des receive Interrupts
- Uint16 i;
- ticker1++;
- for(i=0;i<1;i++)
- {
- rdataA[i]=SciaRegs.SCIRXBUF.all; //Einlesen
- strcat(rdata, rdataA[i]);
- }
Ich möchte eigendlich 8 Zeichen übertragen und dann konvertieren.
Ich bin zugegebener Maßen kein C-Kenner und hoffe hier den passenden Denkanstoß zu bekommen.
Bin für jede Hilfe dankbar!!
Gruß
Florian