Hi,
ich habe folgendes Problem.
Wenn ich mit dem ATMega 16 Zahlen über 127 durch die serielle schnittstelle sende kommen auf der pc seite nur 63 an.
Ich verwende WinAVR in einer aktuellen Version.
Die Methoden zur Datenübertragung verarbeiten nur char Variablen, so dass ich vorher meine 8bit integer zu chars convertieren muss.Hier tritt das Problem noch nicht auf. Ascii Zeichen werden Problemlos übertragen.
Die beiden Sende-Methoden:
Code:
void USART_transmit (unsigned char c) {
while (!(UCSRA & (1<<UDRE))) {}
UDR = c;
}
void USART_transmit_string (unsigned char *string,unsigned char lenght) {
while (!(UCSRA & (1<<UDRE))) {}
for(int i=0;i<lenght;i++)//while ( *string!=0x00)//while ( *string)
USART_transmit (*string++); //geht im string weiter und gibt zeichen für zeichen aus
}
kann mir jemand bei dem Problem helfen?
Lesezeichen