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

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

?? twi.c

?? atmel ARM7單片機at91sam7x256軟件中斷實驗程序
?? C
字號:

/**************************************************************************************************
*
* Copyright (C) ART Limited, 2006. All rights reserved.
* 
* File:          twi.c
* Programmed by: allan
* Data:          2006.12.18
* 
**************************************************************************************************/

#include "project.h"

#define ADRR_24C01A    (0x50 << 16)      //器件地址
#define ERROR          (AT91C_TWI_NACK)

/*******************************************************************************
 * 說明:AT91F_SetTwiClock函數,初始化
 * 參數:無
 * 返回值:無
*******************************************************************************/
void AT91F_SetTwiClock(void) 
{
	int sclock;
	
	/* 這里, CKDIV = 1 and CHDIV=CLDIV  ==> CLDIV = CHDIV = 1/4*((Fmclk/FTWI) -6)*/
	sclock = (10*MCK /AT91C_TWI_CLOCK);
	
	if (sclock % 10 >= 5)	sclock = (sclock /10) - 5;
	
	else	sclock = (sclock /10)- 6;
	
	sclock = (sclock + (4 - sclock %4)) >> 2;	  // 除 4
    
    AT91C_BASE_TWI->TWI_CWGR	= ( 1<<16 ) | (sclock << 8) | sclock  ;
}

/*******************************************************************************
 * 說明:AT91F_TWI_WriteByte函數,向從器件發送一個字節
 * 參數:const AT91PS_TWI pTwi ,int mode, int int_address, char *data2send, int nb
 * 返回值:int
*******************************************************************************/
int AT91F_TWI_WriteByte(const AT91PS_TWI pTwi ,int mode, int int_address, char *data2send, int nb) 
{
	unsigned int status,counter=0,error=0;

	if ((mode & AT91C_TWI_IADRSZ) != 0)
          pTwi->TWI_IADR = int_address;             // 設置 TWI 內部地址寄存器
    pTwi->TWI_MMR = mode & ~AT91C_TWI_MREAD;        // 設置 TWI 主機模式寄存器

	if(nb <2)
	  {
		  pTwi->TWI_CR = AT91C_TWI_START | AT91C_TWI_MSEN | AT91C_TWI_STOP;
		  pTwi->TWI_THR = *data2send;
	  }
	else 
	  {
	      for(counter=0;counter<nb;counter++)      // 設置 TWI 主機模式寄存器
	         {       
                 pTwi->TWI_CR = AT91C_TWI_START | AT91C_TWI_MSEN;
                 
                 if (counter == (nb - 1)) pTwi->TWI_CR = AT91C_TWI_STOP;
                     status = pTwi->TWI_SR;
                 
                 if ((status & ERROR) == ERROR) error++;
                 
                 while (!(status & AT91C_TWI_TXRDY))
                    {
                        status = pTwi->TWI_SR;
                        if ((status & ERROR) == ERROR) error++;
                    }
                 
                 pTwi->TWI_THR = *(data2send+counter);
	         }
	  }
	  
	status = pTwi->TWI_SR;
	
	if ((status & ERROR) == ERROR) error++;
	
	while (!(status & AT91C_TWI_TXCOMP))
	  {
    		status = pTwi->TWI_SR;
    		if ((status & ERROR) == ERROR) error++;
      }
      
	return error;
}

/*******************************************************************************
 * 說明:AT91F_TWI_ReadByte函數,讀取從器件一個字節
 * 參數:const AT91PS_TWI pTwi ,int mode, int int_address, char *data, int nb
 * 返回值:int
*******************************************************************************/
int AT91F_TWI_ReadByte(const AT91PS_TWI pTwi ,int mode, int int_address, char *data, int nb)
{
	unsigned int status,counter=0,error=0;
	
	if ((mode & AT91C_TWI_IADRSZ) != 0)
       pTwi->TWI_IADR = int_address;                // 設置 TWI 內部地址寄存器
	
	pTwi->TWI_MMR = mode | AT91C_TWI_MREAD;         // 設置 TWI 主機模式寄存器
	
	if (nb == 1)
 	  {                                   // 開始傳送
	      pTwi->TWI_CR = AT91C_TWI_START | AT91C_TWI_STOP;	
	      status = pTwi->TWI_SR;
	   
          if ((status & ERROR) == ERROR) error++;
	
	      while (!(status & AT91C_TWI_TXCOMP))
	          {
    	          status = pTwi->TWI_SR;
                  if ((status & ERROR) == ERROR) error++;
    	      }

	      *(data) = pTwi->TWI_RHR;
	  }
 	
 	else
 	  {
 	      pTwi->TWI_CR = AT91C_TWI_START | AT91C_TWI_MSEN;
	      status = pTwi->TWI_SR;
	      
	      if ((status & ERROR) == ERROR) error++;
           while (!(status & AT91C_TWI_TXCOMP))     // 等待傳送完畢
           {    
   		       status = pTwi->TWI_SR;
   		       if ((status & ERROR )== ERROR) error++;
    		
    		   if(status & AT91C_TWI_RXRDY)
    		     {
			          *(data+counter++) = pTwi->TWI_RHR;
			          if (counter == (nb - 1)) pTwi->TWI_CR = AT91C_TWI_STOP;
		         }
	       }
	  }
	  
	return 0;
}

