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

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

?? main.c

?? 調試好的CAN總線的C語言程序及原理圖
?? C
字號:
/******************************************************************************
 * 
 * Controller Area Network (CAN) Demo-Application
 * Atmel AVR with Microchip MCP2515 
 *
 * Copyright (C) 2005 Martin THOMAS, Kaiserslautern, Germany
 * <eversmith@heizung-thomas.de>
 * http://www.siwawi.arubi.uni-kl.de/avr_projects
 *
 *****************************************************************************
 *
 * File    : main.c
 * Version : 0.9
 * 
 * Summary : Application Entry
 *           Test-Platform: Atmel ATmega + Microchip MCP2515
 *           Here the MCP2515 is clocked by the AVR (see clock_init()).
 *
 * This application uses Peter Fleury's free AVR-U(S)ART library which
 * has been slightly extended. See comments in uart.c.
 *
 *****************************************************************************/

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include <avr/eeprom.h>

#include "uart.h"
#include "spi.h"
#include "can.h"
#include "delay.h"
#include "termio.h"
#include "terminal.h"
#include "gpio.h"
#include "timebase.h"
#include "debughelper.h"

// #define VERBOSE (1)

#define OSCAL_READEEPROM (1)

#if defined(__AVR_ATmega8__) || defined(__AVR_ATmega16__)
#define OSCAL_EEPROMADDR ((void*)0x1ff)
#elif defined(__AVR_ATmega32__)
#define OSCAL_EEPROMADDR ((void*)0x3ff)
#else
#error "eeprom addr. undefined for this target"
#endif

#define OSCAL_VALUE (0xA5)

#define BAUD 19200

#define AUTOSENDPORT PORTD
#define AUTOSENDDDR  DDRD
#define AUTOSENDPIN  PIND
#define AUTOSENDBIT  PD7

#if 0
void clock_init_tc2(void)
// to clock the MCP2515
// - CTC Mode of Timer-Counter 2
// - Freq at OC2 (datasheet): f=f_c/(2*N*(1+OCR2))
//   with: f_c=system clock=8MHz, N=prescaler=1, OCR2=0 -> 4MHz @ Pin D7
{
	// set OC2-Pin (PD7 on ATmega16) as output
	DDRD |= _BV(DDD7);
	// CTC limit in OCR2
	OCR2=0;
	// Clear Timer on Compare Match (CTC) mode; toogle OC2(PD7) on compare match;
	//  clock select (timer2 prescaler) to clk/1 (no prescaling CS20=1)
	TCCR2=_BV(WGM21)|_BV(COM20)|_BV(CS20);
}
#endif

void clock_init_tc1a(void)
// to clock the MCP2515 on Mega8/Mega32
// - CTC Mode of Timer-Counter 1 use OC1A as clock-pin
// - Freq at OC2 (datasheet): f=f_c/(2*N*(1+OCR2))
//   with: f_c=system clock=8MHz, N=prescaler=1, OCR1A=0 -> 4MHz 
//   @ Pin B1 Mega8
//   @ Pin D5 Mega32
{
	#if defined(__AVR_ATmega8__)
	// set OC2-Pin (PB1 on ATmega8) as output
	DDRB |= _BV(DDB1);
	#elif defined(__AVR_ATmega32__) || defined(__AVR_ATmega16__)
	// set OC2-Pin (PD5 on ATmega32) as output
	DDRD |= _BV(DDD5);
	#else
	#error "OCR1A pin undefined for this target"
	#endif
	
	// CTC limit in OCR1A
	OCR1A=0;
	// Clear Timer on Compare Match (CTC) mode; toogle OC1A(PB1) on compare match; 
	TCCR1A=_BV(COM1A0);
	// clock select (timer2 prescaler) 
	TCCR1B=_BV(CS10)|_BV(WGM12); // to clk/1 (no prescaling CS10=1)
}

static void process_CANMessages(void)
{
	CanMessage msg;
	uint8_t data2;

#ifdef VERBOSE
	term_puts_P("AutoProcessing\n");
#endif
	while ( can_readMessage(&msg) == CAN_OK ) {
		data2 = msg.dta[2];
		if ( data2<3 ) {
			gpio_toggle_led( (1<<data2) );
#ifdef VERBOSE
			Debug_ByteToUart_P("data2",data2);
#endif
		}
	}	
}

