Forum: Mikrocontroller und Digitale Elektronik Frage bezüglich UART und Attiny2313


von MC_AVR (Gast)


Lesenswert?

Guten Abend !

Ich versuche gerade die UART Schnittstelle des Attiny2313's anzusprechen 
und habe folgendes Programm geschrieben um zu testen ob die Daten vom 
Attiny2313 zum PC ankommen :-).

Ist es normal, dass wenn ich den delay rausnehme, dass nur "Karo 
Zeichen", also ebenhalt nicht das gewünschte Zeichen beim PC ankommt ? 
Läuft das Senden ohne das delay so schnell ab, dass der UART mit der 
Baudrate von 9600 nicht mehr klar kommt oder liegt das Problem woanders 
? Mir ist auch aufgefallen, dass wenn ich ohne dem delay den Attiny 
einschalte bzw. ausschalte kurzzeitig das richtige Zeichen ankommt ?!.
1
#include <avr/io.h>
2
#include <util/delay.h>
3
#include <avr/interrupt.h>
4
5
#define BAUD 9600UL      // Baudrate bestimmen
6
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
7
#define BAUD_REAL (F_CPU/(16*(UBRR_VAL+1)))     // Reale Baudrate
8
#define BAUD_ERROR ((BAUD_REAL*1000)/BAUD)      // Fehler in Promille, 1000 = kein Fehler.
9
10
11
12
int main(void)
13
{
14
15
  /***UART initialisieren***/
16
   
17
    UCSRB |= (1<<TXEN); //UART TX einschalten
18
    UCSRC |= (3<<UCSZ0); /*UART: 8 Datenbits; keine Parität; 1                    Stopbit => 8N1*/
19
  
20
      UBRRH = UBRR_VAL >> 8;
21
      UBRRL = UBRR_VAL;
22
  
23
  
24
     while (!(UCSRA & (1<<UDRE)))  /* warten bis Senden moeglich                   */
25
        {
26
        }
27
 
28
        while(1)
29
    {
30
    UDR = 'x';
31
    _delay_ms(10);
32
    } 
33
34
}

Danke !

von Falk B. (falk)


Lesenswert?


von Falk B. (falk)


Lesenswert?


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
Noch kein Account? Hier anmelden.