Gast
#513907
Hallo,
ich habbe folgendes Problem:
Wenn ich versuche kanal_nummer 0 und 1 ausgeben will, werden falsche
daten über die rs232 schnittstelle gesendet.Wähle ich immer nur einen
Kanal aus dann wird das richtige ergebnis ausgegeben. Kann mir jemand
helfen.
Danke
void rs232_senden(struct adc_messung *struct_senden)
{
unsigned int i=0;
unsigned int sample=0;
unsigned int kanal_nummer=0;
unsigned int rs232_send_field[5];
char rs232_string[20];
for(kanal_nummer=0;kanal_nummer<2;kanal_nummer++)
{
for(sample=0;sample<5;sample++)
{
switch(kanal_nummer)
{
case 0: rs232_send_field[sample]=(*struct_senden).kanal_0
[sample];break;
case 1: rs232_send_field[sample]=(*struct_senden).kanal_1
[sample];break;
}
}
sprintf(rs232_string,"\n\r%i %i %i %i %i
",rs232_send_field[0],rs232_send_field[1],rs232_send_field[2],rs232_send
_field[3],rs232_send_field[4]);
UBRR3H=0;
UBRR3L=11;
UCSR3B=(1<<TXEN3);
UCSR3C=(3<<UCSZ30);
while(!(rs232_string[i]=='\0'))
{
while(!(UCSR3A & (1<<UDRE3)))
{
}
UDR3=rs232_string[i];
_delay_ms(5);
i++;
}
}
}