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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? iso.h

?? AVR ISO9141 OBDII Souce code
?? H
字號:
/*************************************************************************
**  AVR ISO 9141/14230-2 Interface
**  by Michael Wolf
**
**  Released under GNU GENERAL PUBLIC LICENSE
**
**  contact: webmaster@mictronics.de
**  homepage: www.mictronics.de
**
**  Revision History
**
**  when         what  who			why
**
**************************************************************************/
#ifndef __ISO_H__
#define __ISO_H__

/*** CONFIG START ***/

#define ISO_K_LINE_PORT	PORTD	// K line output port
#define ISO_K_LINE_DIR 	DDRD	// K line direction register
#define ISO_K_LINE_PIN	PIND	// K line input port
#define ISO_K_LINE_OUT	7			// K line output pin
#define ISO_K_LINE_IN		2			// K line input pin

#define ISO_L_LINE_PORT	PORTB	// L line output port
#define ISO_L_LINE_DIR 	DDRB	// L line direction register
#define ISO_L_LINE_OUT	0			// L line output pin

#define ISO_INIT_LED_PORT	PORTD	// bus init LED output port
#define ISO_INIT_LED_DIR 	DDRD	// bus init LED direction register
#define ISO_INIT_LED_OUT	4			// bus init LED output pin

#define	ISO_K_LINE_OUT_NEG	// define K line output level inverted by hardware
#define	ISO_L_LINE_OUT_NEG	// define L line output level inverted by hardware
#define	ISO_K_LINE_IN_NEG		// define K line input level inverted by hardware

/*** CONFIG END ***/

#ifdef ISO_K_LINE_OUT_NEG
	#define iso_k_high() ISO_K_LINE_PORT &=~ _BV(ISO_K_LINE_OUT)
	#define iso_k_low() ISO_K_LINE_PORT |= _BV(ISO_K_LINE_OUT)
	#define is_k_out_high() bit_is_set(ISO_K_LINE_PORT, ISO_K_LINE_OUT)
#else
	#define iso_k_high() ISO_K_LINE_PORT |= _BV(ISO_K_LINE_OUT)
	#define iso_k_low() ISO_K_LINE_PORT &=~ _BV(ISO_K_LINE_OUT)
	#define is_k_out_high() bit_is_clear(ISO_K_LINE_PORT, ISO_K_LINE_OUT)
#endif


#ifdef ISO_K_LINE_IN_NEG
#define is_k_in_high() bit_is_clear(ISO_K_LINE_PIN, ISO_K_LINE_IN)
#else
#define is_k_in_high() bit_is_set(ISO_K_LINE_PIN, ISO_K_LINE_IN)
#endif


#ifdef ISO_L_LINE_OUT_NEG
	#define iso_l_high() ISO_L_LINE_PORT &=~ _BV(ISO_L_LINE_OUT)
	#define iso_l_low() ISO_L_LINE_PORT |= _BV(ISO_L_LINE_OUT)
#else
	#define iso_l_high() ISO_L_LINE_PORT |= _BV(ISO_L_LINE_OUT)
	#define iso_l_low() ISO_L_LINE_PORT &=~ _BV(ISO_L_LINE_OUT)
#endif


#define bus_init_led_on() ISO_INIT_LED_PORT |= _BV(ISO_INIT_LED_OUT)
#define bus_init_led_off() ISO_INIT_LED_PORT &=~ _BV(ISO_INIT_LED_OUT)

// define error return codes
#define ISO_RETURN_CODE_UNKNOWN    0
#define ISO_RETURN_CODE_OK         1
#define ISO_RETURN_CODE_BUS_BUSY   2
#define ISO_RETURN_CODE_BUS_ERROR  3
#define ISO_RETURN_CODE_DATA_ERROR 4
#define ISO_RETURN_CODE_NO_DATA    5
#define ISO_RETURN_CODE_DATA       6
#define ISO_RETURN_CODE_INIT_ERROR 7

