# 1 "../../../Package/Cdd/CddBoost/Gen/CddBoost.c" # 1 "" 1 # 1 "" 3 # 387 "" 3 # 1 "" 1 # 1 "" 2 # 1 "../../../Package/Cdd/CddBoost/Gen/CddBoost.c" 2 # 1 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 1 # 29 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" # 1 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Types.h" 1 # 28 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Types.h" # 1 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drvw_Types.h" 1 # 28 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drvw_Types.h" # 1 "../Generated/inc\\Spi_Drvw_Cfg.h" 1 # 28 "../Generated/inc\\Spi_Drvw_Cfg.h" # 1 "../Generated/inc/Spi_Drvw_PBcfg.h" 1 # 29 "../Generated/inc\\Spi_Drvw_Cfg.h" 2 # 29 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drvw_Types.h" 2 # 1 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drv_Types.h" 1 # 28 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drv_Types.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" 1 # 30 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/Platform_Types.h" 1 # 86 "../../../mcal/Base_ZX_K14xM/Inc/Platform_Types.h" typedef unsigned char boolean; typedef unsigned char uint8; typedef unsigned short uint16; typedef unsigned int uint32; typedef unsigned long long uint64; typedef signed char sint8; typedef signed short sint16; typedef signed int sint32; typedef signed long long sint64; typedef unsigned long uint8_least; typedef unsigned long uint16_least; typedef unsigned long uint32_least; typedef signed long sint8_least; typedef signed long sint16_least; typedef signed long sint32_least; typedef float float32; typedef double float64; typedef void *VoidPtr; typedef const void *ConstVoidPtr; # 31 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/Compiler.h" 1 # 31 "../../../mcal/Base_ZX_K14xM/Inc/Compiler.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/Compiler_Cfg.h" 1 # 32 "../../../mcal/Base_ZX_K14xM/Inc/Compiler.h" 2 # 32 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" 2 # 63 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" typedef unsigned char StatusType; # 104 "../../../mcal/Base_ZX_K14xM/Inc\\Std_Types.h" typedef uint8 Std_ReturnType; typedef uint8 Std_TransformerClass; typedef uint8 Std_TransformerForwardCode; typedef uint8 Std_MessageTypeType; typedef uint8 Std_MessageResultType; typedef struct { uint16 vendorID; uint16 moduleID; uint8 sw_major_version; uint8 sw_minor_version; uint8 sw_patch_version; } Std_VersionInfoType; typedef struct { uint8 errorCode; Std_TransformerClass transformerClass; } Std_TransformerError; typedef struct { Std_TransformerForwardCode errorCode; Std_TransformerClass transformerClass; } Std_TransformerForward; typedef Std_ReturnType (*Std_ExtractProtocolHeaderFieldsType)(const uint8 *buffer, uint32 bufferLength, Std_MessageTypeType *messageType, Std_MessageResultType *messageResult); # 29 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drv_Types.h" 2 # 1 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 1 # 29 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" # 1 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" 1 # 30 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" # 1 "../Generated/inc\\McalLib_Cfg.h" 1 # 31 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" 2 # 273 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" static inline uint32 McalLib_ReadControlReg(void) { uint32 res; __asm("MRS %0,CONTROL" : "=r" (res)); return res; } # 290 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" static inline uint32 McalLib_ReadIpsrReg(void) { uint32 res; __asm("MRS %0,IPSR" : "=r" (res)); return res; } # 305 "../../../mcal/McalLib_ZX_K14xM/Inc/McalLib_Compiler.h" static inline uint32 McalLib_ReadPriMaskReg(void) { uint32 res; __asm("MRS %0,PRIMASK" : "=r" (res)); return res; } # 30 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 # 184 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" typedef enum { MCALLIB_COUNTER_SOFTWARE, MCALLIB_COUNTER_OS, } McalLib_CounterType; typedef struct { uint32 CounterId; uint32 CounterFreq; } McalLib_ConfigType; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 876 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section rodata = ".mcal_config_data" # 211 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 extern const McalLib_ConfigType *const McalLib_PreDefinedConfigPtr[(1U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 892 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section rodata = "" # 216 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 # 230 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" extern void Sys_SystemReset(void); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section text = ".mcal_code" # 234 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 void McalLib_Init(void); # 254 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" Std_ReturnType McalLib_GetCounterValue(McalLib_CounterType Counter, uint32 *Value); # 270 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" Std_ReturnType McalLib_GetElapsedValue(McalLib_CounterType Counter, uint32 *const CounterValue, uint32 *ElapsedValue); # 282 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" uint32 McalLib_MicroSecToTicks(McalLib_CounterType Counter, uint32 MicroSecond); # 296 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" void McalLib_SetCounterFreq(McalLib_CounterType Counter, uint32 Freq); # 309 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" static inline void McalLib_Assert(const uint8 *File, uint32 Line) { (void)File; (void)Line; for (;;) { } } # 327 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" void McalLib_SuspendAllInterrupts(void); void McalLib_ResumeAllInterrupts(void); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\McalLib_MemMap.h" #pragma clang section text = "" # 339 "../../../mcal/McalLib_ZX_K14xM/Inc\\McalLib.h" 2 # 30 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drv_Types.h" 2 # 1 "../Generated/inc\\Spi_Drv_Cfg.h" 1 # 28 "../Generated/inc\\Spi_Drv_Cfg.h" # 1 "../Generated/inc/Spi_Drv_PBcfg.h" 1 # 29 "../Generated/inc\\Spi_Drv_Cfg.h" 2 # 31 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drv_Types.h" 2 # 84 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drv_Types.h" typedef enum { SPI_DRV_EVENT_SUCCESS = 0U, SPI_DRV_EVENT_FAULT } Spi_Drv_EventType; typedef void (*Spi_Drv_CallbackType)(uint8 Instance, Spi_Drv_EventType Event); typedef enum { SPI_DRV_POLLING = 0U, SPI_DRV_INTERRUPT } Spi_Drv_AsyncModeType; typedef enum { SPI_DRV_UNINIT = 0U, SPI_DRV_IDLE, SPI_DRV_BUSY, SPI_DRV_FAULT } Spi_Drv_StatusType; typedef struct { uint8 FrameSize; boolean Lsb; uint32 DefaultData; } Spi_Drv_DeviceParamType; typedef struct { uint8 Instance; uint8 CsIdentifier; uint8 ClockPhase; uint8 ClockPolarity; uint32 ClockDivider; Spi_Drv_DeviceParamType *DeviceParamPtr; } Spi_Drv_ExternalDeviceType; typedef struct { uint8 Instance; boolean DmaUsed; uint8 TxDmaChannel; uint8 RxDmaChannel; Spi_Drv_AsyncModeType AsyncMode; } Spi_Drv_PhyUnitConfigType; typedef struct { Spi_Drv_AsyncModeType AsyncMode; Spi_Drv_StatusType Status; uint8 *RxBuffer; uint8 *TxBuffer; Spi_Drv_CallbackType Callback; uint16 RxIndex; uint16 TxIndex; uint16 ExpectReadNum; uint16 ExpectWriteNum; boolean ContinueTransferFlag; boolean FirstTransferFlag; const Spi_Drv_PhyUnitConfigType *PhyUnitConfig; const Spi_Drv_ExternalDeviceType *ExternalDevice; uint8 FrameSize; boolean TxLsb; boolean NextTransferConfigAvailable; uint8 CurrentTxFifoSlot; boolean TxDoneFlag; } Spi_Drv_TransferConfigType; # 30 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drvw_Types.h" 2 # 88 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Drvw_Types.h" typedef enum { IB = 0, EB } Spi_Drvw_BufferType; typedef enum { SPI_DRVW_POLLING_MODE = 0, SPI_DRVW_INTERRUPT_MODE } Spi_Drvw_AsyncModeType; typedef uint8 Spi_Drvw_HWUnitType; typedef uint16 Spi_Drvw_NumberOfDataType; typedef uint8 Spi_Drvw_DataBufferType; typedef struct { uint8 Instance; uint32 IsSync; uint32 SpiCoreUse; const Spi_Drv_PhyUnitConfigType *PhyUnitConfigPtr; } Spi_Drvw_HWUnitConfigType; typedef struct { const Spi_Drvw_HWUnitConfigType *DrvwHWUnitConfig; } Spi_Drvw_HWUnitConfigListType; typedef struct { uint8 Instance; uint32 SpiCoreUse; const Spi_Drv_ExternalDeviceType *DrvExternalDeviceConfigPtr; } Spi_Drvw_ExternalDeviceConfigType; typedef struct { const Spi_Drvw_ExternalDeviceConfigType *DrvwExternalDeviceConfigPtr; } Spi_Drvw_ExternalDeviceListType; typedef struct { Spi_Drvw_DataBufferType *TxBuffer; Spi_Drvw_DataBufferType *RxBuffer; } Spi_Drvw_BufferDescriptorType; typedef struct { uint8 Flags; Spi_Drvw_NumberOfDataType Length; } Spi_Drvw_ChannelStateType; typedef struct { Spi_Drvw_BufferType BufferType; uint8 FrameSize; boolean Lsb; uint32 DefaultTransmitValue; Spi_Drvw_NumberOfDataType Length; Spi_Drvw_BufferDescriptorType *BufferDescriptor; uint32 SpiCoreUse; Spi_Drvw_ChannelStateType *ChannelState; } Spi_Drvw_ChannelConfigType; # 29 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Types.h" 2 # 1 "../Generated/inc\\Spi_Cfg.h" 1 # 28 "../Generated/inc\\Spi_Cfg.h" # 1 "../Generated/inc/Spi_PBcfg.h" 1 # 66 "../Generated/inc/Spi_PBcfg.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section text = ".mcal_code" # 67 "../Generated/inc/Spi_PBcfg.h" 2 extern void Ex_Spi_StpJobStartNotification(void); extern void Ex_Spi_SbcJobStartNotification(void); extern void Ex_Spi_BuckJobStartNotification(void); extern void Ex_Spi_BoostJobStartNotification(void); extern void Ex_Spi_StpJobEndNotification(void); extern void Ex_Spi_SbcJobEndNotification(void); extern void Ex_Spi_BuckJobEndNotification(void); extern void Ex_Spi_BoostJobEndNotification(void); extern void Ex_Spi_StpSequenceEndNotification(void); extern void Ex_Spi_SbcSequenceEndNotification(void); extern void Ex_Spi_BuckSequenceEndNotification(void); extern void Ex_Spi_BoostSequenceEndNotification(void); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section text = "" # 132 "../Generated/inc/Spi_PBcfg.h" 2 # 29 "../Generated/inc\\Spi_Cfg.h" 2 # 30 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Types.h" 2 # 99 "../../../mcal/Spi_ZX_K14xM/Inc/Spi_Types.h" typedef enum { SPI_UNINIT = 0, SPI_IDLE, SPI_BUSY } Spi_StatusType; typedef enum { SPI_JOB_OK = 0, SPI_JOB_PENDING, SPI_JOB_FAILED, SPI_JOB_QUEUED } Spi_JobResultType; typedef enum { SPI_SEQ_OK = 0, SPI_SEQ_PENDING, SPI_SEQ_FAILED, SPI_SEQ_CANCELLED } Spi_SeqResultType; typedef enum { SPI_POLLING_MODE = 0, SPI_INTERRUPT_MODE } Spi_AsyncModeType; typedef Spi_Drvw_DataBufferType Spi_DataBufferType; typedef Spi_Drvw_NumberOfDataType Spi_NumberOfDataType; typedef uint8 Spi_ChannelType; typedef uint16 Spi_JobType; typedef uint8 Spi_SequenceType; typedef Spi_Drvw_HWUnitType Spi_HWUnitType; typedef uint8 Spi_ExternalDeviceType; typedef void(Spi_NotifyType)(void); typedef struct { Spi_JobType JobNum; uint32 SpiCoreUse; const Spi_JobType *JobIndexList; Spi_NotifyType(*EndNotification); uint8 Interruptible; } Spi_SequenceConfigType; typedef struct { const Spi_SequenceConfigType *SeqConfig; } Spi_SequenceConfigListType; typedef struct { Spi_SeqResultType Result; const Spi_SequenceConfigType *Sequence; const Spi_JobType *CurrentJobIndexPointer; Spi_JobType RemainingJobs; } Spi_SequenceStateType; typedef struct { Spi_JobResultType Result; Spi_SequenceStateType *AsyncSequenceState; Spi_JobType AsyncNextJob; } Spi_JobStateType; typedef struct { Spi_ChannelType ChannelNum; const Spi_ChannelType *ChannelIndexList; Spi_NotifyType(*EndNotification); Spi_NotifyType(*StartNotification); sint8 Priority; uint32 SpiCoreUse; Spi_JobStateType *JobState; Spi_HWUnitType HWUnit; Spi_ExternalDeviceType ExternalDevice; const Spi_Drvw_ExternalDeviceListType *ExternalDeviceConfig; } Spi_JobConfigType; typedef struct { const Spi_JobConfigType *JobConfig; } Spi_JobConfigListType; typedef struct { Spi_JobType ScheduledJobsListHead[(4U)]; Spi_JobType ScheduledJobsListTail[(4U)]; sint8 MaxScheduledPriority; Spi_StatusType Status; Spi_ChannelType Channel; Spi_JobType Job; } Spi_HWUnitQueue; typedef struct { const Spi_Drvw_ChannelConfigType *ChannelConfig; } Spi_ChannelConfigListType; typedef struct { uint16 MaxExternalDevice; Spi_ChannelType SpiMaxChannel; Spi_JobType SpiMaxJob; Spi_SequenceType SpiMaxSequence; uint32 SpiCoreUse; const Spi_ChannelConfigListType *ChannelConfigList; const Spi_JobConfigListType *JobConfigList; const Spi_SequenceConfigListType *SequenceConfigList; const Spi_Drvw_ExternalDeviceListType *ExternalDeviceConfigList; const Spi_Drvw_HWUnitConfigListType *HWUnitConfigList; } Spi_ConfigType; # 30 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 2 # 296 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 876 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section rodata = ".mcal_config_data" # 297 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 2 extern const Spi_ConfigType Spi_Config; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 892 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section rodata = "" # 304 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 1436 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section bss = ".mcal_bss" # 308 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 2 extern Spi_JobStateType Spi_JobStateArray[(4U)]; extern Spi_Drvw_ChannelStateType Spi_ChannelStateArray[(4U)]; # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 1452 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section bss = "" # 315 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 2 # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 1072 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section text = ".mcal_code" # 324 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 2 # 335 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" void Spi_Init(const Spi_ConfigType *ConfigPtr); # 348 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_DeInit(void); # 368 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_WriteIB(Spi_ChannelType Channel, const Spi_DataBufferType *DataBufferPtr); # 385 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_AsyncTransmit(Spi_SequenceType Sequence); # 408 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_ReadIB(Spi_ChannelType Channel, Spi_DataBufferType *DataBufferPtr); # 431 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_SetupEB(Spi_ChannelType Channel, Spi_DataBufferType *SrcDataBufferPtr, Spi_DataBufferType *DesDataBufferPtr, Spi_NumberOfDataType Length); # 448 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Spi_StatusType Spi_GetStatus(void); # 464 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Spi_JobResultType Spi_GetJobResult(Spi_JobType Job); # 480 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Spi_SeqResultType Spi_GetSequenceResult(Spi_SequenceType Sequence); # 494 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" void Spi_GetVersionInfo(Std_VersionInfoType *versioninfo); # 511 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_SyncTransmit(Spi_SequenceType Sequence); # 530 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Spi_StatusType Spi_GetHWUnitStatus(Spi_HWUnitType HWUnit); # 547 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" void Spi_Cancel(Spi_SequenceType Sequence); # 564 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_SetAsyncMode(Spi_AsyncModeType Mode); # 579 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" Std_ReturnType Spi_SetHWUnitAsyncMode(Spi_HWUnitType HWUnit, Spi_AsyncModeType Mode); # 1 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" 1 # 1088 "../../../mcal/Base_ZX_K14xM/Inc/MemMap\\Spi_MemMap.h" #pragma clang section text = "" # 584 "../../../mcal/Spi_ZX_K14xM/Inc\\Spi.h" 2 # 2 "../../../Package/Cdd/CddBoost/Gen/CddBoost.c" 2 void SpiSend(uint8 address,uint8 data) { uint8 buffer[2]; buffer[0] = data; buffer[1] = address; Spi_SetAsyncMode(SPI_INTERRUPT_MODE); Spi_SetupEB(((Spi_ChannelType)3U), buffer,0,2); Spi_AsyncTransmit(((Spi_SequenceType)3U)); } void CddBoostInit(void) { SpiSend(0x00,0x00); SpiSend(0x03,0x00); SpiSend(0x04,0x00); SpiSend(0x05,0x00); SpiSend(0x06,0x00); SpiSend(0x1A,0x56); SpiSend(0x1B,0x11); SpiSend(0x15,0xA6); SpiSend(0x14,0x55); SpiSend(0x13,0x11); SpiSend(0x12,0x11); SpiSend(0x11,0x0F); SpiSend(0x10,0xD8); SpiSend(0x0F,0x00); SpiSend(0x0E,0x00); SpiSend(0x0D,0x3E); SpiSend(0x0C,0x0F); SpiSend(0x0B,0x0F); SpiSend(0x0A,0x00); SpiSend(0x09,0x0D); SpiSend(0x08,0x46); SpiSend(0x07,0x46); SpiSend(0x06,0x55); SpiSend(0x05,0x5D); SpiSend(0x04,0x55); SpiSend(0x03,0x55); SpiSend(0x02,0x00); SpiSend(0x01,0x0F); SpiSend(0x1F,0x30); SpiSend(0x20,0x20); SpiSend(0x1C,0x00); SpiSend(0x00,0x03); }