Serial_Init_IRQ (AVR32Bit)

Serielle Funktionen        Beispiel


Syntax

 

void Serial_Init_IRQ(byte serportbyte ramaddr[], word recvlen,

                     word sendlenbyte pardword baud);

 

Sub Serial_Init_IRQ(serport As Byte,ByRef ramaddr As Byte,recvlen As Word,

                    sendlen As Wordpar As Bytebaud As ULong)

 

 

Beschreibung

 

Die serielle Schnittstelle wird für die Benutzung im Interrupt Modus initialisiert. Der Anwender muss eine globale Variable als Puffer bereitstellen. In diesem Puffer werden die empfangenen Daten, sowie die zu sendenden Daten abgelegt. Für die Größe des Puffers gibt es ein #define SERIAL_BUF. Möchte man ein byte Array definieren mit X bytes Empfangspuffer und Y bytes Sendepuffer, schreibt man "byte buf[SERIAL_BUF(X,Y)];" (siehe auch Beispiel). Der Sende- und der Empfangspuffer kann jeweils bis zu 65535 Zeichen aufnehmen, ist aber natürlich durch die Grenze des RAMs beschränkt.

 

Für par wird der Wert durch Oderieren der vordefinierten Bitwerte zusammengestellt. Man oderiert erst Zeichenlänge, dann Anzahl der Stopbits und dann Parity. Z.B. "SR_7BIT | SR_2STOP | SR_EVEN_PAR" für 7 Bit pro Zeichen, 2 Stop Bit und gerade Parität. Diese Werte sähen in BASIC Syntax wie folgt aus: "SR_7BIT Or SR_2STOP Or SR_EVEN_PAR".

 

 Der vom Benutzer zur Verfügung gestellte RAM Puffer muss während der Benutzung der seriellen Schnittstelle reserviert bleiben. Da lokale Variablen nach Verlassen der Funktion freigegeben werden, ist es meistens sinnvoll den Puffer als globale Variable zu deklarieren.

 

 Wenn im seriellen Interrupt Modus gearbeitet wird, immer Serial_ReadExt() benutzen. Serial_Read() funktioniert nur im normalen (polled) Modus.

 

Parameter

 

serport Schnittstellennummer (0 = 1.serielle, 1 = 2.serielle etc..)
ramaddr Adresse des Puffers
recvlen Größe des Empfangspuffers
sendlen Größe des Sendepuffers
par Schnittstellenparameter (siehe Tabelle)
baud Baudrate

 

 

Tabelle par Definitionen:

 

Definition

Funktion

 

 

SR_5BIT

5 Bit Zeichenlänge

SR_6BIT

6 Bit Zeichenlänge

SR_7BIT

7 Bit Zeichenlänge

SR_8BIT

8 Bit Zeichenlänge

 

 

SR_1STOP

1 Stop Bit

SR_2STOP

2 Stop Bit

 

 

SR_NO_PAR

no Parity

SR_EVEN_PAR

even Parity

SR_ODD_PAR

odd Parity