/*******************************************************************************
 * 說明:AT91F_TWI_Open函數,初始化TWI器件
 * 參數:無
 * 返回值:無
*******************************************************************************/
void AT91F_TWI_Open(void)
{
	AT91F_TWI_CfgPIO ();                     // 配置 TWI PIOs
	AT91F_TWI_CfgPMC ();                     // 通過允許TWI時鐘來配置PMC
	AT91F_TWI_Configure (AT91C_BASE_TWI);    // 配置TWI主機模式
	AT91F_SetTwiClock();                     // 設置TWI時鐘波形發生器寄存器
}


/*******************************************************************************
 * 說明:AT91F_TestEEPROM函數,測試EEPROM
 * 參數:無
 * 返回值:int
 *         0:成功
 *        -1:失敗
*******************************************************************************/
int AT91F_TestEEPROM(void)
{
	char write, read,status;
	AT91F_TWI_Open();                 // 初始化TWI器件
	write = 0x55;
	
	// 先寫入再讀取一個字節
	status =AT91F_TWI_WriteByte(AT91C_BASE_TWI, ADRR_24C01A | AT91C_TWI_IADRSZ_2_BYTE, 0x04, &write, 1);
	if (status)
	   {
		  AT91F_DBGU_Printf("Write Satus = %d\n\r",status);
       }
    
    DelayNS(10);      // 等待10ms
	
	status =AT91F_TWI_ReadByte(AT91C_BASE_TWI, ADRR_24C01A | AT91C_TWI_IADRSZ_2_BYTE, 0x04, &read, 1);
	if (status)
	   {
		  AT91F_DBGU_Printf("Read Satus = %d\n\r",status);
       }
	
	if (read == write) 
	   {
	  	  AT91F_DBGU_Printk("Test TWI OK\n\r");
	  	  
          return 0;
	   } 
	else 
	   {
	 	  AT91F_DBGU_Printk("Error during test\n\r");
          AT91F_DBGU_Printf("Error during test write 0x%X and read 0x%X\n\r",write,read);

          return -1;
	   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久精品app| 久热成人在线视频| 日本精品视频一区二区三区| 亚洲日本丝袜连裤袜办公室| 在线观看欧美黄色| 日韩精品一级二级| 日韩免费福利电影在线观看| 国产成人h网站| 综合电影一区二区三区| 日本高清不卡一区| 美女一区二区三区在线观看| 国产午夜精品福利| 一本色道久久综合狠狠躁的推荐| 亚洲国产一区二区a毛片| 日韩欧美精品在线视频| 成人在线视频一区二区| 一区二区不卡在线播放 | 午夜av一区二区| 欧美成人aa大片| 成人国产免费视频| 婷婷成人激情在线网| 久久精品一区蜜桃臀影院| 色综合久久天天| 麻豆91小视频| 亚洲色图丝袜美腿| 精品国产一区二区三区久久影院| 国产999精品久久久久久绿帽| 亚洲精品欧美激情| 久久综合久久综合九色| 色偷偷一区二区三区| 美国十次综合导航| 亚洲男人电影天堂| 精品成人一区二区三区四区| 午夜精品爽啪视频| 日韩欧美激情四射| 国产欧美精品一区二区色综合朱莉 | 男女男精品网站| 亚洲精品乱码久久久久久久久 | 国产综合久久久久久鬼色| 国产精品久久精品日日| 亚洲精品国久久99热| 亚洲不卡一区二区三区| 亚洲r级在线视频| 免费不卡在线观看| 日韩欧美激情四射| 夜夜嗨av一区二区三区网页| 国产精品一区三区| 2欧美一区二区三区在线观看视频| 亚洲一区二区视频在线观看| 亚洲福利视频一区二区| 成人精品电影在线观看| 欧美成人欧美edvon| 成人福利视频在线| 26uuu欧美| 一区二区久久久久久| 欧美午夜一区二区三区 | 91在线视频网址| 日韩亚洲欧美在线观看| 香港成人在线视频| 色婷婷国产精品久久包臀| 国产精品伦理一区二区| 国产精品夜夜嗨| 26uuu色噜噜精品一区| 综合久久久久久久| 欧美综合色免费| 免费在线视频一区| 国产亚洲精久久久久久| 青青草视频一区| 国产欧美日韩精品一区| 91麻豆国产精品久久| 人妖欧美一区二区| 久久久亚洲精品石原莉奈| 六月丁香婷婷久久| 国产日韩欧美精品在线| 中文字幕精品三区| 亚洲精品国产成人久久av盗摄 | 99久久精品99国产精品| 国产一区二区主播在线| 精品一区二区免费| 精品影视av免费| 国产自产v一区二区三区c| 日本三级韩国三级欧美三级| 首页欧美精品中文字幕| 亚洲成人精品一区| 午夜精品久久久久久久久久久 | 欧美久久一区二区| 欧美日韩精品一区二区三区四区| 欧美午夜片在线看| 欧美一区日韩一区| 精品伦理精品一区| 国产日韩欧美一区二区三区乱码| 国产日韩一级二级三级| 亚洲欧美在线aaa| 一区二区三区在线免费播放| 一区二区三区蜜桃| 日本一区中文字幕| 国产成a人亚洲| 色综合久久久久网| 欧美裸体bbwbbwbbw| 精品国免费一区二区三区| 欧美精彩视频一区二区三区| 国产精品福利av| 亚洲国产乱码最新视频| 色婷婷av一区二区| 欧美日韩你懂得| 日韩一级片在线观看| 国产日韩精品久久久| 一区二区中文视频| 亚洲成人av电影| 国产精品一区二区三区乱码| 91在线无精精品入口| 3atv在线一区二区三区| 国产日本欧美一区二区| 亚洲在线观看免费视频| 韩国一区二区视频| 日本高清不卡aⅴ免费网站| 欧美不卡123| 亚洲黄色性网站| 韩国理伦片一区二区三区在线播放| 成人免费不卡视频| 91 com成人网| 日韩美女视频19| 久久精品理论片| 91久久精品一区二区三| 26uuu亚洲综合色欧美| 亚洲男人的天堂在线观看| 精品一区二区精品| 在线亚洲欧美专区二区| 国产日韩欧美不卡在线| 午夜国产精品一区| 色哟哟精品一区| 久久久综合九色合综国产精品| 亚洲已满18点击进入久久| 国产精品系列在线观看| 欧美电影影音先锋| 一区二区三区日韩| 成人午夜伦理影院| 精品日产卡一卡二卡麻豆| 亚洲午夜精品17c| 成人动漫视频在线| 久久视频一区二区| 日韩成人精品在线观看| 色av一区二区| 中文字幕亚洲在| 国产精品888| 精品免费一区二区三区| 日韩高清一级片| 欧美日韩激情一区二区| 亚洲另类春色国产| www.性欧美| 欧美国产激情一区二区三区蜜月| 免费成人性网站| 日韩一区二区影院| 日日噜噜夜夜狠狠视频欧美人 | 91精品久久久久久久久99蜜臂| 亚洲天堂2016| 99视频一区二区| 国产色一区二区| 国产一二精品视频| 久久久精品综合| 国内不卡的二区三区中文字幕| 欧美福利电影网| 免费精品视频在线| 日韩视频国产视频| 美女一区二区久久| 精品对白一区国产伦| 久久疯狂做爰流白浆xx| 日韩欧美国产一区二区在线播放| 日韩国产在线观看| 日韩一级黄色大片| 久久99精品久久只有精品| 欧美成人欧美edvon| 国产在线一区二区| 久久久精品黄色| 成人深夜视频在线观看| 国产精品久久毛片av大全日韩| 丁香六月综合激情| 国产精品成人免费| 色老综合老女人久久久| 亚洲综合成人网| 91精品国产色综合久久| 激情五月婷婷综合网| 久久久精品免费观看| 91在线一区二区| 天堂久久一区二区三区| 日韩午夜电影av| 国产精品一二一区| 亚洲欧美日韩中文播放| 欧美视频中文一区二区三区在线观看| 婷婷综合在线观看| 精品国内片67194| 9人人澡人人爽人人精品| 一区二区三区不卡在线观看| 欧美精选午夜久久久乱码6080| 日本大胆欧美人术艺术动态| 精品成人一区二区三区| 99久久777色| 伦理电影国产精品| 中文字幕亚洲一区二区va在线| 精品视频一区 二区 三区|