Hallo,

von dieser Seite http://alt.kreatives-chaos.com/index...e=c_uart_flash hab ich mir einen Code kopiert der mit Hello World auf der Konsole ausgibt. Er funktioniert einwandfrei.

Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>

#define SYSCLK		7372800
#define BAUD		9600UL
#define UBRR_BAUD	((SYSCLK/(16*BAUD))-1)

#define	TRUE	1
#define	FALSE	0

// USART initialisieren
void uart_init(void);

volatile unsigned char daten_gesendet = TRUE;
const prog_char* volatile p_string;

// Zeichenkette im Flashspeicher
prog_char daten[] = "Hello World!\n";

int main(void)
{
	// USART initialisieren
	uart_init();

	sei();

	while (1)
	{
		if (daten_gesendet)
		{
			// Flag zurücksetzen
			daten_gesendet = FALSE;

			// Pointer zeigt auf die Daten im Flashspeicher
			p_string = daten;

			/* Interrupt aktivieren, damit wird sofort zur
			   Interruptroutine gesprungen und das erste Zeichen gesendet. */
			UCSRB |= (1<<UDRIE);
		}
	}
}

void uart_init(void)
{
	// Baudrate einstellen ( Normaler Modus )
	UBRRH = (unsigned char) (UBRR_BAUD>>8);
	UBRRL = (unsigned char) (UBRR_BAUD & 0x00FF);

	// Aktivieren des Empfängers, des Senders und des "Daten empfangen"-Interrupts
	UCSRB = (1<<RXEN)|(1<<TXEN);

	// Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
	UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
}

/* Interrupt wird ausgelöst sobald der Sendepuffer leer ist */
SIGNAL(SIG_UART_DATA)
{
	char buffer = pgm_read_byte(p_string++);

	/* Wenn nicht das Ende der Zeichenkette erreicht wurde,
	   dann weiteres Zeichen senden */
	if ( buffer != '\0' ) {
		UDR = buffer;

	} else {

		// Flag setzen, das der String gesendet wurde
		daten_gesendet = TRUE;

		// Interrupt deaktivieren
		UCSRB &= ~(1<<UDRIE);
	}
}
Nun möchte ich den Code aber so erweitern bzw. umbauen, dass ich eine Variablen Text ausgeben kann. D.h. ich möchte z.B. Ausgeben: "Der Sensortwert beträgt: " und dann eine Variable z.B. x =253. Leider weis ich nicht was ich machen muss und alle versuche den Code umzubauen schlugen bisher fehl.
Hoffentlich kann mir einer von euch weiter helfen.

EDIT: Leider komm ich mit der in der Wiki beschriebenen AVR GCC Bibliothek für UART auch nicht weiter bzw. zu keinem Ergebniss.

viele Grüße
HannoHupmann