//************************************************************************************
//**  
//**  Source name:   D:\Flowcode Testing\UART_Test_2_NOT Working.fcfx
//**  Title:         
//**  Description:   
//**  Device:        PIC.18F.18F46K80
//**  
//**  Generated by:  Flowcode v10.1.2.40
//**  Date:          Thursday, April 17, 2025 10:24:16
//**  Users:         10
//**  Registered to: FCcompmaker (CompMaker)
//**  Licence key: WNV3JN
//**  
//**  
//**  https://www.flowcode.co.uk
//**  
//************************************************************************************


#define MX_PIC

#define MX_CAL_PIC

#define MX_CLK_SPEED 64000000

#define FCP_NULL Unconnected_Port


#include <xc.h>
#include <math.h>
//Chip Configuration Settings
__PROG_CONFIG(0x1, 0x38B3);
__PROG_CONFIG(0x2, 0x50FF);
__PROG_CONFIG(0x3, 0xFFFF);
__PROG_CONFIG(0x4, 0xFFFF);
__PROG_CONFIG(0x5, 0xBFF0);
__PROG_CONFIG(0x6, 0x9FF0);
__PROG_CONFIG(0x7, 0xBFF0);

/*========================================================================*\
   Use :Include the type definitions
\*========================================================================*/
#include "C:\ProgramData\MatrixTSL\FlowcodeV10\CAL\internals.c"



MX_UINT32 FCLV_LOOP1;
MX_UINT32 FCLV_LOOP2;


/*========================================================================*\
   Use :TypeConversionsFree1
       :Macro function declarations
\*========================================================================*/

/*=----------------------------------------------------------------------=*\
   Use :TypeConversionsFree1
       :Supplementary defines
\*=----------------------------------------------------------------------=*/

#ifndef MX_UNIONTYPE
 #define MX_UNIONTYPE
 typedef union
{
  MX_FLOAT AsFloat;
  MX_UINT32 AsLong;
  MX_UINT16 AsInt[2];
  MX_UINT8  AsByte[4];
} MX_Union_Type;
 MX_Union_Type MX_Conv_Var;
#endif


void FCD_02573_TypeConversionsFree1__SetInt(MX_UINT8 FCL_INDEX, MX_UINT16 FCL_VALUE);
void FCD_02573_TypeConversionsFree1__SetLong(MX_UINT32 FCL_VALUE);
MX_FLOAT FCD_02573_TypeConversionsFree1__GetFloat();
MX_UINT32 FCD_02573_TypeConversionsFree1__GetLong();
MX_UINT16 FCD_02573_TypeConversionsFree1__GetInt(MX_UINT8 FCL_INDEX);
void FCD_02573_TypeConversionsFree1__SetByte(MX_UINT8 FCL_INDEX, MX_UINT8 FCL_VALUE);
MX_UINT8 FCD_02573_TypeConversionsFree1__GetByte(MX_UINT8 FCL_INDEX);
void FCD_02573_TypeConversionsFree1__SetFloat(MX_FLOAT FCL_VALUE);

/*========================================================================*\
   Use :TypeConversionsFree
       :Macro function declarations
\*========================================================================*/

/*=----------------------------------------------------------------------=*\
   Use :TypeConversionsFree
       :Supplementary defines
\*=----------------------------------------------------------------------=*/

#ifndef MX_UNIONTYPE
 #define MX_UNIONTYPE
 typedef union
{
  MX_FLOAT AsFloat;
  MX_UINT32 AsLong;
  MX_UINT16 AsInt[2];
  MX_UINT8  AsByte[4];
} MX_Union_Type;
 MX_Union_Type MX_Conv_Var;
#endif


void FCD_02572_TypeConversionsFree__SetInt(MX_UINT8 FCL_INDEX, MX_UINT16 FCL_VALUE);
void FCD_02572_TypeConversionsFree__SetLong(MX_UINT32 FCL_VALUE);
MX_FLOAT FCD_02572_TypeConversionsFree__GetFloat();
MX_UINT32 FCD_02572_TypeConversionsFree__GetLong();
MX_UINT16 FCD_02572_TypeConversionsFree__GetInt(MX_UINT8 FCL_INDEX);
void FCD_02572_TypeConversionsFree__SetByte(MX_UINT8 FCL_INDEX, MX_UINT8 FCL_VALUE);
MX_UINT8 FCD_02572_TypeConversionsFree__GetByte(MX_UINT8 FCL_INDEX);
void FCD_02572_TypeConversionsFree__SetFloat(MX_FLOAT FCL_VALUE);

/*========================================================================*\
   Use :TypeConversionsFree1
       :Macro function declarations
\*========================================================================*/

/*=----------------------------------------------------------------------=*\
   Use :TypeConversionsFree1
       :Supplementary defines
\*=----------------------------------------------------------------------=*/

#ifndef MX_UNIONTYPE
 #define MX_UNIONTYPE
 typedef union
{
  MX_FLOAT AsFloat;
  MX_UINT32 AsLong;
  MX_UINT16 AsInt[2];
  MX_UINT8  AsByte[4];
} MX_Union_Type;
 MX_Union_Type MX_Conv_Var;
#endif


void FCD_02571_TypeConversionsFree1__SetInt(MX_UINT8 FCL_INDEX, MX_UINT16 FCL_VALUE);
void FCD_02571_TypeConversionsFree1__SetLong(MX_UINT32 FCL_VALUE);
MX_FLOAT FCD_02571_TypeConversionsFree1__GetFloat();
MX_UINT32 FCD_02571_TypeConversionsFree1__GetLong();
MX_UINT16 FCD_02571_TypeConversionsFree1__GetInt(MX_UINT8 FCL_INDEX);
void FCD_02571_TypeConversionsFree1__SetByte(MX_UINT8 FCL_INDEX, MX_UINT8 FCL_VALUE);
MX_UINT8 FCD_02571_TypeConversionsFree1__GetByte(MX_UINT8 FCL_INDEX);
void FCD_02571_TypeConversionsFree1__SetFloat(MX_FLOAT FCL_VALUE);

/*========================================================================*\
   Use :cal_uart
       :Macro function declarations
\*========================================================================*/
#define MX_UART_UseTX_1 (1)
#define MX_UART_TX_TRIS_1 trisc
#define MX_UART_REF1 
#define MX_UART_RTS_PIN_1 (2)
#define MX_UART_DBITS_1 (8)
#define MX_UART_RETURN_1 (0)
#define MX_UART_RX_PORT_1 portc
#define MX_UART_RTS_PORT_1 portb
#define MX_UART_ECHO_1 (0)
#define MX_UART_FLOWEN_1 (0)
#define MX_UART_CTS_PORT_1 portb
#define MX_UART_TX_PIN_1 (6)
#define MX_UART_RX_TRIS_1 trisc
#define MX_UART_BAUD_1 (19200)
#define MX_UART_RTS_TRIS_1 trisb
#define MX_UART_TX_PORT_1 portc
#define MX_UART_RX_PIN_1 (7)
#define MX_UART_UseRX_1 (1)
#define MX_UART_CTS_TRIS_1 trisb
#define MX_UART_CHANNEL_1 (1)
#define MX_UART_INT_1 (0)
#define MX_UART_CTS_PIN_1 (1)

MX_UINT8 FCD_05481_cal_uart__ControlPin(MX_UINT8 FCL_PIN, MX_UINT8 FCL_STATE);
void FCD_05481_cal_uart__SendString(MX_CHAR *FCL_DATA, MX_UINT16 FCLsz_DATA);
void FCD_05481_cal_uart__Prv_TextConsole(MX_CHAR *FCL_STR, MX_UINT16 FCLsz_STR, MX_UINT8 FCL_COLOUR);
void FC_CAL_UART_UpdateBaud_1(MX_UINT8 FCL_NEW_BAUD);
MX_UINT8 FCD_05481_cal_uart__TestProperty(MX_UINT8 FCL_PROPERTY);
void FCD_05481_cal_uart__SendNumber(MX_SINT32 FCL_NUMBER);
void FCD_05481_cal_uart__Prv_SimShowWaveform(MX_UINT8 FCL_TXRX, MX_UINT16 FCL_DATA);
MX_SINT16 FC_CAL_UART_Receive_1(MX_UINT8 FCL_TIMEOUT);
void FC_CAL_UART_Send_1(MX_UINT16 FCL_CHAR);
void FCD_05481_cal_uart__SendByteArray(MX_UINT8 *FCL_DATA, MX_UINT16 FCLsz_DATA, MX_UINT16 FCL_NUMBYTES);
void FC_CAL_UART_Init_1();
void FC_CAL_UART_Delay_1();
void FC_CAL_UART_Uninit_1();
MX_UINT8 FCD_05481_cal_uart__ReceiveByteArray(MX_UINT8 *FCL_DATA, MX_UINT16 FCLsz_DATA, MX_UINT16 FCL_NUMBYTES, MX_UINT8 FCL_TIMEOUT);
MX_UINT8 FCD_05481_cal_uart__ReceiveString(MX_CHAR *FCL_STRINGDATA, MX_UINT16 FCLsz_STRINGDATA, MX_UINT16 FCL_NUMBYTES, MX_UINT8 FCL_TIMEOUT);
void FCD_047b1_UART_GSM__SendString(MX_CHAR *FCL_DATA, MX_UINT16 FCLsz_DATA);
MX_UINT8 FCD_047b1_UART_GSM__ReceiveINTArray(MX_UINT16 *FCL_DATA, MX_UINT16 FCLsz_DATA, MX_UINT16 FCL_NUMVALUES, MX_BOOL FCL_MSBFIRST, MX_UINT8 FCL_TIMEOUT);
MX_SINT32 FCD_047b1_UART_GSM__ReceiveNumber(MX_UINT8 FCL_TIMEOUT, MX_BOOL FCL_IGNOREDATA);
void FCD_047b1_UART_GSM__SendBinary16Bit(MX_UINT16 FCL_VALUE, MX_BOOL FCL_MSBFIRST);
void FCD_047b1_UART_GSM__SendINTArray(MX_UINT16 *FCL_DATA, MX_UINT16 FCLsz_DATA, MX_UINT16 FCL_NUMVALUES, MX_BOOL FCL_MSBFIRST);
void FCD_047b1_UART_GSM__SendNumber(MX_SINT32 FCL_NUMBER);
MX_UINT32 FCD_047b1_UART_GSM__ReceiveBinary32Bit(MX_BOOL FCL_MSBFIRST, MX_UINT8 FCL_TIMEOUT);
MX_FLOAT FCD_047b1_UART_GSM__ReceiveBinaryFloat(MX_BOOL FCL_MSBFIRST, MX_UINT8 FCL_TIMEOUT);
void FCD_047b1_UART_GSM__SendChar(MX_SINT16 FCL_CHAR);
void FCD_047b1_UART_GSM__SendByteArray(MX_UINT8 *FCL_DATA, MX_UINT16 FCLsz_DATA, MX_UINT16 FCL_NUMBYTES);
MX_UINT16 FCD_047b1_UART_GSM__ReceiveBinary16Bit(MX_BOOL FCL_MSBFIRST, MX_UINT8 FCL_TIMEOUT);
void FCD_047b1_UART_GSM__ChangeHWBaud(MX_UINT8 FCL_NEWBAUD);
MX_FLOAT FCD_047b1_UART_GSM__ReceiveFloat(MX_UINT8 FCL_TIMEOUT, MX_BOOL FCL_IGNOREDATA);
void FCD_047b1_UART_GSM__SendFloat(MX_FLOAT FCL_NUMBER);
void FCD_047b1_UART_GSM__SendHexNumber(MX_UINT32 FCL_NUMBER, MX_UINT8 FCL_NUMCHARS, MX_BOOL FCL_PREFIX);
MX_UINT32 FCD_047b1_UART_GSM__ReceiveHexNumber(MX_UINT8 FCL_TIMEOUT, MX_BOOL FCL_IGNOREDATA, MX_BOOL FCL_PREFIX);
void FCD_047b1_UART_GSM__SendBinary32Bit(MX_UINT32 FCL_VALUE, MX_BOOL FCL_MSBFIRST);
void FCD_047b1_UART_GSM__SendBinaryFloat(MX_FLOAT FCL_VALUE, MX_BOOL FCL_MSBFIRST);
MX_UINT8 FCD_047b1_UART_GSM__ReceiveByteArray(MX_UINT8 *FCL_DATA, MX_UINT16 FCLsz_DATA, MX_UINT16 FCL_NUMBYTES, MX_UINT8 FCL_TIMEOUT);
void FCD_047b1_UART_GSM__ReceiveString(MX_CHAR *FCR_RETVAL, MX_UINT16 FCRsz_RETVAL, MX_UINT8 FCL_TIMEOUT, MX_UINT16 FCL_NUMBYTES);
void FCD_047b1_UART_GSM__Initialise();
MX_SINT16 FCD_047b1_UART_GSM__ReceiveChar(MX_UINT8 FCL_TIMEOUT);

/*========================================================================*\
   Use :Include the chip adaption layer
\*========================================================================*/
#include "C:\ProgramData\MatrixTSL\FlowcodeV10\CAL\includes.c"

