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

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

?? i2c.c

?? yampp的MP3資料 非常好大家來看一看
?? C
字號:

/*
  Copyright (C) 2000 Jesper Hansen <jesperh@telia.com>.

  This file is part of the yampp system.

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License
  as published by the Free Software Foundation; either version 2
  of the License, or (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software Foundation, 
  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/

#include <io.h>
#include <signal.h>
#include "i2c.h"

#include <progmem.h>
#include "uart.h"
#include "delay.h"

#define READ    0x01    // I2C READ bit

#define SCLPORT	PORTB
#define SDAPORT	PORTB

#define SCL	PB4
#define	SDA	PB3

#define QDEL	delay(5)
#define HDEL	delay(10)

#define I2C_SDL_LO      cbi( SDAPORT, SDA)
#define I2C_SDL_HI      sbi( SDAPORT, SDA)

#define I2C_SCL_LO      cbi( SCLPORT, SCL); 
#define I2C_SCL_HI      sbi( SCLPORT, SCL); 


#define I2C_SCL_TOGGLE  HDEL; I2C_SCL_HI; HDEL; I2C_SCL_LO;
#define I2C_START       I2C_SDL_LO; QDEL; I2C_SCL_LO; 
#define I2C_STOP        HDEL; I2C_SCL_HI; QDEL; I2C_SDL_HI; HDEL;


#define I2CTRACE        PRINT
#define I2CTRACE2(a,b,c)	PRINT(a); UART_Printfu08(b); PRINT(c);


//int q; // for debug

UINT i2c_putbyte(BYTE b)
{
    int i;

//    I2CTRACE2("<",b,">");
	
	for (i=7;i>=0;i--)
	{
		if ( b & (1<<i) )
        	I2C_SDL_HI;
        else
            I2C_SDL_LO;   // address bit
        I2C_SCL_TOGGLE;     // clock HI, delay, then LO
    }

    I2C_SDL_HI;            // leave SDL HI

	// added    
	cbi(SDAPORT-1, SDA);	// change direction to input on SDA line (may not be needed)

	HDEL;
    I2C_SCL_HI;                     // clock back up
  	
  	b = inp(SDAPORT-2) & (1<<SDA);  // get the ACK bit

	HDEL;
    I2C_SCL_LO;	// not really ??

	sbi(SDAPORT-1, SDA);	// change direction back to output

	HDEL;

    return (b == 0);            // return ACK value
}


BYTE i2c_getbyte(UINT last)
{
    int i;
    BYTE c,b = 0;

		
    I2C_SDL_HI;            // make sure pullups are ativated

	cbi(SDAPORT-1, SDA);	// change direction to input on SDA line (may not be needed)

    for (i=7;i>=0;i--)
	{
		HDEL;
        I2C_SCL_HI;             // clock HI

	  	c = inp(SDAPORT-2) & (1<<SDA);  

        b <<= 1;
        if (c)
            b |= 1;

		HDEL;
    	I2C_SCL_LO;             // clock LO
    }

	sbi(SDAPORT-1, SDA);	// change direction to output on SDA line
  
    if (last)
	    I2C_SDL_HI;                	// set NAK
    else
	    I2C_SDL_LO;                	// set ACK

    I2C_SCL_TOGGLE;            // clock pulse

    I2C_SDL_HI;            // leave with SDL HI

//    I2CTRACE2("<",b,">");
	
    return b;            // return received byte
}





/**************************************************************************/
/* I2C public functions 												  */
/**************************************************************************/

/*
    Initialize I2C communication
*/
void i2c_init()
{

	sbi( SDAPORT-1, SDA);	// set SDA as output
	sbi( SCLPORT-1, SCL);	// set SCL as output

	I2C_SDL_HI;
	I2C_SCL_HI;
}