// convert microseconds to counter values
#define us2cnt(us) ((unsigned int)((unsigned long)(us) / (1000000L / (float)((unsigned long)MCU_XTAL / 64L))))

// convert milliseconds to counter values
#define ms2cnt(ms)   ((unsigned int) us2cnt((unsigned long)(ms) * 1000))

/* Timing parameters

	Names are taken from ISO9141 and ISO14230-2

*/
// 5 Baud Init
#define TIME_5_BAUD_BIT ms2cnt(200)	// ms; bit hold time
#define TIME_W1_MIN ms2cnt(60)	// ms; min time end of address to start of sync pattern
#define TIME_W1_MAX ms2cnt(300)	// ms; max time end of address to start of sync pattern
#define TIME_W2_MIN ms2cnt(5)		// ms; min time end of sync to start key byte 1
#define TIME_W2_MAX ms2cnt(20)	// ms; max time end of sync to start key byte 1
#define TIME_W3_MIN ms2cnt(0)		// ms; min time key byte 1 to key byte 2
#define TIME_W3_MAX ms2cnt(20)	// ms; max time key byte 1 to key byte 2
#define TIME_W4_MIN ms2cnt(25)	// ms; min time key byte 2 to inverse addr
#define TIME_W4_MAX ms2cnt(50)	// ms; max time key byte 2 to inverse addr
#define TIME_W5_MIN ms2cnt(300)	// ms; min bus idle time before 5 Baud init addr byte

// Fast Init
#define TIME_TiniL	ms2cnt(25)	// ms; wake up pattern low time
#define TIME_TiniH	ms2cnt(25)	// ms; wake up pattern high time
#define TIME_FASTINIT_P2_MAX 13 // ms; P2_MAX_DEF / 4ms receive routine timeout

// Message timing
#define TIME_P1_MAX			ms2cnt(20)	// ms; max inter byte time response
#define TIME_P2_MAX_DEF	ms2cnt(50)	// ms; default max time request to response
#define TIME_P3_DEF			ms2cnt(55)	// ms; default time response to new request
#define TIME_P4_DEF			ms2cnt(8)		// ms; default inter byte time tester

#define PRESCALER_1    1
#define PRESCALER_8    2
#define PRESCALER_64   3
#define PRESCALER_256  4
#define PRESCALER_1024 5

#define T0_PRESCALER		PRESCALER_8  // Timer0 resolution = 1us @ 7.3728MHz
#define T1_PRESCALER		PRESCALER_64  // Timer1 resolution = 8us @ 7.3728MHz

// 4ms no data timeout
#define TIME_4ms ms2cnt(4)

// baud rate value for 10,4kBaud
#define N_10400  (unsigned char)((unsigned long)MCU_XTAL / ((unsigned long)10400 * (unsigned long)8))

volatile struct{
  unsigned char uart_buffer;                                                      
  unsigned char uart_status;
  unsigned char uart_reload;
  signed char uart_bit_cnt;
	unsigned char uart_n_baud;
	unsigned char keybyte1;
	unsigned char keybyte2;
  }iso_glob;

/* ISO UART status flags in iso_global */
#define   RDY   0x01
#define   TD    0x02                             
#define   BUSY  0x04
#define   ERROR 0x08
#define   AUTOBAUD 0x10
#define		BAUDMEAS 0x20

/* define bit macros */
#define SETBIT(x,y) (x |= (y)) 		// Set bit y in byte x
#define CLEARBIT(x,y) (x &= (~y)) // Clear bit y in byte x
#define CHECKBIT(x,y) (x & (y)) 	// Check bit y in byte x

/* Header message format - see ISO14230-2 */
#define FMT_NO_ADDR			0x00
#define FMT_CARB				0x40
#define FMT_ADDR      	0x80
#define FMT_MSG_LENGTH  0x3F


