1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- //==============================================================================
- // Purpose: Uart-Interface für das LINFlex-Modul des MPC5646
- //
- // Created on: 11.07.2012 by KIT-IPE (Fachgr.: Blank)
- //
- // History
- // 11.07.2012 neu, T. Maurer
- //==============================================================================
- #ifndef __LIN_H__
- #define __LIN_H__
- // Globale Datentypen
- #define USE_LINFLEX_MS_TAG
- #ifdef USE_LINFLEX_MS_TAG
- #define T_LINFLEX_TAG LINFLEX_MS_tag
- #else
- #define T_LINFLEX_TAG LINFLEX_M_tag
- #endif
- //API
- typedef struct {
- volatile struct T_LINFLEX_TAG *p_Modul; //Adresse des Moduls
- enum {LIN_Baud_115200} Baud_Setting;
- enum {parity_none, parity_even, parity_odd} ParityMode;
- enum {LIN0_PortB2=0,LIN4_PortA5,LIN1_PortC6} Port; //Auswahl der Rx/Tx-Port-Pins
- } LIN_config_t;
- //Konfiguration des LIN-Moduls
- extern int8_t LIN_init(LIN_config_t *const Config);
- //Initialisierung von LINFLEX-Registern und Port-Registern für dieUart-Übertragung.
- //Parameter LIN_config_t Config bestimmt die Einstellungen des Moduls
- //return -1 wenn fehlerhafte Werte in Config
- //return 0 sonst
- extern uint8_t LIN_checkErrFlags(LIN_config_t *const p_Config);
- //liest das Uart-Status-Register UARTSR des LIN-Moduls
- //und setzt die Flags zurück
- //return Byte mit Flags:
- // bit0 : Fehler im Datenformat
- // bit1 : Fifo/Buffer-Überlauf
- extern int8_t LIN_push(LIN_config_t *const p_Config, const int16_t data);
- //ueberprueft, ob eine alte Uebertragung noch laeuft und
- //schreibt ein Byte auf den Tx-Puffer
- //return -1 , wenn Buffer noch nicht frei
- //return 0 , wenn Byte auf Buffer geschrieben wurde
- // - TX-Fifo funktioniert nicht (?) - deshalb Buffer-Modus
- extern int8_t LIN_pop(LIN_config_t *const p_Config, int16_t *const data);
- //ueberprueft, ob der Rx-Fifo leer ist. Wenn nicht, wird das naechste Byte gelesen
- //return -1 , wenn RxFifo leer
- //return 0 , wenn Byte gelesen
- extern int8_t LIN_Clear_RxFifo(LIN_config_t *const p_Config);
- //leert den Rx-Fifo
- #endif /*ifndef*/
|