AVR UART Findet jemand den Fehler?

OP #763425
Lesenswert?
• ▲
▼
1
 
2
#include <AVR/io.h>
3
#include <AVR/interrupt.h>
4
#include <util/delay.h>
5
#include <AVR/RS232.h>
6

7
//#define BAUD                9600  //Baudrate Setzen
8

9
int main(void)
10
{
11
DDRC = 0x00;
12
USART_Init(MYUBRR);
13
  for(;;)
14
  {
15
  unsigned char data = PINC;
16
  USART_Transmit(data);
17
  }  
18

19

20
}
Ich möchte meinen erstes Board damit einfach mal testen.
Darauf verbaut sind: Ein Atmega8535, ein FDTI UM232R an RXD und TXD, ein 
8er Dip-Schalter mit Pull ups am PortC.
Nun sollte mein Prog einfach die Pins C auslesen und per UART an den PC 
schicken.
Ich benutze ein 3686400Hz Quarz, diese Freq is auch in AVRSTUDIO 
eingetragen.
Baudrate 9600, 2Stop, no parity, so im Controller, um UM232R und im 
Terminalprog Hterm so eingestellt.
Jetzt kommen einfach sinnlose zeichenketten, ab und zu hört er auf zu 
senden und setzt dies erst fort wenn ich ein wenig an den Dip schaltern 
herumstelle.
Auch wenn ich anstatt PortC einfach nur ein Zeichen senden will, zb 
UASRT_Transmit('F') kommen verschiedene Zeichen an, nach einer Weile mit 
wiederkehrendem Muster.
Wie kann ich hier den Fehler einkreisen, woran kann das liegen?
Die 232.h hat in früheren Progs tadellos funktioniert...
Ich suche nun schon den ganzen Tag nach Fehlern und komme einfach auf 
keine Lösung...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren