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

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

?? main._c

?? avr的視頻采集
?? _C
字號:
//////////////////////////////
//////////////////////////////   22967為近似180度

#include <iom64v.h>
#include <macros.h>

#define PREVSONG   BIT(2)
#define NEXTSONG   BIT(3)
#define VOLDOWN    BIT(4)
#define VOLUP      BIT(5)
#define STOP       BIT(6)

#define R_pwm0       BIT(4)
#define R_pwm1       BIT(5)
#define L_pwm0       BIT(6)
#define L_pwm1       BIT(7)


long ADCjohu=0;
int ms=0;
long xx=0;
//int adc=0;

#define REF 483
unsigned char lvbo=0;
long lvbo_num=0;

unsigned char pwm_pingjun=254;//平均速度
unsigned char Rpwm0=0;
unsigned char Rpwm1=0;
unsigned char Lpwm0=0;
unsigned char Lpwm1=0;
unsigned char all=0, a=0,b=0,c=0,d=0,e=0,f=0;
#define CIR 1
#define LINE 2
#define CLS 3
long jiaodu=0,juli=0;
int time=0;
unsigned char sec=0;

#define video_x 32
#define video_y 48
unsigned int  v_num=0;
unsigned char v_temp[video_y][video_x],chang=0,hang=0,   adc1=0;;

unsigned char x_adc;
unsigned char  y_adc;

void port_init(void)
{
 PORTA = 0x00;
 DDRA  = 0x00;
 PORTB = 0x00;
 DDRB  = 0x00;
 PORTC = 0x00; //m103 output only
 DDRC  = 0x00;
 PORTD = 0x00;
 DDRD  = 0x00;
 PORTE = 0x00;
 DDRE  = 0x00;
 PORTF = 0x00;
 DDRF  = 0x00;
 PORTG = 0x00;
 DDRG  = 0x00;
}

//TIMER2 initialize - prescale:64
// WGM: Normal
// desired value: 1mSec
// actual value:  1.000mSec (0.0%)
void timer2_init(void)
{
 TCCR2 = 0x00; //stop
 TCNT2 = 0x83; //setup
 OCR2  = 0x7D;
 TCCR2 = 0x03; //start
}


#pragma interrupt_handler timer0_ovf_isr:11
void timer0_ovf_isr(void)
{
 TCNT0 = 0x83; //reload counter value
 return;//
 /*if (time>500){sec++;time=0;}
 time++;
 ADCjohu=ADCL;
 ADCjohu|=ADCH << 8;
///////////////////////////////////////////////////////////////////平均值濾波  1毫秒采樣濾波,10毫秒輸出
 if (lvbo==0) {lvbo_num=ADCjohu/2;lvbo++;return;}
 if (lvbo<10) {lvbo_num+=ADCjohu/2;lvbo++;return;}
 	else lvbo=0;
//////////////////////////////////////////////////////////////////////////////
 if ( (ADCjohu<REF-6) || (ADCjohu>REF+6))
 	{
	 //ADCjohu-=511-10;//-511+31-3.27371     -10
 	 xx=xx+ADCjohu-REF;//
	}
 ms=1;*/
}

//ADC initialize
// Conversion time: 3uS
void adc_init(void)
{
 ADCSRA = 0x00; //disable adc
 ADMUX = 0x01; //select adc input 0
 ACSR  = 0x80;
 ADCSRB = 0x00;
 ADCSRA = 0xEa;
}

#pragma interrupt_handler adc_isr:22
void adc_isr(void)
{
 //conversion complete, read value (int) using...
 // value=ADCL;            //Read 8 low bits first (important)
 // value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
 //ADCjohu==ADCL;
 //ADCjohu|=(int)ADCH << 8;
 //PORTD=ADCjohu;
 //adc=1; 
 //if (v_x==32) return;
 adc1=1;

 //PORTA=ADCL;
 
 return;
}

//call this routine to initialize all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 XDIV  = 0x00; //xtal divider
 XMCRA = 0x00; //external memory
 port_init();
 timer2_init(); 

//adc_init();
uart1_init();

 MCUCR = 0x00;
 EICRA = 0x0A; //extended ext ints
 EICRB = 0x00; //extended ext ints
 EIMSK = 0x03;
 //TIMSK = 0x40; //timer interrupt sources
 TIMSK = 0x00;
 ETIMSK = 0x00; //extended timer interrupt sources
 SEI(); //re-enable interrupts
 //all peripherals are now initialized
}
//UART1 initialize
// desired baud rate:19200
// actual baud rate:19231 (0.2%)
void uart1_init(void)
{
 UCSR1B = 0x00; //disable while setting baud rate
 UCSR1A = 0x00;
 UCSR1C = 0x06;
 UBRR1L = 0x40; //set baud rate lo
 UBRR1H = 0x00; //set baud rate hi
 UCSR1B = 0x98;
}

