亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? eeprom.c

?? dsp 對eprom操作
?? C
字號:
/*** macro define for 24c08 or.24c01 ***/                   
//#define DEBUG1                   /*NOTE: this line should delete if DSP working in NORMAL mode(ie. MC)*/
#include "eeprom.h" 
#include "regs2407.h"
//#ifdef DEBUG1
//#define LINE_I2C_DAT_0    *PFDATDIR =(*PFDATDIR|0x0100)&0xFFFE;   //IOPF0 
//#define LINE_I2C_DAT_1    *PFDATDIR |=0x0101                      //IOPF0
//#define LINE_I2C_CLK_0    *PFDATDIR &=0xFFFD                      //IOPF1
//#define LINE_I2C_CLK_1    *PFDATDIR |=0x0002                      //IOPF1
//#define LINE_I2C_DAT_OUT  *PFDATDIR |=0x0100                      //IOPF0
//#define LINE_I2C_DAT_IN   *PFDATDIR &=0xFEFF                      //IOPF0
//#define LINE_I2C_DAT      (*PFDATDIR & 0x0001)                    //IOPF0
//#else
#define LINE_I2C_DAT_0    *PBDATDIR =(*PBDATDIR|0x2000)&0xFFDF      //'IOPB5
#define LINE_I2C_DAT_1    *PBDATDIR |=0x2020                          //'IOPB5
#define LINE_I2C_CLK_0    *PBDATDIR &=0xFFEF                          //'IOPB4
#define LINE_I2C_CLK_1    *PBDATDIR |=0x0010                          //'IOPB4
#define LINE_I2C_DAT_OUT  *PBDATDIR |=0x2000                          //'IOPB5
#define LINE_I2C_DAT_IN   *PBDATDIR &=0xDFFF                          //'IOPB5                                                                     
#define LINE_I2C_DAT      (*PBDATDIR & 0x0020)                        //'IOPB5     
//#endif

/*** macro define for E2PROM ***/
#define READ     0x0A1
#define WRITE    0x0A0
#define ACCESS_LIMIT    0x07    
/**********************************************************************************************************/ 
void i2cstart(void)
{
   LINE_I2C_CLK_0;
   LINE_I2C_DAT_OUT; 
   		delay_us(10);
   LINE_I2C_DAT_1; 
   		delay_us(10);
   LINE_I2C_CLK_1;
   delay_us(30);
   LINE_I2C_DAT_0;
   delay_us(30);
   LINE_I2C_CLK_0;
   delay_us(30);
   LINE_I2C_DAT_1;   
}

void i2cstop(void)
{
		delay_us(1);
   LINE_I2C_CLK_0; 
   		delay_us(10);
   LINE_I2C_DAT_OUT;
   LINE_I2C_DAT_0; 
   		delay_us(10);
   LINE_I2C_CLK_1;
   delay_us(30);
   LINE_I2C_DAT_1;
   delay_us(30);
   LINE_I2C_CLK_0;
   
}


int i2crxack(void)         //'返回值0,表示操作成功
{                          //'返回值!0,表示操作失敗
   int temp;
   LINE_I2C_DAT_IN;
   delay_us(10);
   LINE_I2C_CLK_1;
   delay_us(30);
   temp=LINE_I2C_DAT;
   delay_us(30);
   LINE_I2C_CLK_0;
   return(temp);
}

void i2ctxack(void)
{
   LINE_I2C_DAT_OUT;
   LINE_I2C_DAT_0;
   delay_us(30);
   LINE_I2C_CLK_1;
   delay_us(30);
   LINE_I2C_CLK_0; 
   		delay_us(10);
}

void i2cnoack(void) 
{
   LINE_I2C_DAT_OUT;
   LINE_I2C_DAT_1; 
   		delay_us(10);
   LINE_I2C_CLK_1;  
   delay_us(10);
   LINE_I2C_CLK_0;  
        delay_us(10);
}   


void i2ctxbyte(int data8) 
{
   int keepbit, nowbit;
   LINE_I2C_DAT_OUT;         
   for(keepbit=0x0080; keepbit!=0x00; keepbit=keepbit>>1 )  //'先發(fā)送字節(jié)數(shù)據(jù)的最高位
   {
      delay_us(10);
      LINE_I2C_CLK_0;
      delay_us(10);
      nowbit=data8&keepbit; 
      if(nowbit==0) 
      {
         LINE_I2C_DAT_0;
      } 
      else
      {
         LINE_I2C_DAT_1;      
      } 
      delay_us(10);
      LINE_I2C_CLK_1;
      delay_us(10);
   }   
   LINE_I2C_CLK_0;
}


int i2crxbyte(void)
{
   int i;
   int value=0;
   LINE_I2C_DAT_IN;
   LINE_I2C_CLK_0; 
   for(i=0;i<8;i++)
   {
	   		delay_us(10);
      LINE_I2C_CLK_1;
      value=value<<1;   //--
      if(LINE_I2C_DAT)  //--
      value=value|0x01; //--
            delay_us(10);

//'      if(LINE_I2C_DAT)
//'      {  value|=(0x080>>i); }    //'字節(jié)數(shù)據(jù)的最高位,最先被接收到
      LINE_I2C_CLK_0;
   } 
   return(value);
}
                                                       
