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

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

?? main.c.bak

?? 一個小型的遙控玩具飛行機(jī)器人的電子調(diào)速器控制源程序
?? BAK
字號:
/********************************************************************************/
//		
// 		builder : 2007-04-10
// 		Target  : ATMEAG 48V
// 		Crystal : 內(nèi)部 8.00 MHz
//
//		
		
/********************************************************************************/

#include 	<iom48v.h>
#include 	<macros.h>

#include	"eeprom.h"
#include	"time2.h"
#include	"adc.h"


#define		uchar		unsigned char
#define		uint		unsigned int

#define		SET_LED		PORTD |=  (1<<PB4)
#define		CLR_LED		PORTD &= ~(1<<PB4)

uchar	e2rom[7];

uint	PE1,PE2;

uchar	mode;
uchar	rxd_flag;	// 油門接收OK標(biāo)志

uchar	PWM;
uint	Timer;
uint	high,middle,low;
uchar	REV;
uchar	power;
uchar	heat;
union	
{	uint	temp;
	uchar  	data[2];		
}time;


/*---------------------------------------------------------------
   			初始化
----------------------------------------------------------------*/
void timer0_init(void)
{
 	TCCR0B = 0x00; //stop
 	TCNT0  = 0x01; //set count
 	TCCR0A = 0x23; 
 	OCR0B  = 0xA5;
 	TCCR0B = 0x01; //start timer
}



void timer1_init(void) 		// 20MS 中斷
{
 	TCCR1B = 0x00;  // stop
 	TCNT1H = 0xB1;  // setup
 	TCNT1L = 0xE0;
 	OCR1AH = 0x4E;
 	OCR1AL = 0x20;
 	OCR1BH = 0x4E;
 	OCR1BL = 0x20;
 	ICR1H  = 0x4E;
 	ICR1L  = 0x20;
 	TCCR1A = 0x00;
}


void init_devices(void)
{
	CLI();
		
 	DDRB  = 0x7F;
 	PORTB = 0xC0;
	
	DDRC  = 0x00;
 	PORTC = 0x40; // m103 output only
 	
 	DDRD  = 0xFB;
 	PORTD = 0x40;
 	
 	MCUCR  = 0x00;
 	EICRA  = 0x03; 	// INT0 上升沿觸發(fā)
 	EIMSK  = 0x01;	// 使能 INT0 中斷
 	
 	timer0_init();
 	timer1_init();
 	timer2_init();
 	init_eeprom();
 	adc_int();
 	
 	SEI();
}

/*---------------------------------------------------------------
   			延時
----------------------------------------------------------------*/

void delay(uint t)
{
	uint i,j,k;
	
	for(i=0;i<t;i++)
	{
		for(j=0;j<200;j++)
		{
			for(k=0;k<50;k++);;
		}
	}
}


void LED_set(void)
{
	SET_LED	;
	delay(10);
	CLR_LED	;
	delay(8);
}

void egis(void)
{
	uint temp;
	
	temp = adc_colect(1);
	if(temp<0x1D0 && power<200) power ++;
	else if(temp>0x1DF)power = 0;
	
	if(power>3 && PWM<50)
	{
		PWM = 0;
		Pwm_set(0,0);
		delay(5);
		temp = 0;
		while(temp<0x1df)
		{
			temp = adc_colect(1);
			LED_set();
			Buz();
			delay(20);
		}
	}
	
	
	temp = adc_colect(2);
	if(temp>0x3BF && heat<200) heat ++;		// >110度
	else if(temp<0x38E)heat = 0;			// <80度
	
	if(heat>3 && PWM<50)
	{
		PWM = 0;
		Pwm_set(0,0);
		delay(5);
		temp = 0xfff;
		while(temp>0x38E)
		{
			temp = adc_colect(2);
			LED_set();
			LED_set();
			Buz();
			Buz();
			delay(20);
		}
	}
}

/*---------------------------------------------------------------
   			油門處理
----------------------------------------------------------------*/

void Gun_set(void)
{	 	
	if(rxd_flag)	// 接收已完成
	{
		rxd_flag = 0;
		
		if(Timer>high) Timer = high;	// 確保接收到的數(shù)據(jù)在正常范圍內(nèi)
		if(Timer<low)  Timer = low;
		
		if(Timer>(middle+50))		// 前進(jìn) 1550us
		{
			if(power>3 || heat>3)
			{
				PWM --;
			}
			else 
			{	
				PWM = ((Timer-middle)*10)/PE1;	// 計算占空比
				if(PWM>210) PWM = 255;		
				
			}
			Pwm_set(PWM,1);		// 設(shè)置PWM占空比
			mode = 1;
			SET_LED;
		}
		else if(Timer<(middle-50)) 	
		{
			if(!mode && REV)	// 后退
			{
				if(power>3 || heat>3)
				{
					PWM --;
				}	
				else 
				{	
					PWM = ((middle-Timer)*10)/PE2;
					if(PWM>210) PWM = 255;
				}
				Pwm_set(PWM,2);
				SET_LED;
				delay(5);
			}
			else 
			{
				Pwm_set(255,3);	// 剎車
				while((Timer+50)<=middle)
				{
					LED_set();
				}
				mode = 0;
			}
		}
		else 
		{
			Pwm_set(0,0);
			CLR_LED;
		}
	}
	egis();
}




uchar key(void)
{
	uchar i,k=0;
	
	for(i=0;i<5;i++)
	{
		if(PINB & 0x80) k = 0;
		else k ++;
		delay(3);
	}

	return k;
}

/*---------------------------------------------------------------
   			
----------------------------------------------------------------*/

uint compute(void)
{
	uchar 	i;
	uint 	temp = 0;
	
	for(i=0;i<8;i++)
	{	
		while(!rxd_flag);
		temp += Timer;
		rxd_flag  = 0;
		Timer= 0;
	}
	temp = (temp>>3);
	
	return temp;
}


void Buz()
{
	Pwm_set(20,1);
	delay(15);	
	Pwm_set(0,0);	
	delay(20);
	Pwm_set(20,1);	
	delay(15);	
	Pwm_set(0,0);
}

void Rev_Setup()
{
	e2rom[6] = EEPROM_read(6);
	
	if(key()>3)	
	{
		if(e2rom[6]) e2rom[6]=0;
		else e2rom[6] =1;
		Buz();
		while(!(PINB&0x80)); // 等待按鍵松開
	}
	EEPROM_write(6,e2rom[6]);
}



/*---------------------------------------------------------------
   			中點設(shè)置
----------------------------------------------------------------*/
void Setup()
{
 	 uchar i;
	 

	if(key()>3)		// 設(shè)置
	{
loop:	Buz();	
		middle = compute();		// 中位設(shè)置
		
		delay(50);
		while(key()<3)
		{
			LED_set();
			delay(40);
		}
		Buz();
		while(!(PINB&0x80));
		high = compute();		// 高位設(shè)置
		
		delay(50);
		
		while(key()<3)
		{
			LED_set();
			LED_set();
			delay(40);
		}
		Buz();
		while(!(PINB&0x80));
		low = compute();		// W低位設(shè)置
		delay(50);

		// 設(shè)置數(shù)據(jù)正確存盤
		if((low>800&&low<1300)&&(middle>1350&&middle<1650)&&(high>1700&&high<2200))
		{							
			PE1 = ((high-middle)*10)/256+2;
			PE2 = ((middle-low )*10)/256+2;
			
			e2rom[0] = low/256;
			e2rom[1] = low%256;
		
			e2rom[2] = high/256;
			e2rom[3] = high%256;
		
			e2rom[4] = middle/256;
			e2rom[5] = middle%256;
		
			Buz();
			for(i=0;i<6;i++)	// 寫EEPOM
			{
				EEPROM_write(i,e2rom[i]);
				delay(5);
				while(compute()<1350||compute()>1650);
			}
			LED_set();
			delay(10);
			LED_set();
		}
		else 	// 設(shè)置不對重來
		{
			while(key()<3)
			{
				LED_set();
			}
			delay(100);
			goto loop;
			
		}
	}	
}
		

