hallo leute, ich bin eine Anfängerin in Mikrocontroller, und möchte gern eine Beispiel zum Laufen bringen, aber es geht irgendwie nicht, soll man vielleicht an dem Unterprogramm avr/interrupt.h was einstellen oder mache ich das falsch.
Bitte um Hilfe.
danke
hier ist meine Code
Code:#include <avr/io.h> #include <stdlib.h> #include <stdint.h> #include <avr/interrupt.h> #include <util/delay.h> // Berechnungen #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) // clever runden #define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1))) // Reale Baudrate #define BAUD_ERROR ((BAUD_REAL*1000)/BAUD) // Fehler in Promille, 1000 = kein Fehler. #ifndef UART_H #define UART_H #define F_CPU 3686400UL #define BAUD 9600UL void uart_init(void) { UCSR0B |= (1<<TXEN0) |(1<<RXEN0)|(RXCIE0<<1); // UART TX einschalten UCSR0C |= (1<<UMSEL01)|(1 << UCSZ01)|(1 << UCSZ00); // Asynchron 8N1 UBRR0H = UBRR_VAL >> 8; UBRR0L = UBRR_VAL & 0xFF; } ISR(USART_RX_vect) { uint8_t receiv; while (!(UCSR0A & (1<<RXC0))) receiv = UDR0; UDR0=receiv; PORTB = receiv; } int main(void) { DDRB=0xFF; char Line[40]; // String mit maximal 39 zeichen uint8_t c; uart_init(); sei(); while (1) { */ } return 0; // never reached } #endif // UART_H
danke
Lesezeichen