Danke fuer die Antworten schonmal!
Also..
@Jens -> aendert gar nichts
@Fred:
Meine Fusebits sind die hier:
LowFuse: 1111 1111
HighFuse: 1101 1010
Frag mich nicht was genau das heisst.. ich hab das alles noch nicht so ganz verstanden...
*edit*: hab grade noch herausgefunden was das heisst:
Ext. Crystal High Freq. / Startup time: 16K CK + 64ms
(wobei das mir das trotzdem nichts sagt)
@Sebastian:
Ich hab die veranderung mal gemacht - dann kommt was anderes an - aber immer noch zeichensalat.... - weisst du ob der F_CPU-Wert richtig ist? (fuer nen 16MHz ATMega32)\
Die Senderoutine ist die hier: (auch von dem Tutorial von RN-Wissen kopiert)Code:#ifndef F_CPU #define F_CPU 16000000 #endif #define BAUD 9600L #define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1) void init_USART(void) { UBRRH = UBRR_VAL >> 8; UBRRL = UBRR_VAL & 0xFF; UCSRB |= (1<<TXEN); //UART TX (Transmit - senden) einschalten UCSRC |= (1<<URSEL)|(3<<UCSZ0); //Modus Asynchron 8N1 (8 Datenbits, No Parity, 1 Stopbit) }
Und dann das Programm einfach:Code:void sendchar(unsigned char c) { while(!(UCSRA & (1<<UDRE))) {} //Warten, bis Senden möglich ist UDR = c; //schreibt das Zeichen aus 'c' auf die Schnittstelle } void sendUSART(char *s) //*s funktiniert wie eine Art Array - auch bei einem String werden die Zeichen (char) einzeln ausgelesen - und hier dann auf die Sendeschnittstelle übertragen { while(*s) { sendchar(*s); s++; } }
Und hier das Ergebniss...Code:#include <stdlib.h> #include <avr/io.h> #include "rncontrol.h" int main(void) { init_USART(); //USART konfigurieren while(1){} return 0; }
MattisCode:mattis@mattis-dell:~$ hexdump /dev/ttyUSB0 -v -C 00000000 a9 3a 3a 0a 02 a9 3a 3a 0a 02 a9 3a 3a 0a 02 a9 |.::...::...::...|







Zitieren

Lesezeichen