Homepage

  • Projekte
  • Shop
  • Forum
Erweiterte Suche
  • Schnellzugriff
    • Unbeantwortete Themen
    • Aktive Themen
    • Suche
  • FAQ
  • Anmelden
  • Registrieren
  • Foren-Übersicht
  • Suche

RS232 und 1200 7N1 ?

Ethernet Mega32 Experimentierboard
Antworten
  • Druckansicht
Erweiterte Suche
3 Beiträge • Seite 1 von 1
jogybaer41
Beiträge: 10
Registriert: 02.11.2012, 18:09:22

RS232 und 1200 7N1 ?

  • Zitieren

Beitrag von jogybaer41 » 02.11.2012, 18:31:51

Hallo,

Ich bin recht neu in sachen Microcontroller und habe folgendes Problem:

Vor kurzem das ETH_M32_EX Board erfolgreich aufgebaut (so wie hier auf den Webseiten beschrieben) und in Betrieb genommen.
Alles funktioniert.

Ich habe vor eine Serielle Schnittstelle meines Laptops mit hilfe von com0com, com2tcp auf das Board zu Tunneln. Das habe ich auch hinbekommen (mit 9600 8N1).
Nun möchte ich eine alte Hardware (LED-Laufband Anzeige) an die RS232 Schnittstelle des Boards anschliessen. Das Problem : Die schnittstelle der LED-Laufband Anzeige erwartet die Seriellen Parameter 1200 Baud 7N1.

Jetzt meine eigendliche Frage : Wo stelle ich ein, das er auf der Seriellen mit 1200 7N1 arbeitet ?
(Ich hoffe das geht überhaupt)

LG
JogyBaer41
Nach oben

jogybaer41
Beiträge: 10
Registriert: 02.11.2012, 18:09:22

Re: RS232 und 1200 7N1 ?

  • Zitieren

Beitrag von jogybaer41 » 03.11.2012, 11:14:37

Ich bin nun etwas weiter:

Ich habe im Datenblatt des ATMega644 das Datenregister UCSRnC gefunden. Mit diesem soll es möglich sein das Datenwort auf 7 Bit einzustellen.

Nun brauche ich Eure Hilfe da ich davon ausgehe das ich die UART.h, UART.c und Config.h anpassen muss.

Ich habe im Quelltext (UART.c) folgenden Abschnitt gefunden:

#if !USE_CAM
//Serielle Schnittstelle 1
//Enable TXEN im Register UCR TX-Data Enable
UCR =(1 << TXEN | 1 << RXEN | 1<< RXCIE);
// 0 = Parity Mode Disabled
// 1 = Parity Mode Enabled, Even Parity
// 2 = Parity Mode Enabled, Odd Parity
// UCSRC = 0x06 + ((parity+1)<<4);
// UCSRC |= (1<<USBS);
//Teiler wird gesetzt
UBRR=(F_CPU / (baudrate * 16L) - 1);
usart_status.usart_disable = 0;
#endif //USE_CAM

Die Roten Zeilen sind auskommentiert. Wenn ich beide Zeilen aktiviere bekomme ich beim Übersetzen mehrere Fehler das Variablen nicht Deklariert sind. (Wie ich ja schon geschrieben hatte, bin ich absoluter Newbie in sachen Microcontroller und versuche grad nach dem Trial and Error verfahren mich einzuarbeiten) :P

Ich hab jetzt in der UART.h beim AT644 die Variable UCSRC mit UCSR0C und USBS mit USBS0 hinzugefügt. Anschließend hab ich die Variable PARITY durch eine der im Sourcecode angegeben Zahlen ersetzt.

Ok, so kompiliert und in der Config.h die Baudrate auf 1200 gesetzt.
Also die RS232 funkt jetzt auf 7N1 allerings ist die Baudrate laut Terraterm bei 14400 ?!

Kann mir einer Helfen ?

LG
Jogybaer
Nach oben

jogybaer41
Beiträge: 10
Registriert: 02.11.2012, 18:09:22

Re: RS232 und 1200 7N1 ? (Gelöst)

  • Zitieren

Beitrag von jogybaer41 » 03.11.2012, 12:26:11

Hi,

Also ich habs jetzt durch viel googeln :P selbst hinbekommen.

In der UART.c habe ich folgende Änderungen (in rot) vorgenommen:

void usart_init(unsigned long baudrate)
{
#if !USE_CAM
//Serielle Schnittstelle 1
//Enable TXEN im Register UCR TX-Data Enable
UCR =(1 << TXEN | 1 << RXEN | 1<< RXCIE);
// 0 = Parity Mode Disabled
// 1 = Parity Mode Enabled, Even Parity
// 2 = Parity Mode Enabled, Odd Parity
UCSRC = 0x04 + ((0+1)<<4);
UCSRC |= (1<<USBS);

//Teiler wird gesetzt
UBRR=(F_CPU / (baudrate * 16L) - 1);
UBRRH = ((F_CPU / (baudrate * 16L) - 1)>>8);
usart_status.usart_disable = 0;
#endif //USE_CAM
}

in der UART.h folgende :
#if defined (__AVR_ATmega644__) || defined (__AVR_ATmega644P__)
#define USR UCSR0A
#define UCR UCSR0B
#define UCSRC UCSR0C
#define UBRR UBRR0L
#define UBRRH UBRR0H
#define EICR EICRB
#define TXEN TXEN0
#define RXEN RXEN0
#define RXCIE RXCIE0
#define USBS USBS0
#define UDR UDR0
#define UDRE UDRE0
#define USART_RX USART0_RX_vect
#endif

Damit funkt die RS232 schon mal mit den richtigen parametern ... jetzt mal sehen ob ich auch meine LED-Laufschrift damit angesprochen bekomme 8)

LG
Jogybaer
Nach oben

Antworten
  • Druckansicht

3 Beiträge • Seite 1 von 1

Zurück zu „ETH_M32_EX“



  • Foren-Übersicht
  • Alle Zeiten sind UTC+02:00
  • Alle Cookies löschen

Powered by phpBB® Forum Software © phpBB Limited

Deutsche Übersetzung durch phpBB.de

Datenschutz | Nutzungsbedingungen

 

 

sitemap  |    |  datenschutz   |  impressum