///'''以下程序只能用于對AT24C08的讀寫操作                                                    
int read(int* aimaddr,int control, int length)         //' 前提條件: 總線啟動信號、控制命令已送出
{                                                      //'           讀E2PROM的源地址已送出,且收到應答信號
   int err=1, word_l, word_h;                          //'           該程序結束后應調(diào)用i2cstop()以停止I2C總線
   i2cstart();                                         //'總線停止信號尚未送出時,該程序讀所送地址單元中的內(nèi)容
   i2ctxbyte(control);                                 //'總線停止信號送出時,該程序讀所送地址的下一個單元中的內(nèi)容
   if(i2crxack()==0)            
   {                                                   
      for(;length>1; length--,aimaddr++)
      {
         word_h=(i2crxbyte())<<8;  //'最先收到的是高位字節(jié)
         i2ctxack();
         word_l=i2crxbyte(); 
         i2ctxack();
         *aimaddr=word_h|word_l;
      } 
      word_h=(i2crxbyte())<<8;
      i2ctxack();
      word_l=i2crxbyte();
      i2cnoack();
      *aimaddr=word_h|word_l;
      err=0;       //'清讀錯標志
   } 
   return(err);       //'返回0表示讀操作正確
                      //'返回1表示讀操作錯誤
}

                                                      
int write(int* sourseaddr,int control,int length )    //' 前提條件: 總線啟動信號、控制命令已送出,
{                                                     //'           寫E2PROM的目的地址已送出,且收到應答信號
                                                      //'           該程序結束后應調(diào)用i2cstop()以停止I2C總線
                                                       //'該程序寫所送地址單元中的內(nèi)容
   int err, word_l, word_h;  
    for(;length>0;length--,sourseaddr++)             
    {                                                 
        word_h=(*sourseaddr)>>8;
        word_l=(*sourseaddr)&0x00FF;
        i2ctxbyte(word_h);
        err=i2crxack();
        if(err==1)  break;
        i2ctxbyte(word_l);
        err=i2crxack();
        if(err==1)  break;
    }
    return(err);               //'返回0表示寫操作正確
                              //'返回1表示寫操作錯誤       

}


int e2prom(int* ramaddr, int romaddr,int control,int length)   //'control 采用宏參WRITE、READ
{                                                              //'為了簡化程序的編寫control命令字的第1、2為固定為0
   int err=1, temp;                                            //'所以romaddr只能取0~255,E2PROM只用了低256字節(jié)的空間
   i2cstart();
   temp=control&0x0FFFE;
   i2ctxbyte(temp);   
   if(i2crxack()==0)
   {
   i2ctxbyte(romaddr);
      if(i2crxack()==0)
      {
         switch(control) 
         {
             case READ:
                  err=read(ramaddr,control,length);
                  break;
             case WRITE:
                  err=write(ramaddr,control,length);
                  break;
         }
      }   
   }
   i2cstop();
   return(err);                   //'返回0表示操作正確
}                                 //'返回1表示操作錯誤