#pragma interrupt_handler uart1_rx_isr:31
//cir+00100
void uart1_rx_isr(void)
{
 //uart has received a character in UDR
 if (all==CIR)
 	{
	   a=b;
	   b=c;
	   c=d;
	   d=e;
	   e=f;
	   f=UDR1;
	   if ((f<'0')||(f>'9'))return;
	   if (a=='+')//0x2b
	   	  {jiaodu=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
		   all=0;return;}
	   else if (a=='-')//0x2d
	   	  {jiaodu=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
		   all=0;return;}
	   if (a!=0) {all=0;return;}
	     //PORTF=jiaodu;//while(1);
	}
 else if (all==LINE)
 	{
	   a=b;
	   b=c;
	   c=d;
	   d=e;
	   e=f;
	   f=UDR1;
	   if ((f<'0')||(f>'9'))return;
	   if (a=='+')
	   	  {juli=(b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48);
		   all=0;return;}
	   else if (a=='-')
	   	  {juli=-((b-48)*10000+(c-48)*1000+(d-48)*100+(e-48)*10+(f-48));
		   all=0;return;}
	   if (a!=0) {all=0;return;}
	   //PORTF=a;
	}
 else   if (all==0)//(johu!=3)&&(johu!=5)  //5:7-bit    3:8-bit
      {
	   a=b;
	   b=c;
	   c=d;
	   d=UDR1;
	   if ((a=='c')&&(b=='i')&&(c=='r'))
	     {
		   all=CIR;
		   a=0;b=0;c=0;d=0;e=0;f=0;
		   return; }//RXlen=4;{johu=3;RXlen=3;return;}
	   else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
	     {
		   all=LINE;
		   a=0;b=0;c=0;d=0;e=0;f=0;
		   return; }//RXlen=4;{johu=5;RXlen=3;return;}
	   else if ((b=='c')&&(c=='l')&&(d=='s')) 
	     {
		  xx=0;
		  jiaodu=0;
		  juli=0;
		 }
		   ////////////////////////////////////////////////////////////////////
	 }
}



/*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK)
{
 char code[]={'0','1','2','3','4','5','6','7','8','9',};
 if (NUM<0)
 	{LCD_write_String1(X,Y,"-");NUM=-NUM;}
 else
 	{LCD_write_String1(X,Y,"+");}
X=X+6;
 while(LEN--)
 	 {
	  LCD_write_String1(X+LEN*6,Y,& code[NUM%10]);
	  NUM=NUM/10;
	 } 
}*/
void number_uart1(long NUM,char huanhang)
{long n=0;
 			if (NUM<0){n=-NUM; while(!(UCSR1A&(1<<UDRE1))); UDR1='-';}
			else  {n=NUM;while(!(UCSR1A&(1<<UDRE1))); UDR1='+';}	
		     while(!(UCSR1A&(1<<UDRE1)));
		     UDR1=(n/10000)%10+48;
		     while(!(UCSR1A&(1<<UDRE1)));
		     UDR1=(n/1000)%10+48;
			 while(!(UCSR1A&(1<<UDRE1)));
		     UDR1=(n/100)%10+48;
			 while(!(UCSR1A&(1<<UDRE1)));
		     UDR1=(n/10)%10+48;
			 while(!(UCSR1A&(1<<UDRE1)));
		     UDR1=n%10+48;
			if (huanhang)
			 {
			  while(!(UCSR1A&(1<<UDRE1)));
		      UDR1=0x0d;
			  while(!(UCSR1A&(1<<UDRE1)));
		      UDR1=0x0a;
			 }
			 else
			 {
			  while(!(UCSR1A&(1<<UDRE1)));
		      UDR1=0x20;
			  while(!(UCSR1A&(1<<UDRE1)));
		      UDR1=0x20;
			 } 
}



//TIMER0 initialize - prescale:64
// WGM: PWM Fast
// desired value: 1KHz
// actual value:  0.488KHz (-104.8%)
void timer0_init(void)
{
 TCCR0 = 0x00; //stop
 ASSR  = 0x00; //set async mode
 TCNT0 = 0x01; //set count
 OCR0  = 0x0f;
 TCCR0 = 0x6C; //start timer
}

