作者odahawk (羊皮狼)
看板ASM
标题Re: [问题] 串列输入控制显示器 (已追加IC情报)
时间Fri Sep 18 21:50:48 2009
※ 引述《beminaru》之铭言:
根据你给的IC资料,可以看得出来是半工的SPI通讯。
一开始看你程式觉得奇怪的是 da_data(int a) 段
SPI通讯特点是藉由Clock高至低或低至高的时候拿取资料。
注意图2-2-2,你的IC则是Clock需至少维持tDS时间的Low与tDH时间的High
这段时间内的资料才视为有效。
所以程式应该改成:
void da_data(int a) // set input data (DA)
{
for (i = 1; i <= 8; i++) // data length = 8 bits
{
cpb = 0; delay(0); // 这里先拉为Low
if(a & 0x01) //这边送出有效资料
da = 1;
else
da = 0;
a >>= 1;
cpb = 1; delay(0); // 拉为High 结束这一 bit
}
}
不知道你的MCU运作时间是多长,资料上要求是300ns
所以delay(0)的部分可有可无。
可以的话先用逻辑分析仪试验这段是否能够正常按照SPI模式传讯。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.68.231.105