Immer noch Probleme beim Empfangen

OP #2647300
Lesenswert?

Hallo an alle,

wir haben mal wieder ein Problem mit unserem ATmega 328P und der 
Programmierung!

Im Anhang ist der betreffende Quelltext, sollte mehr benötigt werden, 
könnt ihr euch melden...

Zum Aufbau: Es gibt ein Bussystem (RS 485), das über einen MAX 485 an 
den µC angeschlossen ist und über Konverter an den PC... jetzt zum 
Problem: senden kann der µC mit dem SNAP Protokoll, aber er kann nichts 
empfangen, ich habe es über LED toggeln im Recive Interrupt probiert zum 
sehen, aber da tut sich im Moment gar nix, kann mir von euch einer 
weiterhelfen?

Gruß
Arne
Angehängte Dateien:
Gast #2647487
Lesenswert?

1
#define UART_PIN      PIND
2
#define UART_RX        PIND2

Ist das so richtig?
1
SIGNAL(USART_RX_vect)
2
{
3
  //PORTC ^= (1<<PC0);
4
  unsigned char ch;
5
  ch = UDR0;  
6
  SnapReceiveChar(ch);
7
}

Kürzen!
Ob in der ISR nur Zeilen stehen, von denen eine ein Funktionsaufruf ist, 
oder der gesamte Code der aufgerufenen Funktion da drin steht, macht den 
Kohl nicht fett.
#2647513
Lesenswert?

1
#define UART_DDR      DDRD
2
#define UART_PORT      PORTD
3
#define UART_PIN      PIND
4
#define UART_RX        PIND2
5
...
6
  cbi(UART_DDR, UART_PIN);              // Set direction to input
7
  sbi(UART_PORT, UART_PIN);              // enable pull-up resistors
Das ist natürlich Unsinn, verhindert aber nicht den Empfang, da der Pin 
"von alleine" zum Eingang wird.

Sicher, dass du beim RS485-Umschalten alles richtig machst?
OP #2648629
Lesenswert?

@STK: arg viel kürzen wird man in der Funktion vermutlich nicht können 
denk ich, ausser mir sagt jemand wo ;) und ja die defines sind richtig, 
es geht da nur um das "hören" auf der leitung vor dem senden ( CSMA/CA 
verfahren)

@Stefan: zum empfang testen haben wir beide eingänge auf gnd gezogen, 
direkt ohne µC, weil es ist uns im prinzip erstmal der empfang wichtig, 
das senden ist zweitrangig...

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