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

            新聞中心

            ATmega8---SPI總線控制

            作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
            開(kāi)發(fā)中對(duì)ATmega8外設(shè)SPI總線使用:
            在發(fā)送數(shù)據(jù)之前都處于從模式,處于接收狀態(tài)。在發(fā)送的時(shí)候,需要進(jìn)入主模式,完成發(fā)送之后再進(jìn)入從模式。
            以下為操作函數(shù):

            interrupt [SPI_STC] void spi_interrupt(void)
            {
            //uchar tmp;
            uchar i,b;
            //tmp=SPSR;
            b=SPDR;
            r_buf[0]=r_buf[1];
            r_buf[1]=r_buf[2];
            r_buf[2]=r_buf[3];
            r_buf[3]=r_buf[4];
            r_buf[4]=r_buf[5];
            r_buf[5]=b;
            if((r_buf[0]==0xff)&&(r_buf[5]==0xaa))
            {
            r_full=1;
            r_data[0]=r_buf[0];
            r_data[1]=r_buf[1];
            r_data[2]=r_buf[2];
            r_data[3]=r_buf[3];
            r_data[4]=r_buf[4];
            r_data[5]=r_buf[5];
            }
            if(r_full)
            {
            r_full=0;
            if(r_data[1]!=99)return;
            switch(r_data[2])
            {
            case 3:
            case 0x31:
            if((r_data[4]>16)||(r_data[3]>16))return;
            if(r_data[3]==0)return;
            else if(r_data[4]==0)
            {
            for(i=0;i<16;i++)
            {
            tmp_ddc[i]=r_data[3];
            }
            }
            else
            {
            tmp_ddc[r_data[4]-1]=r_data[3];
            }
            break;
            default:
            break;
            }
            }
            }
            //-------------------------------------------------
            void spi_init_s() //在沒(méi)有通訊之前,處于從模式
            {
            DDRB.4=1;
            DDRB.2=0;
            PORTB.2=1;
            DDRB.3=0;
            DDRB.5=0;
            SPCR=0XC0;
            }
            void spi_init_m()
            {
            DDRB.4=0;
            DDRB.2=1;
            DDRB.3=1;
            DDRB.5=1;
            SPCR=0x52;
            SPSR=0X01;
            }
            //-------------------------------------
            void send_spi()
            {
            uchar i;
            while(PINB.2==0){;}
            spi_init_m();
            #asm("cli")
            PORTB.2=0;
            delay_ms(1);
            for(i=0;i<2;i++)
            {
            SPDR=video_new[i];
            #asm("wdr")
            while((SPSR&0X80)!=0X80);
            }
            delay_ms(10);
            PORTB.2=1;
            #asm("sei")
            spi_init_s();
            }



            關(guān)鍵詞: ATmega8SPI總線控

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