/********************温度传感器CT1820程序 Start*********************************/
void CT1820_GpioInit(void)
{
ithGpioSetMode(CT1820_GPIO, ITH_GPIO_MODE0);
ithGpioSet(CT1820_GPIO);
ithDelay(10);
printf("********************CT1820GpioInit\n");
}
uint8_t CT1820Init(void)
{
uint8_t i;
ithGpioSetOut(CT1820_GPIO);
ithGpioClear(CT1820_GPIO);
ithDelay(600);
ithGpioSetIn(CT1820_GPIO);
i = 0;
ithDelay(80);
if (ithGpioGet(CT1820_GPIO))
{
printf("\nCT1820Init failed!\n");
return 0; //初始化失败
}
ithDelay(250);
if (!ithGpioGet(CT1820_GPIO))
{
printf("\nCT1820Init failed!\n");
return 0; //初始化失败
}
// printf("\nCT1820Init successful!\n");
return 1;//初始化成功
}
void CT1820WriteByte(uint8_t dat)
{
uint8_t j;
for (j = 0; j < 8; j++)
{
ithGpioSetOut(CT1820_GPIO);
ithGpioClear(CT1820_GPIO);
ithDelay(8);
if (dat & 0x01)
{
ithGpioSet(CT1820_GPIO);
}
ithDelay(60);
ithGpioSetIn(CT1820_GPIO);//释放总线
// ithDelay(25);//如果CT1820没有接VCC,则由MCU释放总线后,由DI高电平给CT1820供电
dat >>= 1;
}
}
uint8_t CT1820ReadByte(void)
{
uint8_t byte;
uint32_t bit;
uint8_t i, j;
byte = 0;
for (j = 8; j > 0; j--)
{
ithGpioSetOut(CT1820_GPIO);
ithGpioClear(CT1820_GPIO);