草榴社区最新地址

【TCD-036】射精するショートカット・ヘアのクールビューティ・ニューハーフ&... 丝袜美腿视频 韩剧新套路:普世性和国民性,二者怎么得兼?... 丝袜美腿视频 河北衡水女训诲遭冒名顶替十余年 工资被冒领... 丝袜美腿视频 饕客?如故猎东谈主?《但愿OL》前瞻PV引猜思... 丝袜美腿视频 快播案再开庭鉴黄师出庭 每天最多时能看800部...
栏目分类

热点资讯
偷拍自拍 亚洲色图 厕底偷拍

你的位置:草榴社区最新地址 > 偷拍自拍 亚洲色图 厕底偷拍 > 丝袜美腿视频 怎样编写ADX122驱动法度?

丝袜美腿视频 怎样编写ADX122驱动法度?

发布日期:2024-10-06 21:32    点击次数:146

丝袜美腿视频 怎样编写ADX122驱动法度?

之前的章节里面我们写了adx112的驱动丝袜美腿视频,adx122的驱动我们还没写过,adx122是adx112的升级版块,升级成了20bit,况兼里面自带恒流源,关于ptc/ntc测温会有比拟好的匡助,省去了外围电路的偏置,adx122的第一页如下

图片

粗略是能看的出来兼容adx112的,接管的是spi的接口,在这个章节我们主要讲是怎样编写驱动法度,是以先跳过一些蹙迫信息。

既然接管spi接口我们就望望是哪种SPI,三线或者四线,高潮沿写数据已经下落沿写数据,从手册的firgure2看是下落沿写数据,下落沿读数据,见下图

图片

在数据手册的面孔中找到了,是下落沿读数据,和下落沿写数据的。如

图片

看下寄存器树立规章,如下

图片

先大约扫数引脚界说,我们先运行写下spi时序,粗略测试打印频频,

图片

#include 
/* define pin*/
#define mosi_h printf(" mosi h ")
#define mosi_l printf(" mosi l ")
#define cs_h printf("cs hrn")
#define cs_l printf("cs lrn")
#define sclk_h printf(" sclk h ")
#define sclk_l printf("sclk lrn")
#define hal_delay(x) printf("delay_%dms rn",x)
//declare function
int32_t SPI_Write_Read(int32_t Data);

int main() {
    int32_t rdata;
    rdata=SPI_Write_Read(0x55aaffff);
    printf("%x",rdata);
    return 0;
}
int32_t SPI_Write_Read(int32_t Data)
{
    int8_t i;
    int32_t rdata=0;
    //supporting role
    int32_t misodata=0x0000aaaa;
    int8_t miso=0;
    //initial pin state
    sclk_h;
    mosi_l;
    cs_h;
    hal_delay(1);
    //start transferring data
    cs_l;
    for (i = 0; i 32; i++)
    {
        sclk_h;
        if(Data&0x80000000)
        {
            mosi_h;
        }
        else
            mosi_l;
        // supporting role
        miso=misodata&0x00000001;
        misodata > >=1;

        // Equivalent to rdata=rdata|miso
        rdata|=miso;
        rdata1;
        sclk_l;
        Data1;
    }
    return rdata;
}

后果则如下所示

1.jpg

允洽我们的预期,可是adx122需要80个时钟,这边已经不够的,这里只消32个时钟,打印的数据带入excel 不言而谕这里得出的论断即是55aaffff即是我们写的值,回读的aaaa0000亦然我们写入的值,是以在这一步是莫得问题的,链接向下

图片

80个时钟要补全的东西有许多,要是要回读的话。我们就不行平直用int32-t了。

图片

肛交 推特

So 我们要用指针,界说一个数组,将读追想的数据传入数组,在复返扫数数组,使用指针去经受。

#include/* define pin*/
#define mosi_h printf(" mosi h ")
#define mosi_l printf(" mosi l ")
#define cs_h printf("cs hrn")
#define cs_l printf("cs lrn")
#define sclk_h printf(" sclk h ")
#define sclk_l printf("sclk lrn")
#define hal_delay(x) printf("delay_%dms rn",x)
//declare function
int32_t* SPI_Write_Read(int32_t Data);

int main() {
    int32_t *rdatas;
    rdatas=SPI_Write_Read(0x55aaffff);
    printf("%xrn",*rdatas);
    printf("%xrn",*(rdatas+1));
    printf("%xrn",*(rdatas+2));
    return 0;
}
int32_t* SPI_Write_Read(int32_t Data)
{
    int8_t i;
    static int32_t rdata[11];
    //supporting role
    int32_t misodata=0x0000aaaa;
    int8_t miso=0;
    //initial pin state
    sclk_h;
    mosi_l;
    cs_h;
    hal_delay(1);
    //start transferring data
    cs_l;
    for (i = 0; i 32; i++)
    {
        sclk_h;
        if(Data&0x80000000)
        {
            mosi_h;
        }
        else
            mosi_l;
        // supporting role
        miso=misodata&0x00000001;
        misodata > >=1;

        // Equivalent to rdata=rdata|miso
        rdata[0]|=miso;
        rdata[0]1;
        sclk_l;
        Data1;
    }
    rdata[1]=0x1fffffff;
    rdata[2]=0x2fffffff;
    rdata[3]=0x3fffffff;
    rdata[4]=0x4fffffff;
    rdata[5]=0x5fffffff;
    rdata[6]=0x6fffffff;
    rdata[7]=0x7fffffff;
    return rdata;
}

在这里看到和我们的设定是相似的

图片

因为miso在这里我们是模拟的,是倒着来的看起来有点奇怪,本色用芯片没这么的问题。

望望模拟的后果。

图片

SPI的粗略驱动代码就整结束,我方再去对寄存器就好了。

#include/* define pin*/
#define mosi_h printf(" mosi h ")
#define mosi_l printf(" mosi l ")
#define cs_h printf("cs hrn")
#define cs_l printf("cs lrn")
#define sclk_h printf(" sclk h ")
#define sclk_l printf("sclk lrn")
#define hal_delay(x) printf("delay_%dms rn",x)
//declare function
u_int32_t* SPI_Write_Read(u_int32_t Data);

int main() {
    u_int32_t *rdatas;
    rdatas=SPI_Write_Read(0x55aaffff);
    printf("%xrn",*rdatas);
    printf("%xrn",*(rdatas+1));
    printf("%xrn",*(rdatas+2));
    return 0;
}
u_int32_t* SPI_Write_Read(u_int32_t Data)
{
    int i;

    static u_int32_t rdata[4]={0x00000000,0x00000000,
                             0x00000000,0x00000000};
    //supporting role
    u_int32_t  temp;
    u_int32_t misodata=0x10000001;
    u_int32_t miso;
    //initial pin state
    sclk_h;
    mosi_l;
    cs_h;
    hal_delay(1);
    //start transferring data
    cs_l;
    temp=0;
    for (i = 0; i 32; i++)
    {
        sclk_h;
        if(Data&0x80000000)
        {
            mosi_h;
        }
        else
        {
            mosi_l;
        }

        // supporting role
        miso=misodata&0x00000001;
        misodata > >=1;

        // Equivalent to rdata=rdata|miso

        rdata[0]1;
        rdata[0]|=miso;
        sclk_l;
        Data1;
    }
    //rdata[1]
    misodata=0x80000008;
    //
    for (i = 0; i 32;i++)
    {
        sclk_h;
        // supporting role
        miso=misodata&0x00000001;
        misodata > >=1;

        // Equivalent to rdata=rdata|miso
        rdata[1]1;
        rdata[1]|=miso;

        sclk_l;
    }
    misodata=0x20000002;
    //rdata[2]
    for (i = 0; i 16; i++)
    {
        sclk_h;
        // supporting role
        miso=misodata&0x00000001;

        misodata > >=1;

        // Equivalent to rdata=rdata|miso
        rdata[2]1;
        rdata[2]|=miso;
        sclk_l;
    }
    cs_h;
    return rdata;
}

刚好80个沿

图片

今天就先聊到这了.丝袜美腿视频



Powered by 草榴社区最新地址 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024