Schau dir mal das an, vielleicht entdeckst du selbst was. (Quarz mußt du anpassen)
https://www.roboternetz.de/wiki/pmwi...sComVergleich2
Ich glaub aber eher, dein problem liegt beim Quartz-Setup
hallo.
habe ein programm zum senden und empfangen (echo) von eingaben im HyperTerminal geschrieben, wie kann ich es unter HyperTerminal testen. irgendwie klappt das nicht oder ist mein programm falsch?
CODE:
#include <inttypes.h>
#include <avr/io.h>
#include <stdint.h>
int main(void)
{
unsigned char zwischensp;
UCSRB |= ( 1 << RXEN ); //Empfänger von UART einschalten
UCSRB |= ( 1 << TXEN ); //Sender von UART einschalten
UCSRC |= ( 1 << URSEL )|( 3<<UCSZ0 ); // Asynchron 8N1 ( 8 Datenbits, 1 Stopbit )
UBRRH = 0; // Highbyte ist 0
UBRRL = 23; // Lowbyte ist 23 ( dezimal ) damit Baudrate auf 9600 durch Formel (Taktrate/(Baudrate x 16))-1=23. Achtung! Überprüfen mit welchem Taktgeber(intern oder extern unterschidliche Frequenzen) der µC läuft.
while (1){
while ( !(UCSRA & (1<<RXC)) ); // Warten bis Daten empfangen wurden
zwischensp = UDR; // Empfangsregister auslesen
while ( !( UCSRA & (1<<UDRE)) );// Warten bis Senden möglich ist
UDR = zwischensp;// Daten senden
}
}
Schau dir mal das an, vielleicht entdeckst du selbst was. (Quarz mußt du anpassen)
https://www.roboternetz.de/wiki/pmwi...sComVergleich2
Ich glaub aber eher, dein problem liegt beim Quartz-Setup
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Nochwas: diese Formulierung ist PFUI !
( 3<<UCSZ0 )
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
was meinst du mit "Quarz musst du anpassen"? meinst baudrate und die richtige quarzfrequenz in diese komische formel einsetzen? falls du das meinst , davor habe anderes programm geschrieben, welches zum HT strings schickt, hat alles funktioniert. meine frage war eher, wie ich z.B. buchstaben die ich bei HT eintippe zu µC schicke (bei HT einfach buchstaben eintippen und auf enter? geht nicht oder?).
Das Wiki-Beispiel gibt jedes x-beliebige Zeichen einfach wieder zurück, so wie es ist. Ein <ENTER> brauchst du da nicht, das enter ist auch nur ein Zeichen, daß retourniert wird.
da solltest du besser abschreiben :
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
ok, habe so gemacht. aber in HT lassen sich überhaupt keine zeichen eintippen. habe schon mit "Übertragung/Datei senden" versucht.
Hast du eingestellt "Handshake: none" ? weil dann geht zwar "hello world", aber HT schickt nix weg
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
wo ist das? unter datei/eigenschaften -> eistellungen -> ASCII-Konfiguration?
"Anschlußeinstellungen" und heißt auf Deutsch "Flußsteuerung"
Bitte, schau dir die robo-wiki seite genau an
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
wollte ich ja, aber wenn ich auf "Inhaltsverzeichnis" gehe und "AVR-Einstieg mit GCC" anklicke fragt man mich nach einem password.
Lesezeichen