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)\
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)
}
Die Senderoutine ist die hier: (auch von dem Tutorial von RN-Wissen kopiert)
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 dann das Programm einfach:
Code:
#include <stdlib.h>
#include <avr/io.h>
#include "rncontrol.h"
int main(void)
{
init_USART(); //USART konfigurieren
while(1){}
return 0;
}
Und hier das Ergebniss...
Code:
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 |.::...::...::...|
Mattis
Lesezeichen