用这个申矽凌的CT1820的代码试试
uchar CT1820Init()
{
uchar i;
DSPORT =
0;
//将总线拉低480us~960us
delay600us();
//450us to 700us
DSPORT =
1;
//然后拉高总线,如果CT1820做出反应会将在15us~60us后总线拉低
i =
0; //
while(DSPORT) //等待CT1820拉低总线
{
delay500us();
i++;
if(i>1)//等待>5MS, set 2 = 2.48ms
{
return 0;//初始化失败
}
}
return 1;//初始化成功
}
没问题,帮你搞定。