PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfaches printf() über RS232 ausgeben //Stimmt der Code???



STS-Robotics
09.05.2007, 19:48
Hallo zusammen...

Ich möchte mit dem ATmega128Funk eine ganz einfache Ausgabe am Terminal ausgeben. Warum geht DAS nicht? Was ist am Quellcode falsch???



#include <mega128.h>
#include <stdio.h>

void main(void)
{
// USART0 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART0 Receiver: On
// USART0 Transmitter: On
// USART0 Mode: Asynchronous
// USART0 Baud rate: 19200
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;

// USART1 initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART1 Receiver: On
// USART1 Transmitter: On
// USART1 Mode: Asynchronous
// USART1 Baud rate: 9600
UCSR1A=0x00;
UCSR1B=0x18;
UCSR1C=0x06;
UBRR1H=0x00;
UBRR1L=0x67;


printf("Hello World!\r");

}


Das Demoprogramm mit "Alle meine Entchen" und den Pinnen läuft über BASCOM! Warum das nicht???

Dank im Vorraus!!!

...STS-Team

izaseba
09.05.2007, 20:05
Das Demoprogramm mit "Alle meine Entchen" und den Pinnen läuft über BASCOM! Warum das nicht???

Weil printf auf die stdout geht, und wo ist bei AVR die stdout, wer sagt denn, daß es die UART sein muß? ?
Den Datenstrom mußt Du per Hand umbiegen guckst Du (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Die_Nutzung_von_printf)

Gruß Sebastian

STS-Robotics
10.05.2007, 08:32
mpf... Danke für die schnelle Antwort...

...aber irgendwie klappt dat nit!!! HELP! [-o<