//TIMER1 initialize - prescale:64
// WGM: 5) PWM 8bit fast, TOP=0x00FF
// desired value: 1KHz
// actual value:  0.488KHz (104.8%)
void timer1_init(void)
{
 TCCR1B = 0x00; //stop
 TCNT1H = 0xFF; //setup
 TCNT1L = 0x01;
 OCR1AH = 0x00;
 OCR1AL = 0x0f;
 OCR1BH = 0x00;
 OCR1BL = 0x0f;
 OCR1CH = 0x00;
 OCR1CL = 0x0f;
 ICR1H  = 0x00;
 ICR1L  = 0xFF;
 TCCR1A = 0xA9;
 TCCR1B = 0x0B; //start Timer
}
unsigned char shuliang=0;
unsigned char xuanze=0;
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
 //external interupt on INT0
 
x_adc=0;y_adc=0;
chang=1;
 shuliang=ms;
 ms=0;

}

#pragma interrupt_handler int1_isr:3
void int1_isr(void)
{//CLI();
 //external interupt on INT1
/*while(x_adc<video_x)
{ v_temp[y_adc*video_x  +  x_adc] =0;x_adc++;}*/
if(xuanze++>5){xuanze=0;x_adc=0;y_adc++;}

x_adc=video_x+1;
//v_num=(v_num/video_x+1)*video_x;
ms++;
 //hang=1;
 //SEI();
}

#define PWM_ON    DDRB|=   R_pwm0 | R_pwm1 | L_pwm0 | L_pwm1;
#define PWM_OFF   DDRB&= ~(R_pwm0 | R_pwm1 | L_pwm0 | L_pwm1);

