找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2753|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

AD5162數(shù)字電位器SPI通訊如何寫9位的寄存器數(shù)據(jù)?

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 25 黑幣 回復(fù)本帖可獲得 5 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
跳轉(zhuǎn)到指定樓層
樓主
ID:743654 發(fā)表于 2020-12-17 17:30 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 cheney03 于 2020-12-18 08:53 編輯

如題:我的數(shù)字電位器是AD5162,寫寄存器為9位,F(xiàn)有AD5160程序,寄存器是8位的。怎么修改現(xiàn)有程序,讓SPI寫9位的寄存器?

通道選擇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; //數(shù)字電位器AD5160的片選CS,低電平有效 (U111)
sbit SDI = P0^3; //數(shù)字電位器AD5160的數(shù)據(jù)SDI
sbit SCK = P0^2; //數(shù)字電位器AD5160的時(shí)鐘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 內(nèi)部8位radc寄存器數(shù)據(jù)
    SCK = 0;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    SCK = 1; //SCK在CS拉低前觸發(fā)一個(gè)時(shí)鐘
    _nop_();
    _nop_();
    SCK = 0;
    _nop_();
    CPCS = 0; //拉低CS啟動(dòng)數(shù)據(jù)寫入
    for(i=0;i<8;i++)
      { SDI =(rdac&0x80);
            rdac<<=1; //高位MSB在先
       _nop_();
        SCK = 1;
       _nop_();
       SCK = 0;
     }

   CPCS = 1;
   _nop_(); //片選拉高后SCK送一個(gè)結(jié)束時(shí)鐘,這點(diǎn)很重要
   SCK = 1;
   _nop_();
   _nop_();
   SCK = 0;
   _nop_();
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:743654 發(fā)表于 2020-12-24 23:31 | 只看該作者
已解決,在寫后八位數(shù)據(jù)前插入寫一位,
        SDI =0;
       _nop_();
        SCK = 1;
       _nop_();
       SCK = 0;
回復(fù)

使用道具 舉報(bào)

板凳
ID:38393 發(fā)表于 2023-11-22 15:34 | 只看該作者
你好,能把完整的代碼放上來一下嗎?謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表