LIN_Uart.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. //==============================================================================
  2. // Purpose: Uart-Interface für das LINFlex-Modul des MPC5646
  3. //
  4. // Created on: 11.07.2012 by KIT-IPE (Fachgr.: Blank)
  5. //
  6. // History
  7. // 11.07.2012 neu, T. Maurer
  8. //==============================================================================
  9. #ifndef __LIN_H__
  10. #define __LIN_H__
  11. // Globale Datentypen
  12. #define USE_LINFLEX_MS_TAG
  13. #ifdef USE_LINFLEX_MS_TAG
  14. #define T_LINFLEX_TAG LINFLEX_MS_tag
  15. #else
  16. #define T_LINFLEX_TAG LINFLEX_M_tag
  17. #endif
  18. //API
  19. typedef struct {
  20. volatile struct T_LINFLEX_TAG *p_Modul; //Adresse des Moduls
  21. enum {LIN_Baud_115200} Baud_Setting;
  22. enum {parity_none, parity_even, parity_odd} ParityMode;
  23. enum {LIN0_PortB2=0,LIN4_PortA5,LIN1_PortC6} Port; //Auswahl der Rx/Tx-Port-Pins
  24. } LIN_config_t;
  25. //Konfiguration des LIN-Moduls
  26. extern int8_t LIN_init(LIN_config_t *const Config);
  27. //Initialisierung von LINFLEX-Registern und Port-Registern für dieUart-Übertragung.
  28. //Parameter LIN_config_t Config bestimmt die Einstellungen des Moduls
  29. //return -1 wenn fehlerhafte Werte in Config
  30. //return 0 sonst
  31. extern uint8_t LIN_checkErrFlags(LIN_config_t *const p_Config);
  32. //liest das Uart-Status-Register UARTSR des LIN-Moduls
  33. //und setzt die Flags zurück
  34. //return Byte mit Flags:
  35. // bit0 : Fehler im Datenformat
  36. // bit1 : Fifo/Buffer-Überlauf
  37. extern int8_t LIN_push(LIN_config_t *const p_Config, const int16_t data);
  38. //ueberprueft, ob eine alte Uebertragung noch laeuft und
  39. //schreibt ein Byte auf den Tx-Puffer
  40. //return -1 , wenn Buffer noch nicht frei
  41. //return 0 , wenn Byte auf Buffer geschrieben wurde
  42. // - TX-Fifo funktioniert nicht (?) - deshalb Buffer-Modus
  43. extern int8_t LIN_pop(LIN_config_t *const p_Config, int16_t *const data);
  44. //ueberprueft, ob der Rx-Fifo leer ist. Wenn nicht, wird das naechste Byte gelesen
  45. //return -1 , wenn RxFifo leer
  46. //return 0 , wenn Byte gelesen
  47. extern int8_t LIN_Clear_RxFifo(LIN_config_t *const p_Config);
  48. //leert den Rx-Fifo
  49. #endif /*ifndef*/