|
- /*******************************************************************************
- * *
- * Copyright 2010 Rheinmetall Canada Inc. *
- * *
- * No part of this document may be reproduced, stored in *
- * a retrieval system, or transmitted, in any form or by any means, *
- * electronic, mechanical, photocopying, recording, or otherwise, *
- * without the prior written permission of Rheinmetall Canada Inc. *
- * *
- *******************************************************************************/
- /*
- Description:
- This is a template file for standard C header file.
-
- */
-
- /* ************************************************************************** */
- /* ¤Revision:
- 000 20100616 JFM,
- Original version.
-
- ### YYYYMMDD Initial, Bug Identification
- Change description.
- */
-
- #ifndef INTERNAL_UART_H
- #define INTERNAL_UART_H
-
- /* ************************************************************************** */
- /* Includes */
-
- /* ************************************************************************** */
- /* Defines */
- #define INTERNAL_UART_BUFFER_DEPTH 1//4//16 //JFM 2012-08-27
- #define USE_TX_INTERNAL_BUFFER
-
- #define INTERNAL_UART1_TX_PIN_DIR TRISFbits.TRISF3
- #define INTERNAL_UART1_TX_PIN LATFbits.LATF3
-
- #define INTERNAL_UART2_TX_PIN_DIR TRISFbits.TRISF5
- #define INTERNAL_UART2_TX_PIN LATFbits.LATF5
-
- #define INTERNAL_UART5_TX_PIN_DIR TRISBbits.TRISB14
- #define INTERNAL_UART5_TX_PIN LATBbits.LATB14
-
- /* ************************************************************************** */
- /* Type definitions */
- typedef enum
- {
- INTERNAL_UART_PORT_1,
- INTERNAL_UART_PORT_2,
- INTERNAL_UART_PORT_5,
- MAX_INTERNAL_UART_PORT
- }eInternalUartPorts;
-
- typedef enum
- {
- INT_UART_NO_PARITY,
- INT_UART_EVEN_PARITY,
- INT_UART_ODD_PARITY
- }eIntUartParity;
-
- typedef enum
- {
- INT_UART_ONE_STOP_BIT,
- INT_UART_TWO_STOP_BITS
- }eIntUartStopBits;
-
- typedef enum
- {
- INT_UART_INTERRUPT_OFF,
- INT_UART_INTERRUPT_ON
- }eIntUartInterruptOnOff;
-
- typedef struct
- {
- char *pcTxDataPtr;
- char acIntUartTxFIFO[INTERNAL_UART_BUFFER_DEPTH];
- int iNbFIFOPendingBytes;
- int iTxDataSize;
- int iTxDataCounter;
- int iIsBusy;
- int iIsOpened;
- int iUartHandle;
-
- }stInternalUartData;
-
- /* ************************************************************************** */
- /* Prototypes */
- void InternalUartInit(void);
- int OpenInternalPort(int p_iUartPort,int p_iUartHandle,char *p_pcHeadPtr, char *p_pcTailPtr, int p_iBaudRate, int p_iNbStopBits, int p_iParityEnable);
- int SendInternalUartData(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort, char *p_pcSourceBufferHead, char *p_pcSourceBufferTail);
- int SetIntalUartInterrupts(int p_iUartPort, int p_iRxInterrupt,int p_iTxInterrupt);
- int SendInternalUartDataBlocking(char *p_pcDataBuf, int p_iDataSize, int p_iUartPort);
- void TickInternalUart(void);
- void ResetUart1(void);
- void ResetUart2(void);
- void ResetUart5(void);
-
- #endif
- //EOF
|