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...