AVR AT90CAN128 uart

OP #1768788
Lesenswert?
• ▲
▼
Hallo

Ich bin an verzweifeln mit dem uart.
Es will einfach nicht.
µC at90can128
externer 8MHz Quartz
Mein code:
Led 1s an, dann 1s aus.
Also wird alle 2s ein Zeichen geschickt.
1
#include <avr/io.h>
2
#include <util/delay.h>
3
#include <avr/wdt.h>
4

5
void usart0_init(unsigned long baudrate) // Initialize USART0
6
{  
7
  UBRR0H  = 0;
8
  UBRR0L = baudrate; // set baud rate UBRRN sei 12 für 8 MHZ und 38400
9
  UCSR0B = (1<<RXEN) | (1<<TXEN); // enable receiver and transmitter
10
  UCSR0C = 0x06;// 8 Datenbit 1 Stoppbit no parity
11
}
12

13

14
void usart0_tx (char data) // transmit byte via usart0
15
{
16
  while (!(UCSR0A & (1 << UDRE0))); // wait for empty transmit buffer
17
  UDR0 = data; // put data to buffer = send data
18
}
19

20

21
void main()
22
{
23
  wdt_disable();
24
  usart0_init(12);
25
  
26
  while(1)
27
  {
28
    PORTC |= (1 << PINC6); //turn on led
29
    _delay_ms(1000);
30
    usart0_tx('i');
31

32
    PORTC &= ~(1 << PINC6);//turn off led
33
    _delay_ms(1000);
34
  }
35
}

Es kommt leider jede Sekunde nur K? an.
also 2 Byte anstatt von einem.
Hab mir auch schon die anderen uart Threads durchgelesen.
Ich find den Fehler einfach nicht...
Moderator (Firma: Titel) Persönliche Seite #1768895
Lesenswert?
• ▲
▼
> Es kommt leider jede Sekunde nur K? an.
> also 2 Byte anstatt von einem.
Das deutet darauf hin, dass die Baudrate deines uC niedriger als die des 
PC ist. Hast du ein Oszilloskop zur Hand? Damit könntest du die Baudrate 
(Zeit für 1 Bit) ganz einfach ausmessen....

> externer 8MHz Quartz
> Led 1s an, dann 1s aus.
Das hast du kontrolliert? Diese Zeiten passen?
OP #1769003
Lesenswert?
• ▲
▼
Danke für deine Hilfe.
So hab mal deine settings ausprobiert.
Es kommt genau das selbe wie bei meinen settings an.
Also die clockeinstellungen müssten ja passen da die led 1 sekunde an 
bzw aus ist.
Irgendwie muss da was mit den baudratengenerator nicht stimmen.
verdammt...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.