Hallo, ich bin der Neue :-) Ich habe schon ein wenig mit Arduino experimentiert. Nun habe ich angefangen mich mit der Registerkonfiguration zu beschäftigen. Ich arbeite mit einem Micro vorrangig. Timer, Interrupts habe ich schon erfolgreich per Registerkonfiguration zum laufen gebracht. Nun möchte ich gerne per USART Daten verschicken. Dazu habe ich erstmal folgende Idee. Ich lasse von 0 bis 255 im Programm hochzählen und die jeweilige Zahl soll erstmal auf dem Monitor angezeigt werden. Ich habe sowohl den seriellen Monitor der Arduino IDE als als PUTTY verwendet. Mit Serial.print() alles kein Problem. Nur wie bekomme ich das per Registerkonfig. angezeigt. Mein bisheriger Code: #define F_CPU 16000000 #define BAUDRATE 9600 int neueZahl = 0; unsigned char akku = 0; unsigned char l,m,r; //Variablen für Anzeige linke, mitte, rechts unsigned int baudregister = (F_CPU/16/BAUDRATE)-1; void setup() { UBRR1H = (unsigned char) (baudregister>>8); //Setzen des HIGH-Bytes des Baudraten-Registers UBRR1L = (unsigned char) baudregister; //Setzen des LOW -Bytes des Baudraten-Registers //UBRR1 = baudregister; //Alternativ??? UCSR1A = (0<<U2X1); UCSR1B = (1<<RXEN1)|(1<<TXEN1) |(0<<UCSZ12); UCSR1C = (0<<UMSEL11)|(0<<UMSEL10)|(0<<USBS1)|(1<<UCSZ11) |(1<<UCSZ10); //Register mit Initwert 0 müssen eigentlich nicht wieder mit 0 //initialisiert werden. } void loop() { l = akku/100; m = (akku%100)/10; r = akku%10; if(UCSR1A & (1<<UDRE1)) UDR1 = l+48; if(UCSR1A & (1<<UDRE1)) UDR1 = m+48; if(UCSR1A & (1<<UDRE1)) UDR1 = r+48; if(UCSR1A & (1<<UDRE1)) UDR1 = "\n"; if(UCSR1A & (1<<UDRE1)) UDR1 = "\r"; akku++; delay(1000); //Serial.print(l); //Serial.print(m); //Serial.print(r); if(UCSR1A & (1<<UDRE1)) UDR1 = akku; //Wie bekomm ich UDR1 auf den Bildschirm??? } Wie bekomm ich jetzt UDR1 angezeigt???? Gruß bob_bob
:
Bearbeitet durch User
Frank K. schrieb: > Wie bekomm ich jetzt UDR1 angezeigt???? was meinst du damit? Das was du in UDR1 reinscheibt wird doch gesendet.
Gibt's noch ne extra Schritt um die Zahl auf dem Monitor auszugeben? Da bleibt alles still. Baudrate ist passend eingestellt.
Der Micro ist per USB Kabel mit dem PC verbunden. Im Datenblatt ist bei den Registerkonfiguration immer das "n" für das jeweilige Register. Es funktioniert nur die "1", bei "0" bzw alle anderen Zahlen wird mir ne Fehlermeldung gegeben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.