/* Functions */
extern void iso_hardware_init(void);
extern char iso_5_baud_init(unsigned char addr);
extern char iso_fast_init(void);

extern void iso_uart_init(void);
extern void iso_uart_putc(char data);
extern unsigned char iso_checksum(unsigned char *msg_buf, unsigned int nbytes);
extern char iso_send_msg(unsigned char *msg_buf, unsigned int nbytes);
extern unsigned int iso_recv_msg(unsigned char *msg_buf);

static inline void timer1_start(unsigned char val)
{
    TCCR1B = val;
    TCNT1 = 0;
}

static inline void timer1_stop(void)
{
    TCCR1B = 0x00;
}

static inline void timer1_set(unsigned int val)
{
    TCNT1 = val;
}


static inline void timer0_start(unsigned char val)
{
    TCCR0 = val;
    TCNT0 = 0;
}

static inline void timer0_stop(void)
{
    TCCR0 = 0x00;
}

static inline void timer0_set(unsigned char val)
{
    TCNT0 = val;
}
#endif // __ISO_H__

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线视频你懂得| 国产欧美视频在线观看| 久久色中文字幕| 国产精品久久久久久久裸模| 亚洲美女视频在线观看| 日韩福利视频网| 岛国一区二区三区| 欧美剧情片在线观看| 久久精品男人的天堂| 夜夜精品视频一区二区 | 日韩高清中文字幕一区| 国产高清精品网站| 欧美区视频在线观看| 国产精品久久久久久久午夜片| 日韩精品亚洲一区二区三区免费| 国产成人精品综合在线观看 | 国产成人自拍在线| 在线观看91精品国产麻豆| 久久久91精品国产一区二区精品| 丝袜诱惑制服诱惑色一区在线观看 | 日韩av不卡一区二区| 色视频欧美一区二区三区| 久久日韩粉嫩一区二区三区| 日本人妖一区二区| 欧美日韩国产高清一区二区三区| 国产精品另类一区| 国产精品一级黄| 久久先锋影音av鲁色资源| 一区二区三区中文字幕在线观看| 国产91综合一区在线观看| 久久这里只有精品首页| 老司机精品视频导航| 精品日韩一区二区三区 | 成人黄色免费短视频| 国产欧美日韩三级| 久久精品噜噜噜成人88aⅴ| 91精品国产欧美一区二区成人| 亚洲免费三区一区二区| 91天堂素人约啪| 亚洲精品ww久久久久久p站| 一本一本大道香蕉久在线精品 | 婷婷亚洲久悠悠色悠在线播放| 欧美在线制服丝袜| 亚洲第一激情av| 日韩午夜电影在线观看| 国产精品亚洲午夜一区二区三区 | 日本不卡视频在线| 久久久欧美精品sm网站| 丰满少妇久久久久久久| 亚洲欧美视频在线观看视频| 欧美午夜片在线看| 免费成人深夜小野草| 久久久三级国产网站| 在线免费观看一区| 国产真实乱偷精品视频免| 国产欧美一区二区精品性色超碰| 成人免费精品视频| 婷婷综合在线观看| 亚洲国产高清aⅴ视频| 欧美日韩高清一区二区三区| 国产自产v一区二区三区c| 国产精品动漫网站| 欧美日韩国产123区| 成人福利视频在线看| 蜜臀av一级做a爰片久久| 国产精品国产三级国产普通话三级 | 日韩亚洲欧美一区| 色综合天天综合网天天看片| 久久精品国产99国产| 亚洲综合在线第一页| 久久精品亚洲精品国产欧美kt∨| 色呦呦国产精品| 国产成人综合在线| 蜜臀a∨国产成人精品| 一级中文字幕一区二区| 中文字幕亚洲电影| 国产肉丝袜一区二区| 2023国产一二三区日本精品2022| 在线免费观看日本欧美| 国产成人精品影院| 久久se精品一区二区| 首页综合国产亚洲丝袜| 樱花草国产18久久久久| 国产精品高潮呻吟久久| 欧美激情一区二区在线| 久久久激情视频| 久久蜜桃一区二区| 久久午夜色播影院免费高清| 欧美白人最猛性xxxxx69交| 日韩欧美中文一区| 精品黑人一区二区三区久久 | 91麻豆精品91久久久久同性| 欧美偷拍一区二区| 欧美视频日韩视频| 欧美人成免费网站| 日韩一区二区三区在线| 欧美r级在线观看| 精品久久久久香蕉网| 日本91福利区| 国产自产2019最新不卡| 国产在线视频一区二区| 丁香婷婷深情五月亚洲| 大桥未久av一区二区三区中文| 91丨九色porny丨蝌蚪| 91国内精品野花午夜精品| 欧美人xxxx| 中文字幕乱码日本亚洲一区二区| 国产精品久久久久一区| 亚洲成av人影院| 国产精品一区二区久激情瑜伽 | 丁香激情综合五月| 欧美伊人久久大香线蕉综合69 | 国产一区二区三区在线观看免费| 国产一区 二区 三区一级| 99国产精品视频免费观看| 在线视频你懂得一区二区三区| 日韩欧美中文字幕精品| 国产精品嫩草99a| 五月激情综合婷婷| 本田岬高潮一区二区三区| 欧美一区二区黄色| 一区二区高清视频在线观看| 国产高清精品久久久久| 欧美日韩一区在线| 欧美国产欧美综合| 久久国产精品99精品国产| 日本二三区不卡| 中文字幕av一区二区三区免费看| 亚洲午夜三级在线| 高清国产午夜精品久久久久久| 欧美久久一区二区| 亚洲激情成人在线| 成人午夜免费电影| 精品免费日韩av| 首页国产欧美久久| 91成人免费电影| 亚洲免费观看在线视频| 99麻豆久久久国产精品免费优播| 精品国产在天天线2019| 日韩激情中文字幕| 欧美日韩高清一区二区不卡| 亚洲激情av在线| 91黄色免费观看| 亚洲一区二区三区四区在线观看 | 欧美成人一区二区三区| 日本va欧美va精品发布| 日韩亚洲欧美高清| 精品一区二区三区不卡| 久久这里只有精品首页| 国产一区二区在线看| 国产视频一区二区在线观看| 国产91丝袜在线18| 国产精品私人影院| 99精品欧美一区二区三区综合在线| 国产精品三级在线观看| 99精品欧美一区| 亚洲一区二区三区自拍| 日韩一级二级三级| 国产美女精品在线| 国产精品久久久久aaaa| 色国产精品一区在线观看| 亚洲最新视频在线播放| 欧美高清hd18日本| 久久99国产精品免费| 国产片一区二区| 在线欧美日韩国产| 欧美人妖巨大在线| 国产精品一区不卡| 一区二区三区不卡视频在线观看 | 99re免费视频精品全部| 午夜不卡av在线| 国产精品视频免费看| 欧美色窝79yyyycom| 国产福利91精品| 日韩精品91亚洲二区在线观看| 欧美mv日韩mv国产网站| 色综合久久88色综合天天6| 理论片日本一区| 一区二区三区av电影 | 国产色一区二区| 91精品黄色片免费大全| 91小视频免费观看| 免费人成网站在线观看欧美高清| 久久精品夜夜夜夜久久| 91精品国产色综合久久不卡电影| 国产99久久久国产精品潘金网站| 午夜激情一区二区| 亚洲男同性视频| 中文无字幕一区二区三区| 欧美一区二区网站| 欧美亚洲禁片免费| 色婷婷精品久久二区二区蜜臀av| 国产成人8x视频一区二区| 精品一区精品二区高清| 水野朝阳av一区二区三区| 一区二区三区在线视频播放| 亚洲私人黄色宅男| 中文字幕一区二区三区在线播放 | 日韩欧美一级在线播放| 7799精品视频|