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

Re: RS232 Ausgabe Kategorie: Programmierung C (von Valdiz - 23.07.2009 22:35)
Als Antwort auf Re: RS232 Ausgabe von Valdiz - 20.07.2009 23:04
Ich nutze:
C-Control Pro Mega128
> > > > > Hallo!
> > > > > Wie kann ich einige Zeichen zu einem String zusammenfügen
> > > > > und dann über die RS232
> > > > > Schnittstelle ausgeben.
> > > > > Der String besteht aus folgenden Zeichen  
> > > > > ESC  %  02 : 2   gefolgt von Enter.                                                                
> > > > > ESC ist in jedem String eingebaut. Die restlige Zeichen können unterschidlich sein.
> > > > > Die Zeichen im String sollen nacheinander in hex. geschrieben werden.
> > > > >
> > > > > GruÃ?  Valdiz
> > > >
> > > >
> > > > Hi,
> > > >
> > > > schau dir mal den Befehl sprintf in der neuen IDE an.
> > > > ESC = 27
> > > >
>
> > > >
> > > > Grü�e Ulli
> > >
> > > Hallo!
> > >
> > > Danke für den Tip. Hat super geklappt.
> > >
> > > Ich habe noch eine weitere Freage zu deise Thema.
> > >
> > > Wie kann ich denn vorhandenen String in ASCII umwandeln?
> > > Mit dem Befehl Str_Printf(str,"n%s%s%sr",0x1b,0x34,0x33);
> > > sendet es mir was, was mit  ASCII überhaupt nicht zu tun hat.
> > >
> > > GruÃ?  Valdiz
> >
> > Bei %s wird ein String erwartet. Ein %c für ein einzelnes Zeichen ist momentan nicht eingebaut,
> > werde ich aber in der nächsten Version nachholen.
> > Ich schlage folgendes vor:
> >
> > str="nx34r";
> > str[1]=27;  // überschreibe x mit ESC
> >
> > Ist vom erzeugten Code auch kürzer.
> >
> > Gruss Peter
>
>
> Danke Peter,
>
> es klappt.


Hallo,
 
ich habe noch ein weiters Problem mit dem Stringübertragung.
Als eine Rückantwort auf meinen gesendeten String soll ich auch einen String
von der gleichen Schnittstelle bekommen und an die andere weiter leiten.
Der empfangene String besteht aus ASCII-Zeichen .
Ich kann nur einzelnen Symbole bekommen und nicht den gesamten String.
Die Quellkode ist so:

byte buffer_0[150];
byte buffer_1[150];
void main(void)
 {
     byte count;
     char empfang_str;
 
     Serial_Init_IRQ(0,buffer0,70,70,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600);
     Serial_Init_IRQ(1,buffer1,70,70,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600);
 
     count=Serial_IRQ_Info(1,RS232_FIFO_RECV);
 
     while(count!=0)
         {
         empfang_str=Serial_ReadExt(1);
         Serial_Write(0,empfang_str);
         count=Serial_IRQ_Info(1,RS232_FIFO_RECV);
         }
     }

GruÃ? Valdiz


    Antwort schreiben


Antworten: