gut
Als Terminal verwende ich das von Burkhard Kainka:
Hier ist es
Damit funktionieren auch die USB-auf-seriell-Adapter problemlos (habs selber ausprobiert).
Erst mal musst du den ganzen UART-Kram aktivieren und konfigurieren:
Code:
//Die Zahlenwerte hier sind für eine Baudrate von 9600 bei Verwendung eines 16Mhz-Quarzes gewählt
UBRRH=0; //Baudrate
UBRRL=103; //Baudrate
UCSRB=0b00011000; //internen UART einschalten
UCSRC=0b10000110; //Datenformat: 8 Datenbits, no Parity, 1 Stopbit
Die Werte für UBRRH und UBRRL geben die Übertragungsgeschwindigkeit an. Die Zahlenwerte dafür musst du im Datenblatt vom Atmega32 ab Seite 163 in der Tabelle - abhängig von Taktfrequenz und Baudrate ablesen.
Funktion, um ein Byte zu senden:
Code:
void serial_sendbyte(unsigned char i)
{
while( !(UCSRA & 32) );
//senden
UDR=i;
}
Funktion, um zu prüfen, ob der PC Daten gesendet hat (wenn ja, dann liefert diese Funktion "true"):
Code:
bool serial_available()
{
if(UCSRA & 128){return true;}
return false;
}
Funktion, um das empfangene Byte zu lesen
Code:
unsigned char serial_receive()
{
//bis Daten empfangen
while( !(UCSRA & 128) );
//einlesen
return UDR;
}
Die Funktionen senden nur Bytes. Das Terminal zeigt sie sowohl als Dezimalzahlen als auch als Text an (ASCII Tabelle sagt dir vielleicht was)
Grüße,
Bernhard
Lesezeichen