※ 引述《CuckooBoy (阿書)》之銘言:
: (恕刪)
: main()
: {
: unsigned int SDI_cnt,LE_cnt = 0;
: unsigned int i = 1;
: while(1)
: {
: DCLK = 0;
: SDI = SDI_LUT[SDI_cnt];
這邊看起來SDI是DCLK rising edge sample
: DCLK = 1;
: if (LE_cnt == 48*i-1||LE_cnt == 766)
: {
: LE = 1;
這個LE看起來是DCLK falling edge sample
: (恕刪)
一般來說,介面設計通常會有一致性
也就是rising/falling edge通常不會混用(除非要增加sampling rate)
上面的程式輸出看起來就有兩種edge sampling
最好可以換掉,不然對外接的電路有很多壞處的
另外,利用uP來產生timing是非常不智的
上面的程式duty cycle會很不平衡
要記得每一個inst會花去cpu幾個cycle的時間
等到下一次DCLK=0已經是很久以後的是了
所以8051才會有自己的UART
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.37.240