Example #1
0
void main()
{

		buzzer_off();
		pcf_8591_init();
		timer0_init();
		timer1_init();
		while(1)
		{
				switch(mod)
				{
						case 1:
									re =  pcf_8591_rd();
									delay(20);
									l3 = weight(re,l3);
									break;
						case 2:
									TR0 = 0;
									if(leixing == 1)
									{
										display(mod,ht1,0);
											Delay1000ms(ht1);
											ht1--;
											if(ht1 == 0)
												mod = 1;
										}
									else
									{	
										display(mod,ht2,0);
											Delay1000ms(ht2);
											ht2--;
										if(ht2 == 0)
												mod = 1;
									}
								
									
									break;
						case 3:
									break;
				}
		}
}
Example #2
0
void main()
{
	UART1_Init();
	ADC_Init(0xFF);
	while (1) {
		//UART1_Send_Char(ADC_Get_Result(1));
		UART1_Send_Char(ADC_Get_Result(2));

		Delay1000ms();	
	}
}
Example #3
0
void main()
{
	u8 k = 8;
	// stop catching interrupt
	disable_all_interrupt();
	// 
	require_delay_init();
	
	while(--k)
	{
		Delay1000ms();
	}
	
	// -> sync.h
	sync_with_alert();

	instant_effective_init();
	

	
	

	// begin catching interrupt
	enable_all_interrupt();
	// run forever
	
	
    while(1) {
    	// Feed dog
    	reset_watch_dog();
        if (INT_PROC & UART_PROC) {
    		signal_t signal_raw = recieve_data_from_buffer();
    		parse_crtl_signal(signal_raw);
    		INT_PROC &= ~UART_PROC;
    		continue;
    	}
    	// io status sampling finished
    	if (INT_PROC & LM567_DUTY) {
    		signal_t signal_raw;
    		u8 signal_raw_search_index = 0, signal_raw_fall_counter = 2;
		    if(quick_validate_signal(signal_raw_data)) {
		    	while (signal_raw_search_index < 7) {
		    		if ((signal_raw_data & (0x03 << signal_raw_search_index)) == (0x02 << signal_raw_search_index))
		    		{
		    			++signal_raw_search_index;
		    			++signal_raw_fall_counter;
		    		}
		    		++signal_raw_search_index;
		    	}

		    	if (fall_counter_whole < signal_raw_fall_counter) {
		    		signal_raw = effective_signal(signal_raw_data);
					parse_crtl_signal(signal_raw);
		    	}
			}
			INT_PROC &= ~LM567_DUTY;
			EX1 = ENABLE;
    		continue;
    	}
    	// 60hz * 2
    	if (INT_PROC & EXINT_PROC) {
 //   		if (cycle_output && toggle_status) 
    		if (toggle_status) 
    			toggle_once();	// -> display.h
    		prepare_next_display_params();
    		INT_PROC &= ~EXINT_PROC;
    		continue;
    	}
   //  	// 5ms system tick-tock
    	if (INT_PROC & TICK_DUTY) {
    		cycle_based_adjust(counter_for_cycle);
        	INT_PROC &= ~TICK_DUTY;
    		continue;
    	}
    	if (INT_PROC & MINUTE_DUTY) {
    		// -> display.h
				skip_to_next_display_if_should();
				INT_PROC &= ~MINUTE_DUTY;
				continue;
    	}
    	if (adc_should_sampling) {
    		adc_sampling();
    	}
    }
}
Example #4
0
void main()
{  
    // stop catching interrupt
    EA = 0;

    instant_effective_init();
    count_down_init_all_task();
    Delay1000ms();
    Delay1000ms();
    Delay1000ms();
    
    // begin catching interrupt
    EA = 1;

    cpu_wake_up_disable();

    // EX1 = ENABLE;
     
    INT_PROC = SLEEP_DUTY;   

    while(1) {
        // Feed dog
        reset_watch_dog();

        if(INT_PROC & KEY_DUTY)
        {
            count_down_at_all_task();
            if(detect_key_time_start)
                key_task_duty();
            if(read_status_signal){
                read_lock_status();
            }
            INT_PROC &= ~KEY_DUTY;
            continue;
        }

        if(INT_PROC & UART_DUTY) 
        { 
            uart_process_recieved(); 
            INT_PROC &= ~UART_DUTY;              
            continue; 
        } 


        // 5ms检测一次
        if(INT_PROC & TICK_DUTY)
        {
            if (USART_RX_Block(&COM1))  
                INT_PROC |= UART_DUTY;
            if (!lock_on_detect_signal){
                if(status_lock_on_detect() > TIME_PLUS){
                    power_work_disable();
                    cancle_open_count_down();
                    if(!INT1){
                        //go to wait for 2s
                        reload_open_ack_count_down();
                    } else {
                        uart_id = open_success;
                        reload_uart_wakeup_count_down();
                        status = on;
                    }
                    cnt_on_time_plus = 0;
                    lock_on_detect_signal = 1;
                    k_power_disable();
                }
            }
            if (!lock_off_detect_signal){
                if(status_lock_off_detect() > TIME_PLUS){
                    status = off;
                    if(!open_lock_ack_signal){
                        // lock
                        // lock success
                        uart_id = lock_success;
                        cancle_lock_count_down();
                    } else {
                        // open ack
                        // open fail
                        uart_id = open_fail;
                        // todo : cancel open_lock ack count_down
                        cancel_open_ack_lock_count_down();
                    }
                    cnt_off_time_plus = 0;
                    lock_off_detect_signal = 1; 
                    power_work_disable();
                    EX1 = ENABLE;
                    k_power_disable();
                    reload_uart_wakeup_count_down();   
                }
                
            }
            cycle_based_control();
            led_display_task(); 
            INT_PROC &= ~TICK_DUTY;
            continue;            
        }

        if(INT_PROC & LOCK_DETECT_DUTY){
            reload_sleep_count_down();
            detect_key_time_start = 1;
            INT_PROC &= ~LOCK_DETECT_DUTY;
            continue;
        }


        if(INT_PROC & SLEEP_DUTY)
        {
            speak_mode = mute;
            speak_beep_disable();
            led_mode_set = led_display_off;
            led_display_stop();
            status_in_sleep = 0;
            EX1 = ENABLE;
            INT_PROC &= ~SLEEP_DUTY;
            PCON = 0x02;
            continue;
        }

        if(INT_PROC & LOCK_DUTY)
        {
            cancle_sleep_count_down();
            cancle_open_count_down();
            cancel_open_ack_count_down();
            cancel_open_ack_lock_count_down();
            reload_lock_count_down();
            reload_lock_beep_count_down();
            k_power_enable();
            lock_off_detect_signal = 0;
            cnt_off_time_plus = 0;
            led_mode_set = lock;
            led_mode_changed(); 
            INT_PROC &= ~LOCK_DUTY;
            continue;
        }

        if(INT_PROC & LOCK_FAIL_DUTY)
        {
            cancle_open_count_down();
            cancle_lock_count_down();
            led_flicker.cycle_enable = OFF;
            led_power_disable();
            status = on;
            uart_id = lock_fail;
            reload_uart_wakeup_count_down();
            EX1 = ENABLE;
            INT_PROC &= ~LOCK_FAIL_DUTY;
            continue;
        }
    }
}