PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UART-Receive



jkob
28.12.2005, 19:42
Hallo,

ich habe eigentlich ein ganz simples Problem. Ich möchte das per UART eingelesene Byte auf mein LED-Array ausgeben.


unsigned char UART1_Receive( void )
{
while ( !(UCSR1A & (1<<RXC1)) )
; // wait for Receive Complete
return UDR1;
}
und im Hauptprogramm

PORTC = UART1_Receive;
PORTC sind die LEDs. Bei Kompilieren (avr-gcc) bekomme ich folgende Meldung:

warning: assignment makes integer from pointer without a cast
Warum? UDR1 ist doch ein Register in dem das Byte steht. Und UART1_Receive gibt den Wert des Registers zurück. Warum sollte ich da irgendwas casten oder dereferenzieren?

Viele Grüße
Jakob

PicNick
29.12.2005, 06:30
Du hast die Klammer vergessen.
PORTC = UART1_Receive();


UART1_Receive alleine ist tatsächlich ein integer (nämlich die adresse von der funktion), da hat de GCC schon recht.

jkob
29.12.2005, 13:15
Oh mann, danke, manchmal ist man auch zu doof.

Jakob