102 lines
2.0 KiB
C
102 lines
2.0 KiB
C
#include "hal_defs.h"
|
|
#include "hal_cc8051.h"
|
|
#include "hal_mcu.h"
|
|
#include "hal_board.h"
|
|
#include "hal_digio.h"
|
|
#include "hal_adc.h"
|
|
#include "dma_tc72.h"
|
|
|
|
uint16 TC72_Value = 0;
|
|
|
|
void Write_Tc72(uint8 ch)
|
|
{
|
|
uint8 i, cmd;
|
|
|
|
cmd = ch;
|
|
for (i = 0; i < 8; i++)
|
|
{
|
|
HAL_TC72_SCL_CLR();
|
|
if (cmd &0x80)
|
|
{
|
|
HAL_TC72_SDI_SET();
|
|
}
|
|
else
|
|
{
|
|
HAL_TC72_SDI_CLR();
|
|
}
|
|
cmd <<= 1;
|
|
HAL_TC72_SCL_SET();
|
|
}
|
|
HAL_TC72_SDI_SET();
|
|
}
|
|
|
|
uint16 Read_Tc72(void)
|
|
{
|
|
uint8 i, ret;
|
|
|
|
HAL_TC72_SDI_CLR();
|
|
for (i = 0; i < 8; i++)
|
|
{
|
|
HAL_TC72_SCL_CLR();
|
|
ret <<= 1;
|
|
HAL_TC72_SCL_SET();
|
|
if (HAL_TC72_SDO_VAL())
|
|
ret |= 0x01;
|
|
}
|
|
HAL_TC72_SDI_SET();
|
|
return ret;
|
|
}
|
|
|
|
|
|
|
|
//-------------------------------------------------------------------
|
|
void TC72_Start(void)
|
|
{
|
|
HAL_TC72_SSS_SET();
|
|
Write_Tc72(0x80);
|
|
Write_Tc72(0x15);
|
|
HAL_TC72_SSS_CLR();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
void TC72_Read(void)
|
|
{
|
|
uint16 m,n;
|
|
HAL_TC72_SSS_SET();
|
|
|
|
Write_Tc72(0x02);
|
|
halMcuWaitUs(200);
|
|
m = Read_Tc72();
|
|
halMcuWaitUs(200);
|
|
|
|
Write_Tc72(0x01);
|
|
halMcuWaitUs(200);
|
|
n = Read_Tc72();
|
|
halMcuWaitUs(200);
|
|
|
|
TC72_Value = (m<<8)+n;
|
|
HAL_TC72_SSS_CLR();
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
// GLOBAL FUNCTIONS
|
|
//-------------------------------------------------------------------
|
|
void TC72_Init(void)
|
|
{
|
|
MCU_IO_INPUT(HAL_BOARD_IO_TC72_SDO_PORT, HAL_BOARD_IO_TC72_SDO_PIN, MCU_IO_PULLUP);
|
|
MCU_IO_OUTPUT(HAL_BOARD_IO_TC72_SDI_PORT, HAL_BOARD_IO_TC72_SDI_PIN,1);
|
|
MCU_IO_OUTPUT(HAL_BOARD_IO_TC72_SCL_PORT, HAL_BOARD_IO_TC72_SCL_PIN,1);
|
|
MCU_IO_OUTPUT(HAL_BOARD_IO_TC72_SSS_PORT, HAL_BOARD_IO_TC72_SSS_PIN,1);
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
uint16 TC72_ReadTemp(void)
|
|
{
|
|
TC72_Start();
|
|
halMcuWaitMs(2);
|
|
TC72_Read();
|
|
return TC72_Value;
|
|
}
|
|
|
|
|