UART -> MAX232

OP #1840182
Lesenswert?

Hallo,
wir versuchen hier mithilfe eines MAX232 Zeichen an den PC zu senden. 
Das ganze funktioniert solange die RxD-Leitung vom ISP (USB-AVR Lab) mit 
der des µC verbunden ist. Trennen wir diese Verbindung sendet der µC 
nichts mehr. Eine Test-LED an PINC0 blinkt weiterhin fröhlich vor sich 
hin.
Der verwendete Code:
1
#include <avr/io.h>
2
#include <util/delay.h>
3

4
#define BAUD 9600UL
5
#define UBRR_BAUD   ((F_CPU / (16UL * BAUD)) - 1)
6

7
void initialize_uart(void) {
8
    // Baudrate einstellen (Normaler Modus)
9
    UBRRH = (uint8_t) (UBRR_BAUD >> 8);
10
    UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff);
11

12
    // Aktivieren von receiver und transmitter
13
    UCSRB = (1 << TXEN);
14

15
    // Einstellen des Datenformats: 8 Datenbits, 1 Stoppbit
16
    UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
17
}
18

19
int main() {
20
  initialize_uart();
21
  const char OK = 'k';
22
  const char NK = 'n';
23
  const char TE = 't';
24
  DDRA = 0x00;
25
  DDRC = 0xFF;
26
  while(1) {
27
    _delay_ms(50.);
28
    PORTC = 0xFF;
29
    _delay_ms(50.);
30
    PORTC = 0x00;
31
    while(!(UCSRA & ( 1 << UDRE))) {}
32
    PORTC = 0xff;
33
    PORTC = 0x00;
34
    if(PINA & 0x1) {
35
      UDR = NK;
36
    } else if(PINA & (1 << 1)){
37
      UDR = TE;
38
    } else {
39
      UDR = OK;
40
    }
41
  }
42
}
Weiss hier jemand wo das Problem liegt? Wir verzweifeln hier.


Gruß, Daniel
Angehängte Dateien:

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