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

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

?? 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]/4+ADC/4;
		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;*/
       
  }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天狠狠| 日韩片之四级片| 成人app在线| 国产精品一区二区三区网站| 精品一区免费av| 久久99精品国产麻豆不卡| 蜜桃视频第一区免费观看| 美女任你摸久久| 92精品国产成人观看免费| 成人黄页在线观看| 成人国产亚洲欧美成人综合网| 成人一区二区在线观看| 成人av电影免费观看| 91福利在线看| 7777精品伊人久久久大香线蕉超级流畅| 9191成人精品久久| 欧美成人福利视频| 久久久精品天堂| 国产校园另类小说区| 亚洲四区在线观看| 亚洲最新视频在线观看| 日韩电影免费一区| 国产综合久久久久久久久久久久| 床上的激情91.| 在线国产电影不卡| 欧美一区二区三区视频在线观看| 日韩视频一区在线观看| 国产亚洲一本大道中文在线| 中文字幕在线不卡一区| 午夜久久久久久| 激情综合亚洲精品| 91亚洲午夜精品久久久久久| 欧美精品123区| 精品99999| 日韩久久一区二区| 亚洲第一精品在线| 国产成人综合在线| 欧美性大战久久久久久久| 欧美成人精品1314www| 国产精品国产三级国产专播品爱网 | 国产精品久久久久久久午夜片| 亚洲综合丝袜美腿| 九九九久久久精品| 91网站最新地址| 3751色影院一区二区三区| 久久精品亚洲精品国产欧美| 国产一区二区女| 欧美亚洲图片小说| 久久久久久99精品| 亚洲国产精品一区二区久久 | 日韩和欧美一区二区三区| 国产呦精品一区二区三区网站| 91麻豆福利精品推荐| 欧美tickling挠脚心丨vk| 亚洲三级理论片| 极品瑜伽女神91| 欧美三级视频在线| 国产精品天干天干在线综合| 日韩vs国产vs欧美| 97精品久久久久中文字幕| 欧美刺激午夜性久久久久久久| 亚洲色图清纯唯美| 国产最新精品精品你懂的| 欧美三级中文字幕| 亚洲丝袜制服诱惑| 国产最新精品免费| 欧美一级高清片在线观看| 亚洲少妇30p| 国产激情视频一区二区三区欧美| 欧美色综合网站| 中文字幕中文字幕在线一区| 激情丁香综合五月| 欧美一三区三区四区免费在线看| 亚洲乱码中文字幕| 成人一区二区视频| 久久亚洲欧美国产精品乐播| 日韩高清不卡一区二区三区| 色88888久久久久久影院按摩 | 亚洲综合精品自拍| av在线综合网| 久久久精品综合| 激情综合网最新| 91精品国产综合久久久久| 亚洲成av人片一区二区梦乃| 色综合一区二区三区| 亚洲国产精品成人久久综合一区| 欧洲亚洲精品在线| 国产精品女上位| 国产盗摄精品一区二区三区在线| 精品99久久久久久| 激情综合色播五月| 精品欧美一区二区三区精品久久 | 国产精品白丝在线| 白白色亚洲国产精品| 国产日韩精品一区二区浪潮av | 欧美一区二区三区免费大片| 亚洲国产精品一区二区尤物区| 在线观看欧美精品| 亚洲免费资源在线播放| 96av麻豆蜜桃一区二区| 亚洲免费观看高清完整版在线观看| 成人动漫在线一区| ...中文天堂在线一区| 99精品欧美一区二区三区综合在线| 国产精品久久久久久久裸模| 99精品视频在线观看免费| 亚洲视频一区二区在线观看| 91丨porny丨户外露出| 亚洲视频一二三区| 色妹子一区二区| 亚洲国产欧美一区二区三区丁香婷| 欧美午夜片在线看| 三级精品在线观看| 欧美成人乱码一区二区三区| 国产一区不卡精品| 中文在线资源观看网站视频免费不卡 | 1024亚洲合集| 一本大道综合伊人精品热热| 亚洲国产sm捆绑调教视频 | 久久久精品国产免大香伊| 国产成人精品免费网站| 亚洲天堂福利av| 欧美日韩dvd在线观看| 乱一区二区av| 久久久www免费人成精品| 成人黄色av电影| 亚洲成年人网站在线观看| 日韩亚洲欧美中文三级| 国产一区二区精品在线观看| 亚洲天堂av一区| 91麻豆精品国产91久久久资源速度 | 精品久久久久久久久久久久包黑料| 国产一区久久久| 亚洲欧美乱综合| 欧美一区二区观看视频| 国产精品一区二区三区四区| 亚洲人亚洲人成电影网站色| 欧美肥妇free| 国产精品白丝av| 洋洋成人永久网站入口| 日韩免费观看高清完整版在线观看| 懂色av一区二区三区免费看| 亚洲一区二区欧美| 午夜精品福利久久久| 精品盗摄一区二区三区| 色8久久精品久久久久久蜜| 久久国产夜色精品鲁鲁99| 国产精品美女久久久久久久| 欧美日韩国产精品自在自线| 国产精品18久久久久久久久久久久 | 日韩欧美综合一区| 91在线观看视频| 久久国产精品99精品国产 | 国产剧情一区二区| 亚洲成人午夜影院| 国产精品女同互慰在线看| 欧美一卡二卡在线观看| 99精品视频在线观看| 国内精品在线播放| 亚洲妇女屁股眼交7| 国产精品天天摸av网| 欧美成人女星排名| 欧美在线观看视频一区二区三区| 国产一区二区三区电影在线观看| 亚洲成a人v欧美综合天堂| 国产精品毛片大码女人 | 麻豆精品一区二区综合av| 精品国产制服丝袜高跟| 国产精品一级二级三级| 99精品欧美一区二区蜜桃免费| 日韩1区2区日韩1区2区| 亚洲欧美一区二区三区国产精品| 久久久久久夜精品精品免费| 欧美日韩高清一区二区三区| 91在线一区二区三区| 国产91精品入口| 久久不见久久见中文字幕免费| 夜夜亚洲天天久久| 国产精品传媒入口麻豆| 久久天堂av综合合色蜜桃网| 欧美精品欧美精品系列| 日本精品裸体写真集在线观看| 国产成人亚洲精品狼色在线| 裸体歌舞表演一区二区| 日韩精品电影一区亚洲| 亚洲综合一区二区| 亚洲美女在线一区| 亚洲天堂中文字幕| 中文字幕日本乱码精品影院| 久久午夜老司机| 久久一区二区视频| 欧美xfplay| 日韩免费在线观看| 欧美一区二区女人| 91麻豆精品久久久久蜜臀| 欧美另类高清zo欧美| 欧美无人高清视频在线观看| 在线观看不卡视频| 欧美日韩一区三区四区| 欧美丝袜自拍制服另类|