void Read_E2rom(void)
{	
	uchar i;
	
	for(i=0;i<7;i++)	// 讀EEPOM
	{
		e2rom[i] = EEPROM_read(i);
		delay(5);
	}
	
	low 	= e2rom[0]*256+e2rom[1];	// 油門低位
	high 	= e2rom[2]*256+e2rom[3];	// 高位
	middle 	= e2rom[4]*256+e2rom[5];	// 中位
	REV		= e2rom[6];		// 倒車標(biāo)致
	
	if((low>800&&low<1300)&&(middle>1350&&middle<1650)&&(high>1700&&high<2200))
	{	// 讀起的數(shù)據(jù)正確
		PE1 = ((high-middle)*10)/256+2;
		PE2 = ((middle-low )*10)/256+2;
	}
	else // 讀起的數(shù)據(jù)不正確使用默認(rèn)值
	{
		PE1 = 23;
		PE2 = 23;
		middle = 1500;
		low	   = 1100;
		high   = 1900;
		REV	   = 1;
	}
}



/*---------------------------------------------------------------
   			INT0 中斷油門接收
----------------------------------------------------------------*/
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
	if(EICRA==0x03)		// 上升沿開始記時
	{
		TCNT1H = 0x00; 
 		TCNT1L = 0x00; 
 		TCCR1B = 0x02;  //start Timer1
		EICRA  = 0x02;
	}
	else if(EICRA==0x02)	// 下降沿讀計時數(shù)據(jù)
	{
		time.data[0] = TCNT1L;
		time.data[1] = TCNT1H;
		Timer  	= time.temp;
		TCNT1H 	= 0x00; 
 		TCNT1L	= 0x00; 
		EICRA  	= 0x03;
		rxd_flag =1;	// 置接收 flag
	}
}


/*---------------------------------------------------------------
   			main
----------------------------------------------------------------*/

void main(void)
{
	delay(10);
	
	init_devices();		// 初始化
	
	Rev_Setup();
	
	Read_E2rom();		// 讀EEPROM
	
	while(!rxd_flag);	// 等待油門信號
	Buz();
	
	LED_set();
	delay(10);
	LED_set();
	
	rxd_flag = 0 ;
	
	while(1)
	{	
		Gun_set();		
		Setup();	
	}
}

