在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            LDC1000的底層驅(qū)動(dòng)程序

            作者: 時(shí)間:2017-10-14 來源:網(wǎng)絡(luò) 收藏

              TI推出的電感數(shù)據(jù)轉(zhuǎn)換器,是一款一種非接觸式、短程傳感技術(shù)的傳感器芯片,具有低成本、高分辨率遙感的導(dǎo)電性。

            本文引用地址:http://www.biyoush.com/article/201710/366343.htm

              由于LDC技術(shù)的優(yōu)勢(shì)明顯,非常適合工廠流水線上的運(yùn)動(dòng)狀態(tài)的傳感檢測(cè),在工業(yè)機(jī)器人及智能工廠等工業(yè)領(lǐng)域?qū)l(fā)揮良好作用。

              LDC 技術(shù)的主要優(yōu)勢(shì):

              • 更高的分辨率:可通過 16 位共振阻抗及 24 位電感值,在位置傳感應(yīng)用中實(shí)現(xiàn)亞微米級(jí)分辨率;

              • 更高的可靠性:提供非接觸傳感技術(shù)避免受油污塵土等非導(dǎo)電污染物的影響,可延長(zhǎng)設(shè)備使用壽命;

              • 更高的靈活性:允許傳感器遠(yuǎn)離電子產(chǎn)品安放,處于 PCB 無(wú)法安放的位置;

              • 更低的系統(tǒng)成本:采用低成本傳感器及傳導(dǎo)目標(biāo),無(wú)需磁體;

              • 無(wú)限可能性:支持壓縮的金屬薄片或?qū)щ娪湍繕?biāo),可為創(chuàng)造性創(chuàng)新系統(tǒng)設(shè)計(jì)帶來無(wú)限可能;

              • 更低的系統(tǒng)功耗:標(biāo)準(zhǔn)工作時(shí)功耗不足 8.5mW,待機(jī)模式下功耗不足 1.25mW。

              的底層驅(qū)動(dòng)程序:

              #ifndef LDC1000_CMD_H_ #define LDC1000_CMD_H_

              /************************************** ************* VCC ****************** ************* CLK ****************** ************* DI ****************** ************* DO ****************** ************* CS ****************** ************* GND ****************** **************************************/

              #define LDC1000_DO 3 //IN #define LDC1000_CS 5 //out #define LDC1000_DI 6 //out #define LDC1000_CLK 7 //out

              #define LDC1000_CS_SET() DATA_OUT(LDC1000_CS,1) #define LDC1000_DI_SET() DATA_OUT(LDC1000_DI,1) #define LDC1000_CLK_SET() DATA_OUT(LDC1000_CLK,1)

              #define LDC1000_CS_CLR() DATA_OUT(LDC1000_CS,0) #define LDC1000_DI_CLR() DATA_OUT(LDC1000_DI,0) #define LDC1000_CLK_CLR() DATA_OUT(LDC1000_CLK,0)

              #define LDC1000_DO_IN gpio_get(PORTB,LDC1000_DO)

              #define Dly_LDC1000CLK() delay250ns(1)

              #define RPMAX 0x13 #define RPMIN 0x3A

              // LDC COMMANDS

              #define LDC1000_CMD_REVID 0x00 #define LDC1000_CMD_RPMAX 0x01 #define LDC1000_CMD_RPMIN 0x02 #define LDC1000_CMD_SENSORFREQ 0x03 #define LDC1000_CMD_LDCCONFIG 0x04 #define LDC1000_CMD_CLKCONFIG 0x05 #define LDC1000_CMD_THRESHILSB 0x06 #define LDC1000_CMD_THRESHIMSB 0x07 #define LDC1000_CMD_THRESLOLSB 0x08 #define LDC1000_CMD_THRESLOMSB 0x09 #define LDC1000_CMD_INTCONFIG 0x0A

              #define LDC1000_CMD_PWRCONFIG 0x0B #define LDC1000_CMD_STATUS 0x20 #define LDC1000_CMD_PROXLSB 0x21 #define LDC1000_CMD_PROXMSB 0x22 #define LDC1000_CMD_FREQCTRLSB 0x23 #define LDC1000_CMD_FREQCTRMID 0x24 #define LDC1000_CMD_FREQCTRMSB 0x25

              // LDC BITMASKS

              #define LDC1000_BIT_AMPLITUDE 0x18 #define LDC1000_BIT_RESPTIME 0x07 #define LDC1000_BIT_CLKSEL 0x02 #define LDC1000_BIT_CLKPD 0x01 #define LDC1000_BIT_INTMODE 0x07 #define LDC1000_BIT_PWRMODE 0x01 #define LDC1000_BIT_STATUSOSC 0x80 #define LDC1000_BIT_STATUSDRDYB 0x40 #define LDC1000_BIT_STATUSWAKEUP 0x20 #define LDC1000_BIT_STATUSCOMP 0x10

              void delay250ns(uint32 ms);

              void DATA_OUT(uint8 pin,uint8 level);

              void LDC1000_write(char ADDR, char data);

              void LDC1000_read(uint8 ADDR,char *DATA,char len); void LDC1000_init();

              #endif /* LDC1000_CMD_H_ */

              #include “LDC1000_cmd.h” char orgVal[20];

              /************************************************************************* * 函數(shù)名稱:delayms

              * 功能說明:延時(shí)函數(shù)(不準(zhǔn)確),內(nèi)核頻率為100M時(shí)較為準(zhǔn)確 * 備 注:

              *************************************************************************/ void delay250ns(uint32 ms) {

              uint32 i, j;

              for(i = 0; i 《 ms; i++) {

              for(j = core_clk_mhz/8; j 》 0; j--)

              {

              asm(“nop”); } } }

              /*******************************************************************************

              * Function Name : DATA_OUT

              * Description : SCCB數(shù)據(jù)線的狀態(tài) 包括輸入輸出 電平 * Input : uint8 pin 輸入?輸出? 1為輸出 0輸入 * :uint8 data 電平

              *******************************************************************************/

              void DATA_OUT(uint8 pin,uint8 level) {

              if(level) {

              GPIO_PDOR_REG(PTB_BASE_PTR) |= 1《《pin; //第0位輸出1 } else {

              GPIO_PDOR_REG(PTB_BASE_PTR) = ~(1《《pin); //第0位輸出0 } }

              void LDC1000_write(char ADDR, char data) {

              uint8 addr=0,dat=0,i=0;

              addr = ADDR 0x7f; dat = data;

              LDC1000_CS_CLR(); //片選低 Dly_LDC1000CLK();

              LDC1000_CLK_CLR(); // Set clock line low for(i=0;i《16;i++) {

              if(i《8)//寫8位命令段 {

              if(addr0X80) LDC1000_DI_SET(); else LDC1000_DI_CLR(); Dly_LDC1000CLK();

              LDC1000_CLK_SET(); // Set clock line high

              addr 《《= 1; // Shift DATA_BUF Dly_LDC1000CLK();

              LDC1000_CLK_CLR(); // Set clock line low } else {

              if(dat0X80) LDC1000_DI_SET(); else LDC1000_DI_CLR(); Dly_LDC1000CLK();

              LDC1000_CLK_SET(); // Set clock line high dat 《《= 1; // Shift DATA_BUF Dly_LDC1000CLK();

              LDC1000_CLK_CLR(); // Set clock line low } }

              Dly_LDC1000CLK();

              LDC1000_CS_SET(); //片選高 }

              void LDC1000_read(uint8 ADDR,char *DATA,char len) {

              uint8 addr=0,dat=0,i=0,j=0;

              addr = ADDR | 0x80;

              LDC1000_CLK_CLR(); // Set clock line low for(i=0;i《8;i++)//寫8位命令段 {

              if(addr0X80) LDC1000_DI_SET(); else LDC1000_DI_CLR(); Dly_LDC1000CLK(); LDC1000_CLK_SET();

              addr 《《= 1; // Shift DATA_BUF Dly_LDC1000CLK();

              LDC1000_CLK_CLR(); // Set clock line high }

              for(i=0;i《len;i++) {

              dat=0;

              for(j=0;j《8;j++) {

              dat 《《=1 // Right shift DATA_BUF

              Dly_LDC1000CLK(); LDC1000_CLK_SET(); // Set clock line high

              Dly_LDC1000CLK();

              if(LDC1000_DO_IN) dat |= 0x01; // Read data LDC1000_CLK_CLR(); // Set clock line low }

              DATA[i] = dat; } }

              void LDC1000_init() {

              /* 打開B端口的時(shí)鐘源 */

              SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK

              /* LDC使用IO端口初始化 */

              PORTB_PCR3 = PORT_PCR_MUX(1); PORTB_PCR5 = PORT_PCR_MUX(1); PORTB_PCR6 = PORT_PCR_MUX(1); PORTB_PCR7 = PORT_PCR_MUX(1);

              gpio_init(PORTB,LDC1000_CLK,GPO,LOW); gpio_init(PORTB,LDC1000_DI,GPO,LOW); gpio_init(PORTB,LDC1000_CS,GPO,LOW); gpio_init(PORTB,LDC1000_DO,GPI,LOW);

              /* LDC寄存器初始化 */

              LDC1000_write(LDC1000_CMD_RPMAX, RPMAX); LDC1000_write(LDC1000_CMD_RPMIN, RPMIN); LDC1000_write(LDC1000_CMD_SENSORFREQ, 0x94); LDC1000_write(LDC1000_CMD_LDCCONFIG, 0x17); LDC1000_write(LDC1000_CMD_CLKCONFIG, 0x02); LDC1000_write(LDC1000_CMD_INTCONFIG, 0x02);

              LDC1000_write(LDC1000_CMD_THRESHILSB, 0x50); LDC1000_write(LDC1000_CMD_THRESHIMSB, 0x14); LDC1000_write(LDC1000_CMD_THRESLOLSB, 0xC0); LDC1000_write(LDC1000_CMD_THRESLOMSB, 0x12);

              LDC1000_write(LDC1000_CMD_PWRCONFIG, 0x01);

              //read all registers LDC1000_CS_CLR(); Dly_LDC1000CLK();

              LDC1000_read(LDC1000_CMD_REVID , orgVal , 12); Dly_LDC1000CLK();LDC1000_CS_SET(); }



            關(guān)鍵詞: LDC1000

            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