title image


Smiley Re: zu integer Zeichen das zugehörige ASCII Zeichen
hallo,



ich würde das so machen wie schon erläutert. Allerdings kann ich es nicht

beurteilen wie schnell der Microprozessor mit der Verabeitung von

30-40 Vergleichen fertig wird.



Ich hab mal eine Funktion lese_von_schnittstelle dazugefügt, die

das Lesen von der Schnittstelle simuliert.





#include <stdio.h>

#include <stdlib.h>



#define MAX_LEN 80



int pgain = (int) 0;

int igain = (int) 0;

int SciaRegs_SCITXBUF = (int) 0;



typedef struct {

char *name;

int *value;

} WERTE;



WERTE data [] = {

{ "pgain", &pgain },

{ "igain", &igain },

{ "SciaRegs.SCITXBUF", &SciaRegs_SCITXBUF },

{ (char *) 0, (int *) 0 }

};



int setze_parameter ( char *, int );

int lese_von_schnittstelle ( char *, int * );



int main(int argc, char *argv[] )

{



char para[MAX_LEN+1];

int value;

WERTE *ptr;

char *s_ptr;



while ( lese_von_schnittstelle ( para, &value ) == 0) {

setze_parameter ( para, value );

}



printf ( "\nAUSGABE:\n" );

ptr = data;

while ( ptr->name ) {

printf ( "%s = %d\n", ptr->name, *ptr->value );

ptr++;

}





getchar ( );

return ( 0 );

}





int setze_parameter ( char *par, int value )

{

WERTE *ptr;

if ( par == (char *) 0) return ( 0 );



ptr = data;

while ( ptr->name ) {

if ( strcmp ( par, ptr->name ) == 0 ) {

*ptr->value = value;

return ( 0 );

}

ptr++;

}

return ( -1 );



}



int lese_von_schnittstelle ( char *para, int *value )

{

char s_gelesen[MAX_LEN+1], *s_ptr, *d_ptr;

static int cnt = 0;



if ( para == (char *) 0 ) return ( -1 );

if ( value == (int *) 0 ) return ( -1 );



switch ( ++cnt ) {

case ( 1 ): strcpy ( s_gelesen, "pgain=300" ); break;

case ( 2 ): strcpy ( s_gelesen, "igain=400" ); break;

case ( 3 ): strcpy ( s_gelesen, "SciaRegs.SCITXBUF=500" ); break;

default: return ( -1 );

}

/* gelesene Zeichenkette auseinandernehmen */

s_ptr = s_gelesen;

d_ptr = para;

while ( *s_ptr != 0 && *s_ptr != '=' ) *d_ptr++ = *s_ptr++;

*d_ptr = 0;

if ( *s_ptr++ == '=' ) {

*value = atoi ( s_ptr );

return ( 0 );

} else {

return ( -1 );

}





}







Gruss d_A



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: