Ist ja interessant.
Also der Code der nun drauf ist:
Nun...Code:#include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> #define F_CPU 7372800 #define USART_BAUD_RATE 115200 #define USART_BAUD_SELECT (F_CPU/(USART_BAUD_RATE*16L)-1) volatile static uint8_t data; void USART_init(void){ UBRRH = 0; UBRRL = (uint8_t) USART_BAUD_SELECT; /* Aktivieren des Empfängers, des Senders und des "Daten empfangen"-Interrupts */ UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN); /* Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit */ UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); data = UDR; } void USART_transmit(uint8_t c){ while(!(UCSRA & (1<<UDRE))); UDR = c; } void USART_transmit_string(uint8_t *string){ while(!(UCSRA & (1<<UDRE))); while( *string){ USART_transmit (*string++); } } /* SIGNAL( SIG_USART_RECV ) { data = UDR; } */ int main (void) { // D A T E N R I C H T U N G : //=============================================== // PORTA Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein ) DDRA = 0b11111111; // PORTA = 0b00000000; // // PORTB Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein ) DDRB = 0b00000000; // PORTB = 0b00000000; // // PORTC Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein ) DDRC = 0b00000000; // PORTC = 0b11111111; // // PORTD Pin: 76543210 ( 0 = Eingang/Pullup aus, 1= Ausgang/Pullup ein ) DDRD = 0b11111111; // PORTD = 0b00000000; // USART_init(); USART_transmit_string("USART INIT - OK "); sei(); uint8_t data_alt; while (1) { PORTA = UCSRA; PORTD = data; /* if( data != data_alt ){ USART_transmit(data); data_alt = data; } */ } }
1. ich schalte ein
2. PC empfang "USART Init - OK"
3. Ich sende
4. PC empfang"USART Init - OK"
Wenn ich meine Gedanken mal preisgeben darf: "BAHNHOF"!







Zitieren

Lesezeichen