在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            S3C2440-IIC

            作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
            IIC(Inter-Integrated Circuit,I2C)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微處理器及其外圍設(shè)備,它的最主要優(yōu)點是簡單和有效。它只需要數(shù)據(jù)線SDA和時鐘線SCL,就能夠?qū)崿F(xiàn)CPU與被控IC之間、IC與IC之間進行雙向傳送。
            s3c2440內(nèi)部有一個IIC總線接口,因此為我們連接帶有IIC通信模塊的外圍設(shè)備提供了便利。它具有四種操作模式:主設(shè)備發(fā)送模式、主設(shè)備接收模式、從設(shè)備發(fā)送模式和從設(shè)備接收模式。在這里我們只把s3c2440當(dāng)做IIC總線的主設(shè)備來使用,因此只介紹前兩種操作模式。在主設(shè)備發(fā)送模式下,它的工作流程為:首先配置IIC模式,然后把從設(shè)備地址寫入接收發(fā)送數(shù)據(jù)移位寄存器IICDS中,再把0xF0寫入控制狀態(tài)寄存器IICSTAT中,這時等待從設(shè)備發(fā)送應(yīng)答信號,如果想要繼續(xù)發(fā)送數(shù)據(jù),那么在接收到應(yīng)答信號后,再把待發(fā)送的數(shù)據(jù)寫入寄存器IICDS中,清除中斷標志后,再次等待應(yīng)答信號;如果不想再發(fā)送數(shù)據(jù)了,那么把0x90寫入寄存器IICSTAT中,清除中斷標志并等待停止條件后,即完成了一次主設(shè)備的發(fā)送。在主設(shè)備接收模式下,它的工作流程為:首先配置IIC模式,然后把從設(shè)備地址寫入接收發(fā)送數(shù)據(jù)移位寄存器IICDS中,再把0xB0寫入控制狀態(tài)寄存器IICSTAT中,這時等待從設(shè)備發(fā)送應(yīng)答信號,如果想要接收數(shù)據(jù),那么在應(yīng)答信號后,讀取寄存器IICDS,清除中斷標志;如果不想接收數(shù)據(jù)了,那么就向寄存器IICSTAT寫入0x90,清除中斷標志并等待停止條件后,即完成了一次主設(shè)備的接收。在完成上述兩個模式時,主要用到了控制寄存器IICCON、控制狀態(tài)寄存器IICSTAT和發(fā)送接收數(shù)據(jù)移位寄存器IICDS。由于我們只把s3c2440當(dāng)做主設(shè)備來用,并且系統(tǒng)的IIC總線上只有這么一個主設(shè)備,因此用來設(shè)置從設(shè)備地址的地址寄存器IICADD,和用于仲裁總線的多主設(shè)備線路控制寄存器IICLC都無需配置。寄存器IICCON的第6位和低4位用于設(shè)置IIC的時鐘頻率,因為IIC的時鐘線SCL都是由主設(shè)備提供的。s3c2440的IIC時鐘源為PCLK,當(dāng)系統(tǒng)的PCLK為50MHz,而從設(shè)備最高需要100kHz時,可以將IICCON的第6位置1,IICCON的低4位全為0即可。寄存器IICCON的第7位用于設(shè)置是否發(fā)出應(yīng)答信號,第5位用于是否使能發(fā)送和接收中斷,第4位用于中斷的標志,當(dāng)接收或發(fā)送數(shù)據(jù)后一定要對該位進行清零,以清除中斷標志。寄存器IICSTAT的高2位用于設(shè)置是哪種操作模式,當(dāng)向第5位寫0或?qū)?時,則表示結(jié)束IIC或開始IIC通訊,第4位用于是否使能接收/發(fā)送數(shù)據(jù)。
            #include "2440addr.h"
            #define U32 unsigned int
            unsigned char iic_buffer[8];
            U32 length;
            unsigned char add, word;
            int cmd, flag, count, command;
            void delay(int a)
            {
            int k;
            for(k=0;k<a;k++)
            ;
            }
            void __irq UART0_ISR(void){
            char ch;
            rSRCPND |= (0x1<<28);
            rINTPND |= (0x1<<28);
            rSUBSRCPND |= 0x1<<0;
            if(rUTRSTAT0 & 0x1){
            ch = rURXH0;
            while(!(rUTRSTAT0&0x4));
            rUTXH0 = ch;
            if(count == 0)
            command = ch;
            if(command == 0xa1){
            if(count == 1){
            add = ch;
            }
            else
            if(count == 2){
            word = ch;
            }
            else
            if(count == 3){
            length = ch;
            }
            else if(count >= 4)
            {
            iic_buffer[count-4] = ch;
            if(count == length+3){
            count = -1;
            cmd = 0x01;
            }
            }
            count++;
            }
            else if(command == 0xa2)
            {
            if(count == 1)
            add = ch;
            else
            if(count == 2)
            word = ch;
            else
            if(count == 3){
            length = ch;
            count = -1;
            cmd = 0x02;
            }
            count++;
            }
            }
            }
            上一頁 1 2 下一頁

            關(guān)鍵詞: S3C2440IIC串行總

            評論


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

            關(guān)閉