예제 #1
0
void timer_init(){
    timer_init_0();
}
예제 #2
0
int main(){

	first_time_boot(); //first time boot parameters
	read_config(); //nuskaitom config is eeprom	
	
	
	//------------- I/O nustatymai ------------------
	
	//LED
	PORTDDR(LED_PORT) |= _BV(LED1_BIT); 
	LED_PORT &= ~_BV(LED1_BIT); 
	PORTDDR(LED_PORT) |= _BV(LED2_BIT); 
	LED_PORT &= ~_BV(LED2_BIT); 
	PORTDDR(LED_PORT) |= _BV(LED3_BIT); 
	LED_PORT &= ~_BV(LED3_BIT); 

	PORTDDR(LCD_LED_PORT) |= _BV(LCD_LED_BIT); //LCD pasvietimas
	LCD_LED_PORT |= _BV(LCD_LED_BIT); //ijungiam LCD pasvietimas

	//USART
	DDRD|=_BV(PD1); //TX
	PORTD|=_BV(PD1);
	DDRD&=~_BV(PD0); //RX

	//ROT ENCODER
	DDRD&=~_BV(PD3); //INT1 
	PORTD|=_BV(PD3);
	DDRD&=~_BV(PD4); 
	PORTD|=_BV(PD4);
	//ROT ENCODER BUTTON
	DDRB&=~_BV(PB6); 
	PORTB|=_BV(PB6);


	//PIR
	DDRD&=~_BV(PD2); //INT0
//	PORTD|=_BV(PD2);

	//PWM OUT
	DDRB|=_BV(PB3); 
 
	//----------------- initai -----------------------------

	init_uart(UBRR_VAL);
	lcd_init(LCD_DISP_ON);
	INT_init();
	ADC_init();

	timer_init_0();
	timer_init_1();

	start_timer1();
//	TIMSK |=(_BV(OCIE1A)); //iddle timmer on


	apie();	
	
	
	//puslapiai();


	//Nustatom PWM mode
//	TCCR2=0x6B;     //6E;

//	OCR2=EEPROM_read(24); // OCR2 is EEPROM




	
	work_mode=EEPROM_read(25);
	wmode(work_mode);
	
	show_work_mode();
	
#if debug_mode
send_string("OCR2 eeprome: ");
send_string(itoa(OCR2, buff, 10));
send_string("\n\r");
#endif

	//naudojam ADC nuskaitymui
	
//	start_timer0();
	
	_delay_ms(200);
	LCD_LED_PORT &= ~_BV(LCD_LED_BIT); //isjungiam LCD pasvietima	

sei();

//fade_in();

//fade_out();




	


while(5){


	PORTDDR(LED_PORT)^= (1<<LED3_BIT);
//	_delay_ms(50);

//-------------------- to go into main menu 00--------------------

//		if (bit_is_clear(PINB, PB6)){	
//		lcd_light=1;
//		}
		
		
		if(meniu==0 && config==0 && read_keypad()==1){
			
		#if debug_mode 
		PORTDDR(LED_PORT)^= (1<<LED2_BIT);
		send_string("nuspausta knopke\n\r");	
		#endif
		
		if(lcd_light==0) {	
							clock_second=0;
							clock_millisecond=0;
							lcd_light=1;
							LCD_LED_PORT |= _BV(LCD_LED_BIT); //ijungiam LCD pasvietima	
						 }
		else{

		LCD_LED_PORT |= _BV(LCD_LED_BIT); //ijungiam LCD pasvietima	

		meniu=1; 
		menu_page=0; 
		sub_menu_page=0;
	
		lcd_light=0; 

		puslapiai();
		
		}		

		#if debug_mode 
		debug_meniu();	
		#endif
			
		}
	
//-------------------- main and sub menu routine --------------
	
	while(meniu!=0 && config==0){

	
		if(read_keypad()==1){

			if(meniu==1 && config==0){
				
					if(menu_page<4){ //2inis configas (on/off tipo)
						meniu=2;
						sub_menu_page=0; 
						puslapiai_2();
					
						#if debug_mode 
						debug_meniu();					
						#endif
					}				

					else if (menu_page==4){	//isejimas i configa		
						meniu=3;
						config=1;
						read_config(); //nuskaitom config parametrus is eeprom
						puslapiai_config();										

						#if debug_mode 
						debug_meniu();	
						#endif
					}
					//exit meniu punktas
					else if (menu_page==5){ //iseijimas i work_mode();
						meniu=0;
						config=0;

						show_work_mode();

						LCD_LED_PORT &= ~_BV(LCD_LED_BIT); //isjungiam LCD pasvietima

						#if debug_mode 
						debug_meniu();	
						#endif		
					}

					else meniu=meniu;
			}
//-------------------- end of main menu routine --------------

	
//-------------------- start of sub menu routine --------------		
		
		else if (meniu==2 && config==0){ //2inis configas
		
			if(sub_menu_page==1) { //OFF vektorius visiems meniu			
				if(menu_page!=4){ 
				meniu=1; 
				work_mode=0;	 //OFF - wmode
				EEPROM_write(25, work_mode);
				wmode(work_mode);		
				puslapiai(); 
				
				#if debug_mode 
				debug_meniu();	
				#endif	
				}
		

			}
			
			else if (sub_menu_page==0){ //ON vektorius
				if(menu_page==0){		//ON/OFF meniu punkte
				work_mode=1;			//ON - wmode
				EEPROM_write(25, work_mode);
				meniu=0;
				wmode(work_mode);
				show_work_mode();
				

				_delay_ms(200);
				LCD_LED_PORT &= ~_BV(LCD_LED_BIT); //isjungiam LCD pasvietima
				
				#if debug_mode 
				debug_meniu();	
				#endif	
				}
				
				else if (menu_page==1){		//PIR meniu punktas
				work_mode=2;				//PIR - wmode
				EEPROM_write(25, work_mode);
				meniu=0;
				show_work_mode();
				wmode(work_mode);				
				

				_delay_ms(200);
				LCD_LED_PORT &= ~_BV(LCD_LED_BIT); //isjungiam LCD pasvietima
				}				

				else if (menu_page==2){		//PIR/LDR meniu punktas
				work_mode=3;				//PIR/LDR - wmode
				EEPROM_write(25, work_mode);
				meniu=0;
				show_work_mode();
				wmode(work_mode);				
				

				_delay_ms(200);
				clock_second=0;
				clock_millisecond=0;
				lcd_light=1;
				
				//LCD_LED_PORT &= ~_BV(LCD_LED_BIT); //isjungiam LCD pasvietima
				
				#if debug_mode 
				debug_meniu();	
				#endif	
				}

				else if (menu_page==3){		//LDR meniu punktas
				work_mode=4;				//LDR - wmode
				EEPROM_write(25, work_mode);
				meniu=0;
				show_work_mode(); 
				wmode(work_mode);
				
				

				_delay_ms(200);
				LCD_LED_PORT &= ~_BV(LCD_LED_BIT); //isjungiam LCD pasvietima
				
				#if debug_mode 
				debug_meniu();	
				#endif	
				}
			}

			else meniu=meniu;
		}
		}
	}
//-------------------- end of sub menu routine --------------



//-------------------------- config ---------------------
	while(meniu!=0 && config==1){

		
		if(read_keypad()==1){	

		#if debug_mode
		PORTDDR(LED_PORT)^= (1<<LED1_BIT);
		send_string("nuspausta knopke confige\n\r");
		#endif

			//config meniu vaiksciojimas: arba iseinam i main meniu arba nueinam i sub config meniu
			if(meniu==3 && config==1){
			
					//exit meniu punktas
					if (config_menu_page==config_menu_page_max){ //iseijimas i work_mode();
						meniu=1;
						config=0;
						config_menu_page=0;	
						puslapiai();

						#if debug_mode 
						debug_meniu();	
						#endif		
					}
					
					//nuejimas i sub config meniu (minPWM, maxPWM, timeOUT ir LDRth nustatymai)
					else if (config_menu_page!=config_menu_page_max){
					meniu=3;
					config=2;
					
					//nuostato nustatymas (pasiziurim, kelintas fadein[] elementas atinka minPWM/maxPWM reiksme EEProme
					if (config_menu_page==0) nuostatas=nuostato_radimas(minPWM);
					else if (config_menu_page==1) nuostatas=nuostato_radimas(maxPWM);
					else nuostatas=nuostatas;

					puslapiai_config_2();
					
					#if debug_mode
					debug_meniu();
					#endif
				//	break;
					}

			
			}

			else config=config;
		}

	}

//---------------------- end of config -----------------------

//---------------------- sub config routine -------------------------

	while(meniu!=0 && config==2){

		
		if(read_keypad()==1){	

		#if debug_mode
		PORTDDR(LED_PORT)^= (1<<LED1_BIT);
		send_string("nuspausta knopke sub confige\n\r");
		#endif

		//isejimas is sub configo
		
		meniu=3;
		config=1;
		nuostatas=0;
		puslapiai_config();

		write_config();
		//OCR2=EEPROM_read(24);
		timer2_set(EEPROM_read(24));
		wmode(work_mode); //kad liktu tikrasis work_mode
		}

		else config=config;
	}

//---------------------- end of sub config routine ------------------

}

}