久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

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

ATT7053BU 驅(qū)動(dòng)代碼共享

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:209079 發(fā)表于 2018-7-25 11:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//我們的SPI速度最高可以達(dá)到1.5M左右
//需要注意的是每次CS拉低啟動(dòng)傳輸,需要給2-3us的延時(shí)時(shí)間。
//CS拉高結(jié)束數(shù)據(jù)傳輸之前也需要給出2-3us的延時(shí)時(shí)間

void        Delay(unsigned int time)        //一個(gè)控制信號(hào)高電平低電平時(shí)間的延時(shí)
{
        int i;
        for(i=0; i<time; i++);
}


unsigned long SPI_Read(unsigned char address)
{
        int i;                                       
        unsigned long temp_data;
        temp_data = 0;                       
        SPI_CLK_LOW;        //確保CLK初始狀態(tài)是0
        Delayus(1);       
        SPI_CS_HIGH;       
        Delayus(2);               
        SPI_CS_LOW;               
        Delayus(5);               
                                       
        SPI_CLK_HIGH;        //啟動(dòng)數(shù)據(jù)傳輸       
        Delayus(1);
        SPI_DIN_LOW;        //0表示主機(jī)向從機(jī)讀數(shù)據(jù)
        Delayus(1);
        SPI_CLK_LOW;        //從機(jī)需要在下降沿取數(shù)據(jù)
        Delayus(1);
                               
        for(i=6; i>=0; i--)
        {
                SPI_CLK_HIGH;        //啟動(dòng)數(shù)據(jù)傳輸       
                Delayus(10);
                if( (address& (0x01<<i))>>i)//(address & 0x01)
                {
                        SPI_DIN_HIGH;
                       
                }
                else
                        SPI_DIN_LOW;
                Delayus(1);
                SPI_CLK_LOW;        //從機(jī)需要在下降沿取數(shù)據(jù)
                Delayus(10);
        }

        SPI_CLK_HIGH;       
        Delayus(10);
        SPI_CLK_LOW;
        if(READ_SPI_DOUT)
                temp_data = temp_data | 1;
       
        Delayus(2);        //從機(jī)接收到命令后,開始送出數(shù)據(jù),上升沿送數(shù)據(jù)
        for(i=0; i<23; i++)
        {
                SPI_CLK_HIGH;       
                Delayus(10);
                SPI_CLK_LOW;
                Delayus(10);
                temp_data = temp_data<<1;
                if(READ_SPI_DOUT)
                        temp_data++;
                Delayus(1);
        }
        SPI_CS_HIGH;
        return temp_data;

}


void        SPI_Write(unsigned char address, unsigned long write_data)
{
        int i;                                       
        unsigned long temp_data;
        temp_data = 1;
       
        SPI_CLK_LOW;        //確保CLK初始狀態(tài)是0               
        Delayus(100);       
        SPI_CS_HIGH;       
        Delayus(50);               
        SPI_CS_LOW;               
        Delayus(100);               
                                       
        SPI_CLK_HIGH;        //啟動(dòng)數(shù)據(jù)傳輸       
        Delayus(10);       
        SPI_DIN_HIGH;        //1表示主機(jī)向從機(jī)寫數(shù)據(jù)
        Delayus(10);       
        SPI_CLK_LOW;        //從機(jī)需要在下降沿取數(shù)據(jù)
        Delayus(10);       
       
        for(i=6; i>=0; i--)
        {
                SPI_CLK_HIGH;        //啟動(dòng)數(shù)據(jù)傳輸       
                Delayus(10);       
                if((address & (0x01<<i))>>i)
                {
                        SPI_DIN_HIGH;
                       
                }
                else
                        SPI_DIN_LOW;
                Delayus(10);       
        SPI_CLK_LOW;        //從機(jī)需要在下降沿取數(shù)據(jù)
                Delayus(10);       
        }
                                                //從機(jī)接收到命令后,開始送出數(shù)據(jù),上升沿送數(shù)據(jù)
        Delayus(40);       

        for(i=23; i>=0; i--)
        {
                SPI_CLK_HIGH;        //啟動(dòng)數(shù)據(jù)傳輸       
                Delayus(10);       
                if((write_data & (temp_data<<i))>>i)
                {
                        SPI_DIN_HIGH;       
                       
                }
                else
                        SPI_DIN_LOW;
                Delayus(10);       
                SPI_CLK_LOW;        //從機(jī)需要在下降沿取數(shù)據(jù)
                Delayus(10);       
        }
        SPI_CS_HIGH;
}