main()
{int n;
unsigned char n_jiaodu=0,n_juli=0;
unsigned char n_sec=0;

unsigned int v_num_now=0;//x_now,y_now;
unsigned char xv,yv;

init_devices();
//timer1_init();timer0_init();
 //OCR1AH = 0x00;
/* OCR1AL = 64;
 //OCR1BH = 0x00;
 OCR1BL = 64;
 //OCR1CH = 0x00;
 OCR1CL = 64;
 OCR0=64;*/
PORTD|=0x03;//外部中斷
DDRD&=~03; 
//while(1);
DDRE|=0x38;//while(1);
/////////LCD
	/* DDRB = 0xBF;    //SI輸入,SO,SCK,SS輸出
	 SPCR = 0x50;  //setup SPI
	 SPSR = 0x01;  //setup SPI*/
/*while(!(UCSR0A&(1<<UDRE0)));
UDR0='a';while(!(UCSR0A&(1<<UDRE0)));
UDR0='a';while(!(UCSR0A&(1<<UDRE0)));
UDR0='a';while(!(UCSR0A&(1<<UDRE0)));
UDR0='a';*/
delay_ms(3000);
number_uart1(1010,1);
			number_uart1(xx,0);
			number_uart1(ADCjohu,1);
delay_ms(3000);	
xx=0;
//LCD_Init();
//LCD_clear();
DDRE &= ~0x7c;//if (!(PORTE & STOP))  if (!(PORTE & VOLDOWN))  if (!(PORTE & VOLUP))  if (!(PORTE & NEXTSONG))  if (!(PORTE & PREVSONG))
PORTE |=0x7c;
DDRE=0x00;PORTE=0xff;
//number(0,0,4,-999,1);
	     /* OCR1AL = pwm_pingjun;
 		  OCR1BL = pwm_pingjun;
 		  OCR1CL = pwm_pingjun;
 		  OCR0=pwm_pingjun;*/
  while(1)
  { 	   	
			   
	//for(xv=0;xv<video_x;xv++)		   	  
  	ADMUX = 0x01;                           // A/D converter input pin number = 0
    ADCSRA = 0xc2;//|ADATE;                           // single A/D conversion, fCK/32, conversion now started 
    //for(y_adc=0;y_adc<video_y;y_adc++)
//while(PINE!=0xff)
 if (xuanze==0)
{
	for(x_adc=0;x_adc<video_x;x_adc++)
    {
        do
        {
		 //PORTE=~PORTE;
        } while(!(ADCSRA&(1<<ADIF)));// ADSC        // Wait for A/D conversion to finish
        /*count = 6;                          
        do                                   // Customize this loop to 66 cycles !!
        {
        } while(--count);*/                   // wait some cycles
        ADCSRA |= 0x40;                      // start new A/D conversion 
        //write_to_flash(ADC-0x1D5);          // read data, convert to 8 bit and store in flash
		/*if (  (xuanze!=0) &&  (xuanze<2)  )//濾波均值
		  v_temp[y_adc][x_adc]=v_temp[y_adc][x_adc]/2+ADC/2;
		else */
		  v_temp[y_adc][x_adc]=ADC>>1;
		  
    }
}
    ADCSRA = 0x00;                           // disable AD converter
	
  		/*if (adc1>0)
		   {//if (n_sec++>1000)
		   	   {
			   	v_temp[v_num++]=ADC;
			   	adc1=0;
			   	if (v_num>1023)v_num=0;
				n_sec=0;
			   }
			adc1=0;
		   }*/
		if  (!(PINE & NEXTSONG))//( v_num_now!=v_num )
		   {
		   	for(yv=0;yv<video_y;yv++)
			   {
			   	for(xv=0;xv<video_x;xv++)
				  { //SEI();
				   while(!(UCSR1A&(1<<UDRE1)));
		     	     UDR1=v_temp[yv][xv];//CLI();
				  }
				while(!(UCSR1A&(1<<UDRE1)));
		        UDR1=50;
			    while(!(UCSR1A&(1<<UDRE1)));
		        UDR1=2;  
			   }
			while(!(UCSR1A&(1<<UDRE1)));
		    UDR1=100;
			while(!(UCSR1A&(1<<UDRE1)));
		    UDR1=4;
		  }
		  if  (!(PINE & PREVSONG))
		  //if (chang==1)
		  {number_uart1(shuliang,0);
		   number_uart1(shuliang,0);
		   number_uart1(shuliang,1);
		   chang=0;
		   ms=0;
		  }
		  
		   
		/*if (!(PINE & NEXTSONG))
	    	{
			//CLI();
			number_uart1(xx,0);
			number_uart1(ADCjohu,1);
			delay_ms(20);
			//SEI();
			}
   	    ms=0;*/
       
  }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
wwwwww.欧美系列| 91在线视频免费91| 午夜精品免费在线观看| 亚洲卡通动漫在线| 亚洲视频精选在线| 亚洲最快最全在线视频| 亚洲激情网站免费观看| 亚洲国产综合人成综合网站| 亚洲美女淫视频| 亚洲综合一区二区三区| 性感美女久久精品| 日本亚洲最大的色成网站www| 日韩一区欧美二区| 男女激情视频一区| 国产精品自拍一区| 色综合久久九月婷婷色综合| 日本韩国欧美一区| 日韩一区二区三区电影在线观看| 日韩欧美一区二区视频| 国产午夜亚洲精品午夜鲁丝片| 国产欧美一区二区三区网站 | 五月天激情小说综合| 爽爽淫人综合网网站| 毛片一区二区三区| 粗大黑人巨茎大战欧美成人| 成人高清免费在线播放| 99精品桃花视频在线观看| 在线欧美日韩精品| 精品粉嫩超白一线天av| 国产精品高清亚洲| 全部av―极品视觉盛宴亚洲| 国内精品国产三级国产a久久| 成人免费黄色大片| 欧美精品乱码久久久久久| 欧美精品一区二区三区久久久 | 午夜电影一区二区三区| 国产乱人伦偷精品视频免下载| 91在线观看污| 精品欧美一区二区久久| 亚洲欧美日韩久久精品| 精品一区二区三区免费播放| 91丨porny丨最新| 日韩欧美在线一区二区三区| 亚洲日本在线看| 久久精品国产亚洲一区二区三区| 97精品电影院| 久久精品一区二区三区av| 午夜精品久久久久影视| 成人看片黄a免费看在线| 91麻豆精品国产自产在线观看一区| 国产亚洲欧洲一区高清在线观看| 亚洲一区二区3| www.日韩在线| 国产日产精品一区| 免费成人av资源网| 欧美午夜电影一区| 亚洲四区在线观看| 成人网在线播放| 精品国产一区二区三区忘忧草| 亚洲精品写真福利| 成人99免费视频| 国产亚洲欧美中文| 激情综合网av| 欧美电影免费提供在线观看| 亚洲国产日韩在线一区模特 | 欧美日韩视频在线一区二区| 国产精品国产三级国产aⅴ无密码| 麻豆成人免费电影| 制服丝袜中文字幕一区| 一区二区三区在线播放| 色综合久久久久| 亚洲三级免费电影| 色狠狠色狠狠综合| 亚洲午夜久久久久久久久电影院| av色综合久久天堂av综合| 日本一区二区三区久久久久久久久不 | 91香蕉视频mp4| 亚洲欧洲另类国产综合| 成人精品在线视频观看| 中文成人综合网| 国产成人精品影视| 国产亚洲视频系列| 97精品久久久久中文字幕| 中文字幕一区二区三区在线观看| 成人黄色一级视频| 亚洲精品一二三四区| 欧美性做爰猛烈叫床潮| 亚洲午夜免费电影| 日韩欧美亚洲一区二区| 国产一本一道久久香蕉| 国产女主播一区| 99九九99九九九视频精品| 一区二区三区在线视频免费| 欧洲精品在线观看| 日韩高清一区在线| 亚洲精品一区二区三区香蕉| 国产精品中文字幕欧美| 亚洲欧洲日产国码二区| 欧美精品欧美精品系列| 国产美女视频91| 婷婷久久综合九色综合伊人色| 欧美三区在线观看| 另类调教123区| 国产精品美女久久久久久久久久久 | 日本成人在线网站| 国产日韩视频一区二区三区| 91亚洲精品久久久蜜桃网站| 午夜视频在线观看一区| 国产亚洲一本大道中文在线| 日本精品视频一区二区三区| 精品一区二区三区在线观看国产| 国产精品素人一区二区| 欧美日韩国产影片| 国产精品99久久久久久有的能看| 亚洲精品成人悠悠色影视| 日韩精品一区二区三区在线观看 | 国产精品18久久久久久久久 | 国产精品一区二区x88av| 亚洲天堂av老司机| 精品99一区二区| 欧美在线影院一区二区| 国产精品一区二区三区99 | 91精品国产综合久久久蜜臀图片| 国产伦精品一区二区三区免费 | 日韩理论在线观看| 国产女同互慰高潮91漫画| 欧美色网一区二区| 成人深夜福利app| 狠狠久久亚洲欧美| 午夜精品123| 亚洲一二三专区| 国产精品私房写真福利视频| 日韩欧美国产电影| 3d动漫精品啪啪| 日本韩国一区二区三区| 99国产精品99久久久久久| 狠狠久久亚洲欧美| 精品一区二区在线免费观看| 亚洲午夜久久久久久久久久久| 国产精品麻豆视频| 国产丝袜美腿一区二区三区| 欧美一区二区三区在线| 精品1区2区3区| 欧美四级电影网| 色8久久精品久久久久久蜜| 成人综合在线观看| 国产精品99久久久久久有的能看| 乱中年女人伦av一区二区| 日韩电影免费在线| 亚洲18色成人| 日韩激情av在线| 婷婷夜色潮精品综合在线| 亚洲国产成人va在线观看天堂| 国产精品久久久一本精品| 中文子幕无线码一区tr| 国产欧美一区二区精品仙草咪| 久久午夜国产精品| 国产女主播一区| 亚洲欧美欧美一区二区三区| 国产精品二区一区二区aⅴ污介绍| 国产日产欧美精品一区二区三区| 国产亚洲精品精华液| 国产精品欧美极品| 亚洲欧美综合另类在线卡通| 亚洲欧洲精品一区二区三区不卡| 中文字幕一区视频| 亚洲综合免费观看高清完整版在线| 亚洲综合在线第一页| 午夜精品久久久久久久久久| 老司机一区二区| 国产成人精品一区二| 色综合久久久久网| 538在线一区二区精品国产| 日韩视频123| 欧美国产日韩一二三区| 亚洲人成网站影音先锋播放| 一区二区日韩av| 精品伊人久久久久7777人| av激情亚洲男人天堂| 欧美综合天天夜夜久久| 日韩欧美激情在线| 欧美国产日韩一二三区| 亚洲午夜一区二区| 国产一级精品在线| 欧美亚洲精品一区| 久久免费看少妇高潮| 一区二区三区不卡视频| 精品一区二区三区av| 91蜜桃传媒精品久久久一区二区| 欧美精品一级二级三级| 久久亚区不卡日本| 亚洲成在线观看| 国产成a人亚洲| 欧美日韩国产首页| 国产精品不卡在线观看| 日本不卡中文字幕| 色综合一个色综合亚洲| 久久人人97超碰com| 亚洲国产综合91精品麻豆| 国产a久久麻豆|