//'該程序調(diào)用方法 
//'   int k ,access_num=0;                  
//'   while(1)                 
//'   {                                
//'      k=e2prom();
//'      if(k==0)              //訪問成功,結束對E2PROM的操作
//'      {  break;   }
//'      else
//'      {                     //訪問不成功次數(shù)達到極限值,結束對E2PROM的操作
//'         if((++access_num)>=ACCESS_LIMIT)
//'         {  break; }
//'      }
//'   }
//'
//'

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区免费在线观看| 人人超碰91尤物精品国产| 伊人色综合久久天天| 五月婷婷另类国产| 成人免费黄色大片| 欧美丰满一区二区免费视频| 国产精品丝袜91| 日韩国产精品久久| 一本到一区二区三区| 国产日韩欧美综合一区| 天堂一区二区在线| 91免费看`日韩一区二区| www激情久久| 免费黄网站欧美| 欧美区视频在线观看| 中文字幕视频一区| 国产一区三区三区| 欧美一级视频精品观看| 亚洲欧美日韩国产中文在线| 国产福利一区二区三区| 日韩欧美第一区| 一区二区欧美国产| 成人妖精视频yjsp地址| 久久久亚洲高清| 久久国产精品露脸对白| 欧美电影一区二区| 亚洲一区精品在线| 91丨九色porny丨蝌蚪| 中文字幕乱码日本亚洲一区二区| 精品一区二区三区香蕉蜜桃| 91精品国产综合久久香蕉的特点 | 精品美女一区二区三区| 五月婷婷色综合| 制服丝袜亚洲播放| 三级亚洲高清视频| 欧美日韩国产免费| 一区二区三区在线看| 色综合中文综合网| 精品国产成人在线影院| 日本va欧美va精品发布| 欧美精品视频www在线观看| 一区二区三区日韩欧美精品| 99v久久综合狠狠综合久久| 国产精品国产三级国产aⅴ原创| 高清国产一区二区| 国产欧美日韩视频在线观看| 成人激情av网| 亚洲欧美偷拍另类a∨色屁股| 99久久婷婷国产综合精品| 国产精品成人免费精品自在线观看| 成人永久aaa| 亚洲美女精品一区| 91福利资源站| 免费观看91视频大全| 欧美精品一区二区三区蜜臀| 丁香一区二区三区| 亚洲人成精品久久久久久| 欧美视频精品在线观看| 日韩av午夜在线观看| 久久在线免费观看| 99久久久久久| 热久久国产精品| 国产精品区一区二区三区| 91浏览器打开| 秋霞av亚洲一区二区三| 久久精品夜色噜噜亚洲a∨| av成人免费在线观看| 亚洲电影在线播放| 国产亚洲精品aa| 欧美色精品在线视频| 美日韩黄色大片| 中文字幕不卡在线| 欧美日韩视频在线第一区| 激情欧美一区二区三区在线观看| 中文字幕一区二区不卡| 欧美日韩精品欧美日韩精品一综合| 精品制服美女丁香| 亚洲三级视频在线观看| 日韩色在线观看| 91女人视频在线观看| 久久国产精品99久久久久久老狼| 亚洲欧美一区二区三区孕妇| 亚洲精品在线观看视频| 一本到三区不卡视频| 国产一区二区精品久久| 亚洲成人资源网| 国产精品动漫网站| 欧美xxxxx牲另类人与| 欧美性色黄大片| 成人午夜视频网站| 美女诱惑一区二区| 一区二区三区在线播放| 久久精品视频免费| 日韩一区二区在线看| 一本到一区二区三区| 国产成人在线电影| 免费在线看一区| 视频一区中文字幕| 伊人色综合久久天天人手人婷| 欧美激情一区二区| 91.成人天堂一区| 欧美三级午夜理伦三级中视频| 99在线热播精品免费| 国产成+人+日韩+欧美+亚洲| 极品少妇一区二区三区精品视频| 香蕉加勒比综合久久| 一区二区三区免费在线观看| 亚洲欧洲综合另类| 亚洲天堂免费看| 亚洲人成网站精品片在线观看 | 99视频有精品| 波多野结衣中文一区| 国产激情一区二区三区四区| 久草精品在线观看| 日本大胆欧美人术艺术动态 | 一区二区三区欧美激情| 亚洲色图.com| 亚洲乱码日产精品bd| 国产精品无圣光一区二区| 久久精品无码一区二区三区| 国产人伦精品一区二区| 久久色中文字幕| 久久久九九九九| 亚洲国产高清在线观看视频| 国产精品三级av| 综合精品久久久| 一区二区三区欧美在线观看| 一区二区三区欧美视频| 亚洲电影一级黄| 日韩精品乱码免费| 蜜桃av一区二区| 高清不卡一区二区在线| av高清不卡在线| 欧美图片一区二区三区| 欧美高清www午色夜在线视频| 欧美一级搡bbbb搡bbbb| 2020国产精品自拍| 中文字幕欧美三区| 亚洲图片另类小说| 午夜精品福利一区二区蜜股av | 91免费观看国产| 欧美日韩美少妇| 精品国产电影一区二区| 中文字幕av一区二区三区免费看 | 精品一区二区三区不卡 | 国产一区二区三区精品欧美日韩一区二区三区 | 欧美日韩一区在线观看| 欧美日韩国产综合一区二区三区| 97精品视频在线观看自产线路二| 欧美在线不卡视频| 日韩三级高清在线| 国产色婷婷亚洲99精品小说| 亚洲另类在线制服丝袜| 日韩—二三区免费观看av| 国产福利91精品| 色婷婷亚洲精品| 日韩一区二区精品| 国产精品久久久久国产精品日日| 亚洲午夜免费电影| 国内外精品视频| 在线观看国产日韩| 欧美一级二级在线观看| 国产精品人成在线观看免费| 日韩高清不卡在线| 丁香激情综合国产| 欧美日韩高清在线播放| 国产亚洲精品久| 日本特黄久久久高潮| 成人精品gif动图一区| 欧美疯狂性受xxxxx喷水图片| 欧美国产激情一区二区三区蜜月 | 色偷偷成人一区二区三区91| 精品国产乱码久久| 午夜电影网亚洲视频| 成人午夜精品在线| 欧美一卡在线观看| 亚洲老妇xxxxxx| 国产白丝精品91爽爽久久| 91精品一区二区三区在线观看| 亚洲欧洲精品天堂一级| 激情欧美一区二区三区在线观看| 欧美日韩亚洲国产综合| 国产精品美女久久久久久久| 九色|91porny| 欧美一区二区免费观在线| 亚洲色图欧美在线| 国产99久久久国产精品潘金网站| 91精品久久久久久蜜臀| 亚洲午夜羞羞片| 色av综合在线| 亚洲欧美综合网| 高清久久久久久| 亚洲国产精华液网站w| 国产精品自拍一区| 日韩视频一区二区在线观看| 日韩av成人高清| 欧美日韩成人一区二区| 亚洲成人动漫av| 欧美性感一区二区三区| 亚洲蜜臀av乱码久久精品|