Danke, aber warum funktioniert das hier dann nicht:
Meiner Meinung nach sollte ich bei minicom irgendeiner Taste drücken können und dann sollte der Controller "HALLO" zum PC senden. Warum tut er das nicht?Code:#define F_CPU 8000000 #define BAUD_RATE 9600 #include <avr/delay.h> #include <avr/interrupt.h> #include <avr/signal.h> #include <math.h> #include <stdlib.h> #include <string.h> #include <stdio.h> #include <avr/io.h> #include <avr/sfr_defs.h> // -- METHOD DECLARATIONS int putChar(char c); void uart_init(int tx, int rx); uint8_t uart_readChar(void); int main (void) { //GLOBAL INTERRUPT ENABLE sei(); //RX COMPLETE INTERRUPT ENABLE UCSRB |= (1<<RXCIE); //UART AN uart_init(1, 1); //PRINTF FÜR AUSGABE KONFIGURIEREN fdevopen(putChar,NULL,0); while(1) { } return 0; } SIGNAL(SIG_UART0_RECV) { printf("HALLO"); } // -- UART METHODS void uart_init(int tx, int rx) { UBRRL = (F_CPU/(BAUD_RATE*16l)-1); if(tx == 1) { UCSRB |= (1<<TXEN); } if(rx == 1) { UCSRB |= (1<<RXEN); } } int putChar(char c){ while ( !( UCSRA & (1<<UDRE)) ); UDR=c; return 0; } uint8_t uart_readChar(void) { loop_until_bit_is_set(UCSRA, RXC); return UDR; }
mfg
jagdfalke







Zitieren

Lesezeichen