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; } } }
void main() { UART1_Init(); ADC_Init(0xFF); while (1) { //UART1_Send_Char(ADC_Get_Result(1)); UART1_Send_Char(ADC_Get_Result(2)); Delay1000ms(); } }
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(); } } }
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; } } }