int main(void)
{
	uint8_t res, flag;
	uint8_t shellstate;
	uint16_t timebuf;

#if OSCAL_READEEPROM
	res = eeprom_read_byte(OSCAL_EEPROMADDR);
	if (res != 0xff) OSCCAL = res;
	else OSCCAL = OSCAL_VALUE; // take default from define
#else
	OSCCAL = OSCAL_VALUE;
#endif
	
	gpio_init();
	gpio_set_led(LED1);
	
	timebase_init();
	
	uart_init((UART_BAUD_SELECT((BAUD),F_OSC)));
	
	sei();
	
	term_puts_P( "\n\nMCP2515 Interface Demo  (c) Martin Thomas\n" );
	Debug_ByteToUart_P("OSCCAL", OSCCAL);
	
	term_puts_P("\nSetting up MCP clock to FOSC/2\n");
	clock_init_tc1a();	// init MCP2515 clock-source (=AVR FOSC/2)
	// old:  clock_init(); */
	
	term_puts_P("SPI init\n");
	spi_init();		// init SPI-Interface (as "Master")
	
	term_puts_P("CAN init ");
	// res = can_init(CAN_125KBPS);
	res = can_init(CAN_20KBPS);
	if (res == CAN_OK) term_puts_P("- OK\n");
	else term_puts_P("- FAIL\n");
	
	
	term_puts_P("Autosend (\"Autosendbit\"-State) : ");
	AUTOSENDDDR &= ~(1<<AUTOSENDBIT); // as input
	AUTOSENDPORT |= (1<<AUTOSENDBIT); // int pullup on
	if ( AUTOSENDPIN & (1<<AUTOSENDBIT) ) {
		gTimedSend = CANAUTOOFF;
		term_puts_P("off");
	}
	else {
		gTimedSend = CANAUTOON;
		term_puts_P("on");
	}
	term_puts_P("\n");
	
	can_debug1();
	
	shellstate = COMMANDSHELL_MODEINIT;
	
	flag = 0;
	timebuf = timebase_actTime();
	
#if 0
	for (;;) {
		if (timebase_passedTimeMS(timebuf)>=1000) {
			timebuf = timebase_actTime();
			term_puts_P("(.)");
		}
	}
#endif
	
	for (;;) {
		CommandShell(&shellstate);
		if ( shellstate == COMMANDSHELL_MODEEXIT ) {
			term_puts_P("I have no operation system to exit to :-( -> WD-Reset");
			wdt_enable ( WDTO_500MS );
			while(1);
		}
		
		if ( ( can_checkReceive() == CAN_MSGAVAIL ) ) {
			if (!flag) {
#ifdef VERBOSE
				term_puts_P("\nAt least one CAN-Message available!\n");
				shellstate = COMMANDSHELL_REDRAW;
#endif
				flag = 1;
			}
			if ( gCANAutoProcess == CANAUTOON ) {
				process_CANMessages();
#ifdef VERBOSE
				shellstate = COMMANDSHELL_REDRAW;
#endif
			}
		}
		else {
			flag = 0;
		}
		
		if (timebase_passedTimeMS(timebuf)>=1000) {
			timebuf = timebase_actTime();
			if (gTimedSend == CANAUTOON) {
				if ( can_testTransmit(CAN_STDID, 1) != CAN_OK ) {
					term_puts_P("\nAuto-Transmit (debug) failed\n");
					can_dumpStatus();
					shellstate = COMMANDSHELL_REDRAW;
				}
			}
			if ( can_checkError() != CAN_OK ) {
				can_dumpStatus();
			}
		}
		
		// else term_puts_P("Checking\n");
	}
	
	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂va蜜桃一区二区三区漫画版| 制服丝袜av成人在线看| 久久久亚洲欧洲日产国码αv| 亚洲123区在线观看| 色婷婷综合五月| 这里只有精品99re| 视频一区视频二区中文| 欧美精品久久天天躁| 一区二区三区高清在线| 92国产精品观看| 亚洲人成在线观看一区二区| 99精品久久免费看蜜臀剧情介绍| 成人欧美一区二区三区黑人麻豆| 91丨九色porny丨蝌蚪| 一区二区三区四区不卡在线| 男人的天堂亚洲一区| 欧美精品vⅰdeose4hd| 激情丁香综合五月| 亚洲私人黄色宅男| 69精品人人人人| 国产不卡一区视频| 亚洲国产综合91精品麻豆| 日韩欧美第一区| 99久久久久久| 美国十次了思思久久精品导航| 日本一区二区三区高清不卡| 日本道在线观看一区二区| 久久9热精品视频| 亚洲天天做日日做天天谢日日欢 | 国产在线视频不卡二| 国产精品美女www爽爽爽| 欧美日韩中字一区| 国产91对白在线观看九色| 午夜一区二区三区视频| 欧美激情一区二区三区| 欧美一区二区在线免费播放| 99久久婷婷国产综合精品电影| 日本欧美一区二区| 亚洲欧美欧美一区二区三区| 久久嫩草精品久久久久| 欧美日韩精品系列| 99精品视频一区二区三区| 国产主播一区二区| 日本美女一区二区| 亚洲精品免费在线播放| 国产亚洲一区字幕| 欧美一级在线视频| 欧美系列日韩一区| 成人午夜碰碰视频| 国精产品一区一区三区mba视频| 香蕉久久夜色精品国产使用方法 | 婷婷丁香久久五月婷婷| 亚洲欧洲精品一区二区三区| 久久色视频免费观看| 欧美日韩大陆在线| 在线观看视频91| 99久久久精品| 成人动漫av在线| 国产99精品国产| 国产精品一区2区| 九九国产精品视频| 久久国产人妖系列| 日韩激情在线观看| 日韩高清不卡一区| 亚洲成人在线免费| 亚洲午夜久久久久久久久电影院| 国产精品久久777777| 国产精品入口麻豆原神| 国产日韩精品一区| 国产欧美日韩在线视频| 久久久精品天堂| 久久久久久一二三区| 久久精品视频一区二区三区| 国产亚洲精品中文字幕| 国产欧美一区二区精品忘忧草| 国产日韩一级二级三级| 国产无一区二区| 国产精品三级电影| 亚洲少妇中出一区| 亚洲国产精品视频| 视频一区在线播放| 久久精品国产99国产| 国产一级精品在线| 丁香一区二区三区| 一本大道久久精品懂色aⅴ | 国产成人午夜精品影院观看视频 | 18欧美亚洲精品| 亚洲精品免费看| 亚洲一区二区三区国产| 亚洲成人av中文| 免费观看久久久4p| 国产在线播精品第三| www.久久久久久久久| 色国产精品一区在线观看| 欧美狂野另类xxxxoooo| 精品国精品自拍自在线| 国产精品久久久久永久免费观看| 亚洲激情图片qvod| 视频在线观看国产精品| 国产一区二区免费在线| k8久久久一区二区三区| 欧美在线综合视频| 欧美成人在线直播| 亚洲女同女同女同女同女同69| 亚洲最色的网站| 黄色小说综合网站| 99视频有精品| 宅男噜噜噜66一区二区66| 久久综合九色综合欧美亚洲| 亚洲欧美二区三区| 免费一级片91| 91一区在线观看| 日韩一级高清毛片| 亚洲丝袜精品丝袜在线| 蜜桃av一区二区在线观看| 99精品在线观看视频| 国产精一区二区三区| 懂色一区二区三区免费观看| 欧美色图免费看| 久久久久久久久久久久久久久99| 亚洲欧洲美洲综合色网| 麻豆91小视频| 欧美性受xxxx黑人xyx| 亚洲一区欧美一区| 日韩中文字幕av电影| 韩国av一区二区三区在线观看| 国产精品66部| 97国产一区二区| 欧美日韩一区国产| 日韩欧美成人激情| 中文字幕av资源一区| 亚洲激情欧美激情| 免费观看在线综合| 粉嫩av一区二区三区| 91国产视频在线观看| 日韩精品一区二区三区在线播放 | 国产精品一区2区| aaa欧美大片| 欧美午夜片在线看| 日韩亚洲欧美中文三级| 国产欧美精品一区| 亚洲综合在线电影| 狠狠色2019综合网| www.99精品| 日韩免费观看高清完整版在线观看| 久久久久国产精品麻豆ai换脸| 亚洲色欲色欲www| 美国欧美日韩国产在线播放| 成人短视频下载| 91麻豆精品国产91久久久更新时间 | 秋霞影院一区二区| 成人动漫中文字幕| 欧美一级搡bbbb搡bbbb| 国产精品色婷婷| 美女尤物国产一区| 99re这里都是精品| 精品福利一区二区三区免费视频| 日韩理论片一区二区| 韩国午夜理伦三级不卡影院| 欧美亚洲国产一区二区三区 | 成人深夜在线观看| 在线电影院国产精品| 亚洲视频资源在线| 国产一区二区三区免费| 欧美日韩国产高清一区| 中文字幕日韩一区二区| 精品在线一区二区| 欧美亚洲尤物久久| 国产精品夫妻自拍| 黄色小说综合网站| 欧美顶级少妇做爰| 亚洲综合999| av在线一区二区| 国产亚洲综合av| 国产在线播放一区二区三区| 欧美精品一级二级| 亚洲一区影音先锋| 色综合久久久网| 国产精品福利电影一区二区三区四区| 精品写真视频在线观看 | 92精品国产成人观看免费| 久久久久久久久免费| 精品一区二区免费视频| 91麻豆精品国产91久久久资源速度| 一区二区三区中文字幕| 91免费小视频| 亚洲色图丝袜美腿| 97精品国产97久久久久久久久久久久| 国产欧美日产一区| 国产河南妇女毛片精品久久久| 欧美mv和日韩mv的网站| 老司机午夜精品| 亚洲精品在线免费观看视频| 麻豆传媒一区二区三区| 欧美大片一区二区三区| 韩国精品主播一区二区在线观看 | 亚洲福利一二三区| 欧美美女一区二区| 日韩精品三区四区| 日韩写真欧美这视频|