欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
AD5162數字電位器SPI通訊如何寫9位的寄存器數據?
[打印本頁]
作者:
cheney03
時間:
2020-12-17 17:30
標題:
AD5162數字電位器SPI通訊如何寫9位的寄存器數據?
本帖最后由 cheney03 于 2020-12-18 08:53 編輯
如題:我的數字電位器是AD5162,寫寄存器為9位。現有AD5160程序,寄存器是8位的。怎么修改現有程序,讓SPI寫9位的寄存器?
1.jpg
(46.86 KB, 下載次數: 46)
下載附件
2020-12-17 17:29 上傳
2.jpg
(93.67 KB, 下載次數: 58)
下載附件
2020-12-17 17:29 上傳
通道選擇A0=1,或者A0=0
AD5160程序如下:
5160.H*/
typedef unsigned char uchar;
typedef unsigned int uint;
//sbit CPCS= P1^3; //(U108)
//sbit SDI = P1^1;
//sbit SCK = P1^0;
sbit CPCS = P3^0; //數字電位器AD5160的片選CS,低電平有效 (U111)
sbit SDI = P0^3; //數字電位器AD5160的數據SDI
sbit SCK = P0^2; //數字電位器AD5160的時鐘SCLK
void AD5160_init() //AD5160初始化
{
CPCS = 1;
SCK = 0;
SDI = 1;
}
void AD5160_Seting(uchar dat)
{
uchar i, rdac=0;
CPCS = 1;
rdac = dat; //RDAC為寫入AD5160 內部8位radc寄存器數據
SCK = 0;
_nop_();
_nop_();
_nop_();
_nop_();
SCK = 1; //SCK在CS拉低前觸發一個時鐘
_nop_();
_nop_();
SCK = 0;
_nop_();
CPCS = 0; //拉低CS啟動數據寫入
for(i=0;i<8;i++)
{ SDI =(rdac&0x80);
rdac<<=1; //高位MSB在先
_nop_();
SCK = 1;
_nop_();
SCK = 0;
}
CPCS = 1;
_nop_(); //片選拉高后SCK送一個結束時鐘,這點很重要
SCK = 1;
_nop_();
_nop_();
SCK = 0;
_nop_();
}
作者:
cheney03
時間:
2020-12-24 23:31
已解決,在寫后八位數據前插入寫一位,
SDI =0;
_nop_();
SCK = 1;
_nop_();
SCK = 0;
作者:
samxlp520
時間:
2023-11-22 15:34
你好,能把完整的代碼放上來一下嗎?謝謝
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1