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 CodeCode:#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"); } } }
Lesezeichen