/*
    Send a byte sequence on the I2C line
*/
void i2c_send(BYTE dev, BYTE sub, BYTE length, BYTE *data)
{
//    I2CTRACE("i2c_send ");

    I2C_START;      		// do start transition
    i2c_putbyte(dev);   	// send DEVICE address
    i2c_putbyte(sub);   	// and the subaddress

    // send the data
    while (length--)
        i2c_putbyte(*data++);

    I2C_SDL_LO;             // clear data line and
	I2C_STOP;               // send STOP transition
//    I2CTRACE("\n");

}


/*
    Retrieve a byte sequence on the I2C line
*/
void i2c_receive(BYTE dev, BYTE sub, BYTE length, BYTE *data)
{
    int j = length;
    BYTE *p = data;

//    I2CTRACE("i2c_receive ");

    I2C_START;				// do start transition
    i2c_putbyte(dev);   	// send DEVICE address
    i2c_putbyte(sub | READ);   	// and the subaddress

	HDEL;
    I2C_SCL_HI;      		// do a repeated START
    I2C_START;          	// transition

    i2c_putbyte(dev | READ);// resend DEVICE, with READ bit set

    // receive data bytes
    while (j--)
        *p++ = i2c_getbyte(j == 0);

    I2C_SDL_LO;             // clear data line and
    I2C_STOP;               // send STOP transition

//    I2CTRACE("\n");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美videossexotv100| 久久精品视频在线看| 日韩理论在线观看| 91精品欧美一区二区三区综合在 | 精品国产一区二区三区久久久蜜月| 欧美r级电影在线观看| 国产精品麻豆99久久久久久| 一区二区三区四区视频精品免费| 丝袜脚交一区二区| 成人一区在线观看| 这里只有精品电影| 欧美成人官网二区| 一区二区三区四区亚洲| 青青草97国产精品免费观看无弹窗版| 国产美女精品一区二区三区| 色先锋aa成人| 亚洲国产高清在线观看视频| 午夜精品影院在线观看| 国产成人久久精品77777最新版本| 婷婷久久综合九色综合伊人色| 国产做a爰片久久毛片| 日韩精品一二三区| 久久99精品一区二区三区| av亚洲精华国产精华| 精品伦理精品一区| 亚洲国产精品久久人人爱| 成人免费视频app| 精品国产乱码久久久久久免费| **欧美大码日韩| 国产成人在线视频网址| 欧美日韩精品免费观看视频| 国产婷婷色一区二区三区| 香蕉久久夜色精品国产使用方法 | 日本丶国产丶欧美色综合| 久久久噜噜噜久久中文字幕色伊伊 | 欧美区在线观看| 综合自拍亚洲综合图不卡区| 精品一区在线看| 777午夜精品免费视频| 亚洲精品老司机| av成人老司机| 中文子幕无线码一区tr| 国产乱人伦偷精品视频不卡| 成人一区二区三区视频| 26uuu精品一区二区在线观看| 亚欧色一区w666天堂| 成人性生交大合| 久久精品夜色噜噜亚洲a∨| 亚洲午夜激情av| 欧美绝品在线观看成人午夜影视| 中文字幕五月欧美| av电影在线观看不卡| 日韩三级电影网址| 欧美aaaaa成人免费观看视频| 欧美日高清视频| 亚洲成人午夜影院| 99久久婷婷国产综合精品电影| 欧美一区二区网站| 麻豆久久一区二区| 亚洲精品一区二区三区福利| 青草av.久久免费一区| 日韩欧美视频在线| 国产一区不卡视频| 欧美一二区视频| 国精产品一区一区三区mba视频| 26uuu精品一区二区三区四区在线| 国产综合久久久久影院| 日本一区二区免费在线观看视频| 国产成人精品亚洲日本在线桃色| 国产免费观看久久| 韩日精品视频一区| 日韩美女视频一区二区| 91亚洲永久精品| 亚洲国产日韩一区二区| 777a∨成人精品桃花网| 国产在线乱码一区二区三区| 日韩欧美黄色影院| 岛国av在线一区| 色噜噜偷拍精品综合在线| 日一区二区三区| 中文字幕一区二区三区在线不卡| 91精品国产综合久久精品麻豆 | 97精品国产97久久久久久久久久久久| 婷婷中文字幕综合| 亚洲人成亚洲人成在线观看图片| 欧美一区二区精品久久911| av在线播放不卡| 国产一区视频在线看| 亚洲一区二区成人在线观看| 中文字幕精品一区二区三区精品| 91精品在线一区二区| 色综合久久中文字幕| 国产91露脸合集magnet| 秋霞电影网一区二区| 亚洲影院理伦片| 国产精品初高中害羞小美女文| 欧美不卡视频一区| 欧美巨大另类极品videosbest| 91网站视频在线观看| 国产成人在线看| 精品一区二区三区在线观看| 亚洲成va人在线观看| 亚洲综合清纯丝袜自拍| 中文字幕免费在线观看视频一区| 2023国产精品视频| 日韩一区二区视频| 在线观看三级视频欧美| 91在线丨porny丨国产| 成人午夜短视频| 国产麻豆视频精品| 国产剧情一区二区三区| 国产一区二区三区观看| 国内成人免费视频| 国产美女视频一区| 国产成人av一区二区三区在线 | 欧美中文字幕亚洲一区二区va在线| 国产精品2024| 国产福利精品一区| 国产大陆精品国产| 成人av影院在线| 色噜噜狠狠色综合欧洲selulu| 91美女视频网站| 欧美日韩一本到| 69堂成人精品免费视频| 欧美一区二区日韩一区二区| 欧美大胆人体bbbb| 久久蜜桃av一区精品变态类天堂| 26uuu国产日韩综合| 精品国产伦一区二区三区观看体验| 日韩三级.com| 久久精品视频免费| **网站欧美大片在线观看| 亚洲人亚洲人成电影网站色| 亚洲精品五月天| 婷婷亚洲久悠悠色悠在线播放| 日本成人在线网站| 国产精品一区2区| 不卡的av网站| 欧美日韩你懂的| 精品福利一区二区三区免费视频| 中文字幕免费不卡| 亚洲国产一区二区在线播放| 免费三级欧美电影| 国产**成人网毛片九色| 91成人免费在线视频| 欧美一三区三区四区免费在线看 | 国产精品一区不卡| 在线观看国产一区二区| 日韩西西人体444www| 国产视频亚洲色图| 亚洲在线中文字幕| 国产一区在线不卡| 欧美午夜一区二区| 国产日韩欧美精品一区| 亚洲一区自拍偷拍| 国产麻豆欧美日韩一区| 欧美日韩一区二区三区四区 | 日韩精品影音先锋| 国产精品国产自产拍高清av王其| 午夜精品久久久久影视| 国产iv一区二区三区| 777欧美精品| 国产精品久久久久影院| 青青草成人在线观看| 91看片淫黄大片一级在线观看| 日韩一级大片在线| 亚洲精品一卡二卡| 成人一区二区三区在线观看| 91精品久久久久久蜜臀| 亚洲男人的天堂网| 国产精品1024久久| 日韩一级黄色片| 亚洲国产美国国产综合一区二区| 国产精品18久久久久久vr| 在线播放91灌醉迷j高跟美女 | 精品国产免费一区二区三区四区 | 国产一区二区三区久久悠悠色av| 在线一区二区三区四区| 国产三级精品视频| 国产一区二区福利视频| 日韩西西人体444www| 一区二区欧美精品| 成人精品gif动图一区| 欧美精品一区二区三区在线播放| 亚洲夂夂婷婷色拍ww47| 97久久精品人人做人人爽| 国产午夜精品一区二区三区嫩草| 婷婷久久综合九色综合伊人色| 色国产精品一区在线观看| 国产精品不卡视频| 成人精品视频.| 日本一区二区三区dvd视频在线| 国产在线国偷精品免费看| 日韩视频一区二区三区在线播放| 亚洲图片欧美色图| 欧美日韩国产电影| 日本不卡视频在线观看| 欧美精品自拍偷拍动漫精品| 亚洲一区二区在线视频| 欧美性猛片aaaaaaa做受|