chouifi
12.02.2007, 13:44
Hallo Zusammen,
ich bin jetzt auf eure Rate angewiesen, seit 3 Tagen versuche ich, eine Zechenkette in Hyperterminal zu zeigen, es hat nicht geklappt.
ich weiss nicht, was ich falsch mache.
Ich programmiere Atmega128, hier ist mein Code
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define F_CPU 16000000UL
#define BAUD 9600UL
#define UBRR_BAUD ((F_CPU/(16UL*BAUD))-1)
volatile uint8_t zeichen;
volatile uint8_t buffer;
// USART initialisieren
void uart_init0(void)
{
// Baudrate einstellen (Normaler Modus)
UBRR0H = (uint8_t) (UBRR_BAUD>>8);
UBRR0L = (uint8_t) (UBRR_BAUD & 0x0F);
UCSR0B=0;
// Aktivieren von receiver und transmitter
UCSR0B = (1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
// Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
UCSR0C=0;
UCSR0C = (1<<UMSEL0)|(1<<UCSZ01)|(1<<UCSZ00);
}
SIGNAL(SIG_UART0_RECV){
zeichen= UDR0;
}
void UART_SendByte(uint8_t buffer){
while ( !( UCSR0A & (1<<UDRE0)));
UDR0=buffer;
}
void putstring(char *s){
while (*s!=0){
UART_SendByte(*s);
*s++;
}
}
int main(void)
{
DDRE=0xFF;
PORTE=0xFF;
uart_init0();
sei();
while (1){
if(zeichen==0x0D){
putstring("Hallo Welt\n");
}
}
}
ich bin jetzt auf eure Rate angewiesen, seit 3 Tagen versuche ich, eine Zechenkette in Hyperterminal zu zeigen, es hat nicht geklappt.
ich weiss nicht, was ich falsch mache.
Ich programmiere Atmega128, hier ist mein Code
#include <avr/io.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#define F_CPU 16000000UL
#define BAUD 9600UL
#define UBRR_BAUD ((F_CPU/(16UL*BAUD))-1)
volatile uint8_t zeichen;
volatile uint8_t buffer;
// USART initialisieren
void uart_init0(void)
{
// Baudrate einstellen (Normaler Modus)
UBRR0H = (uint8_t) (UBRR_BAUD>>8);
UBRR0L = (uint8_t) (UBRR_BAUD & 0x0F);
UCSR0B=0;
// Aktivieren von receiver und transmitter
UCSR0B = (1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
// Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
UCSR0C=0;
UCSR0C = (1<<UMSEL0)|(1<<UCSZ01)|(1<<UCSZ00);
}
SIGNAL(SIG_UART0_RECV){
zeichen= UDR0;
}
void UART_SendByte(uint8_t buffer){
while ( !( UCSR0A & (1<<UDRE0)));
UDR0=buffer;
}
void putstring(char *s){
while (*s!=0){
UART_SendByte(*s);
*s++;
}
}
int main(void)
{
DDRE=0xFF;
PORTE=0xFF;
uart_init0();
sei();
while (1){
if(zeichen==0x0D){
putstring("Hallo Welt\n");
}
}
}