void ATT7053_Init(void)
{
        SPI_Write(0x32, 0xBC);                //Open written-protect 只能操作 40H 到 45H 的校表參數(shù)寄存器
        SPI_Write(0x43, 0xFA);                //I1 ADC Enable
//  SPI_Write(0x43, 0xDF);                        //close bor

        SPI_Write(0x42, 0x01FF);        //I1Angle Enable, I2Angle Enable
        SPI_Write(0x32, 0xA6);                //Open written-protect 只能操作 50H 到 71H 的校表參數(shù)寄存器
        SPI_Write(0x59, 0x0001);        //模擬通道增益I1*2       
       
        Delayms(10);
        SPI_Read(0x06);


}

ATT7053.zip

1.57 KB, 下載次數(shù): 146, 下載積分: 黑幣 -5

實(shí)際項(xiàng)目代碼

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

使用道具 舉報(bào)

沙發(fā)
ID:502297 發(fā)表于 2019-4-1 11:38 | 只看該作者
值得學(xué)習(xí)一下。提升一下自己
回復(fù)

使用道具 舉報(bào)

板凳
ID:245354 發(fā)表于 2019-6-11 18:21 | 只看該作者
請(qǐng)問(wèn)有沒(méi)有試過(guò)不使用cs腳啊?
回復(fù)

使用道具 舉報(bào)

地板
ID:713086 發(fā)表于 2020-3-21 21:05 | 只看該作者
厲害,標(biāo)定看著很復(fù)雜,一定很麻煩
回復(fù)

使用道具 舉報(bào)

5#
ID:159600 發(fā)表于 2020-10-7 23:17 | 只看該作者

值得學(xué)習(xí)一下。提升一下
回復(fù)

使用道具 舉報(bào)

6#
ID:3666 發(fā)表于 2020-10-27 14:43 | 只看該作者
這個(gè)東西如何計(jì)算電壓呀
回復(fù)

使用道具 舉報(bào)

7#
ID:78522 發(fā)表于 2022-12-22 09:40 | 只看該作者
標(biāo)定最頭疼,搞了一天也沒(méi)有標(biāo)定好,同一電器電流標(biāo)定好了, 換其他電流,就不對(duì)了,也不知道怎么搞
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日韩欧美一区 | 欧美日韩淫片 | 国产精品二区三区 | 91福利在线导航 | 欧美精品网站 | 日韩精品一区二区三区在线观看 | 亚洲最新网址 | 国产高清自拍视频在线观看 | 国产一区 在线视频 | 国产福利资源在线 | 一区二区三区视频免费看 | 国产综合在线视频 | 国产精品视频免费观看 | 日韩aⅴ片 | 亚洲精品一区二区三区蜜桃久 | 日韩欧美国产一区二区三区 | 亚洲国产精品va在线看黑人 | 日韩一区二区三区在线看 | 日本不卡高字幕在线2019 | 亚洲一区二区在线播放 | 天堂中文资源在线 | 在线看一区二区三区 | 欧美一区免费 | 在线视频国产一区 | 日本精品久久久久 | 国产综合久久 | 国产四区| 玖玖久久 | 一级毛片播放 | 日韩在线第一 | 激情视频中文字幕 | 亚洲欧洲日本国产 | 精品国产免费一区二区三区演员表 | 亚洲一二三区av | 日韩欧美三级 | 亚洲综合在线播放 | www.jizzjizz | 精品久久久精品 | 瑞克和莫蒂第五季在线观看 | 日日干夜夜操 | 国内精品99 |