/*--------------------   the end ------------------------------------*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区久久久 | 91免费版pro下载短视频| 欧美一二三四在线| 日本成人在线一区| 日韩女优av电影在线观看| 日本不卡免费在线视频| 精品88久久久久88久久久| 精品一区二区国语对白| 亚洲精品一区二区三区影院| 国产乱对白刺激视频不卡| 国产欧美一区二区精品久导航| 国产精品一区不卡| 亚洲婷婷综合色高清在线| 91老师国产黑色丝袜在线| 亚洲成a人片在线观看中文| 日韩一区二区影院| 国产精品亚洲视频| 亚洲狠狠丁香婷婷综合久久久| 欧美日韩在线一区二区| 日韩高清在线不卡| 久久久久久久久99精品| 97国产一区二区| 日本vs亚洲vs韩国一区三区二区| 国产欧美日韩不卡| 色婷婷综合激情| 麻豆成人久久精品二区三区小说| 国产精品视频第一区| 欧洲另类一二三四区| 国产一区在线观看视频| 亚洲精品乱码久久久久久久久 | 亚洲国产精品ⅴa在线观看| 99精品黄色片免费大全| 免费在线观看一区二区三区| 日本一区二区三区国色天香 | 成人小视频在线观看| 亚洲综合图片区| 久久新电视剧免费观看| 91国偷自产一区二区开放时间 | 国产一区二区美女| 亚洲精品福利视频网站| 久久亚洲精华国产精华液| 欧美日韩国产高清一区| 成人av在线一区二区三区| 日本在线不卡视频一二三区| 中文字幕一区二区视频| 日韩欧美中文字幕制服| 色老汉一区二区三区| 国产福利一区二区三区视频在线 | 国产一区二区视频在线| 午夜成人免费电影| 1区2区3区精品视频| 日韩欧美激情四射| 色哟哟亚洲精品| 国内不卡的二区三区中文字幕 | 国产欧美精品区一区二区三区| 在线不卡的av| 在线观看免费亚洲| av电影天堂一区二区在线观看| 久久精品国产秦先生| 午夜成人在线视频| 亚洲国产aⅴ成人精品无吗| 国产精品福利一区| 国产日产欧产精品推荐色| 欧美一级一级性生活免费录像| 在线一区二区三区| 99精品偷自拍| www.亚洲在线| 成人性生交大片免费看中文| 国产91丝袜在线18| 国产在线国偷精品免费看| 另类的小说在线视频另类成人小视频在线 | 国产欧美视频一区二区| 2023国产一二三区日本精品2022| 欧美精品三级在线观看| 欧美另类高清zo欧美| 欧美午夜精品理论片a级按摩| 色狠狠桃花综合| 欧美最猛性xxxxx直播| 91福利精品第一导航| 91国产成人在线| 在线观看欧美黄色| 欧美日本国产视频| 在线91免费看| 欧美xxx久久| 久久久久久99久久久精品网站| 久久一二三国产| 国产精品情趣视频| 亚洲色图欧洲色图婷婷| 亚洲精品五月天| 亚洲成人一区在线| 免费不卡在线观看| 国产精品123区| 99久久久免费精品国产一区二区| 99久久777色| 欧美人体做爰大胆视频| 日韩欧美一区二区免费| 国产三级欧美三级| 亚洲摸摸操操av| 日本中文在线一区| 国产一区二区成人久久免费影院| 国产福利91精品| 91精品办公室少妇高潮对白| 欧美日韩激情一区二区| 欧美大片在线观看| 国产精品久久99| 午夜欧美在线一二页| 精品制服美女丁香| 99精品国产视频| 日韩丝袜美女视频| 国产精品少妇自拍| 午夜精品在线视频一区| 国产一区二区在线观看视频| 色先锋aa成人| 欧美精品一区二区蜜臀亚洲| 中文字幕中文字幕在线一区| 天堂蜜桃91精品| 国产成人av资源| 欧美老女人第四色| 中文字幕免费不卡在线| 午夜精品视频一区| 成人三级伦理片| 欧美一区二区三区在线看| 国产精品久久久久久久岛一牛影视 | 欧美亚洲动漫制服丝袜| 精品91自产拍在线观看一区| 亚洲蜜臀av乱码久久精品| 久久国内精品视频| 色欧美乱欧美15图片| 亚洲精品一区二区三区四区高清| 亚洲在线视频免费观看| 精品一区二区三区影院在线午夜| 一本久久精品一区二区 | 久久精品亚洲国产奇米99| 亚洲午夜免费视频| 成人v精品蜜桃久久一区| 91精品国产综合久久久蜜臀粉嫩 | 欧美怡红院视频| 中国av一区二区三区| 蜜臀va亚洲va欧美va天堂| 色综合欧美在线| 中文字幕av一区 二区| 日本不卡一二三区黄网| 欧美天堂亚洲电影院在线播放| 国产欧美综合在线| 紧缚奴在线一区二区三区| 欧美色图天堂网| 亚洲乱码精品一二三四区日韩在线 | 久久久久久久综合| 视频一区二区国产| 色婷婷久久综合| 中文字幕亚洲一区二区av在线 | 久久国产夜色精品鲁鲁99| 欧美精品久久久久久久久老牛影院| 国产精品久久777777| 国产成人av电影在线| 亚洲精品一区二区精华| 免费成人小视频| 欧美一区二区美女| 日韩精品五月天| 在线成人高清不卡| 日韩电影在线免费看| 欧美日本一区二区| 水野朝阳av一区二区三区| 精品视频一区二区三区免费| 亚洲国产综合人成综合网站| 一本一道综合狠狠老| 一区二区欧美国产| 在线区一区二视频| 亚洲黄色小视频| 欧美性感一区二区三区| 亚洲国产精品综合小说图片区| 91黄色在线观看| 午夜精彩视频在线观看不卡| 欧美夫妻性生活| 蓝色福利精品导航| 久久午夜羞羞影院免费观看| 国产精品99久久久久久有的能看| 国产三级一区二区三区| 成人免费毛片a| 亚洲欧美乱综合| 欧美日韩国产免费一区二区| 三级久久三级久久| www国产精品av| 9人人澡人人爽人人精品| 亚洲精品成人a在线观看| 欧美视频你懂的| 毛片av一区二区| 国产拍揄自揄精品视频麻豆| 99久久99久久精品免费看蜜桃| 一级中文字幕一区二区| 3atv一区二区三区| 国产精品一线二线三线| 国产精品国产三级国产aⅴ原创| 91麻豆福利精品推荐| 日韩vs国产vs欧美| 久久精品视频免费观看| 91网站最新地址| 蜜桃视频在线观看一区二区| 久久精品免视看| 91国模大尺度私拍在线视频|