abend
bin noch ein ziemlicher newbie also bitte seit nett zu mir...*gg*

zuerst einmal, was ist der unterschied zwischen RS232 und uart??kann ich ein uart-signal einfach mit meinem usbtoserial-converter empfangen?brauch ich dafür nur 2 leitungen??

ausgangssituation: ich habe ein evaluationboard mit aduc7024 (programmiere mit keil uvision 3) und generiere damit ein 3phasen pwm signal um einen linearmotor anzusteuern. funzt alles.
nun muss ich dem uC über RS232 (oder uart?!?) einen sollwert vorgeben, zu dem er fahren soll.

beim uC waren einige code examples dabei, check aba net ganz warum man da nicht einfach printf oda so nimmt?!?!?

wie funkt das mit dem empfangen auf dem uc?muss ich da jedesmal einen interrupt auslösen??

hier die 2 code examples
Code:
#include <ADuC7024.h>

             
void senddata(short);
void delay(int);
char hex2ascii(char);

int main (void)  {

unsigned short SOMEDATA[1024];
int i;

   	GP0CON = 0x10000000; 		// enable ECLK output on P0.5

 	// configures GPIO to flash LED P4.2
	GP4DAT = 0x04000000;		// P4.2 configured as an output. LED is turned on	

	// Setup tx & rx pins on SPM 0 and SPM 1
	GP1CON = 0x011;

     // Start setting up UART at 9600bps
   	COMCON0 = 0x080;			// Setting DLAB
   	COMDIV0 = 0x093;			// Setting DIV0 and DIV1 to DL calculated
   	COMDIV1 = 0x000;
   	COMCON0 = 0x007;			// Clearing DLAB

	for (i=0; i <1024; i++)
	{
		SOMEDATA[i]=i;
	}	
	
	while(1)
	{
	for (i=0; i <1024; i++)
	{
		senddata (SOMEDATA[i]);
	}
	GP4DAT ^= 0x00040000;		// Complement P4.2
	delay(2000);
	}
}


void delay (int length)
{
	while (length >=0)
    	length--;
}

void senddata(short to_send)
{
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = 0x0A;						// output LF 
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = 0x0D;						// output CR 
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = hex2ascii ((to_send >> 8) & 0x0F);
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = hex2ascii ((to_send >> 4) & 0x0F);						
	while(!(0x020==(COMSTA0 & 0x020))){}
		COMTX = hex2ascii (to_send & 0x0F);							
}


char hex2ascii(char toconv)
{
	if (toconv<0x0A) 
	{
		toconv += 0x30;
	}
	else 
	{
		toconv += 0x37;
	}
	
	return (toconv);
}
Code:
#include <ADuC7024.h>

#define CR     0x0D
 	
int write (int file, char * ptr, int len);	// Functions used to 
int getchar (void);							// to output data 	 
int putchar(int);                     		// Write character to Serial Port  


int main (void)  {
  unsigned char jchar = 0x30;

	char output1[13] = "Hello World\n";
	
	// Setup tx & rx pins on P1.0 and P1.1
	GP1CON = 0x011;

   	// Start setting up UART at 9600bps
   	COMCON0 = 0x080;				// Setting DLAB
   	COMDIV0 = 0x093;				// Setting DIV0 and DIV1 to DL calculated
   	COMDIV1 = 0x000;
   	COMCON0 = 0x007;				// Clearing DLAB

	GP4DAT = 0x04000000;			// P4.2 configured as an output. LED is turned on

	while(1)
	{

		GP4DAT ^= 0x00040000;		// Complement P4.2
		write(0,output1,13);		// Output Data
		jchar = getchar();			// RX Data, Single Byte
		write(0,&jchar,1);			// Output Rxed Data
	}
}

int putchar(int ch)  {                   /* Write character to Serial Port  */

	if (ch == '\n')  {
    	while(!(0x020==(COMSTA0 & 0x020)))
    	{}
		COMTX = CR;							/* output CR */
		}
    while(!(0x020==(COMSTA0 & 0x020)))
    {}
 
 	return (COMTX = ch);
}


int getchar (void)  {                      /* Read character from Serial Port */

   	while(!(0x01==(COMSTA0 & 0x01)))
   	{}
  	return (COMRX);
}

int write (int file, char * ptr, int len) {
  int i;

  for (i = 0; i < len; i++) putchar (*ptr++);
  return len;
}
hoff ihr seit schlauer als ich

danke im voraus