Пример #1
0
void device_boot_msg(void)
{
  uint8_t ctr;

  for(ctr=0;ctr<3;ctr++)
  {
    LED1_BLINK();
    while(led_blink)               // wait until LED released...
      ;
    delay_10ms();

    LED2_BLINK();
    while(led_blink)               // wait until LED released...
      ;
    delay_10ms();

    LED3_BLINK();
    while(led_blink)               // wait until LED released...
      ;
    delay_10ms();

    LED2_BLINK();
    while(led_blink)               // wait until LED released...
      ;
    delay_10ms();

    LED1_BLINK();
    while(led_blink)               // wait until LED released...
      ;
    delay_10ms();

  }
}
Пример #2
0
/*----------------------------------------------------------------------------*/
void rtc_fun(void)
{
    MAIN_POWER_PORT_INIT();	
    MAIN_POWER_PORT_DISABLE();	
    iic_gpio_set_low();
    amp_mute(1);

    if(alm_on_flag){
		if(sys_main_vol != alrm_vol_bakup)
		sys_main_vol = alrm_vol_bakup;
    		alm_on_flag = 0;
    }
    input_number_en = 0;
    vol_change_en=0;
    key_voice_en=0;
    main_menu = MENU_RTC;
    close_alarm();
    dsp_set_eq_mode(0);			  //系统时钟div前需关闭eq
    SYSTEM_CLK_DIV4();
    key_table_sel(0);
    flush_all_msg();
    set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量
    dac_out_select(DAC_MUSIC, 0);
	
    rtc_mode_setting = RTC_DISPLAY;
    rtc_coordinate = 0;
    alm_coordinate = 0;
    if (alm_cnt)
    {
        put_msg_lifo(MSG_ALM_ON);
    }
    else
    {
        read_rtc(&curr_time);
        chk_date_err();
        disp_port(MENU_RTC);
    }

    MAIN_POWER_PORT_INIT();	
    MAIN_POWER_PORT_DISABLE();	
	
    deal_rtc();

    amp_mute(1);
    MAIN_POWER_PORT_ENABLE();	

    delay_10ms(3);
    key_voice_en=0;
    main_vol_set(0, CHANGE_VOL_NO_MEM);
    MAIN_POWER_PORT_ENABLE();	
    amp_mute(1);
    delay_10ms(80);
  
    snooze_en =0;
	
    PT2313_Init();
    delay_10ms(10);
    PT2313_Init();
	
}
void configLCD(void){
	char RS_list[6], DB_list[6], i=0;

	DISPLAY7_DIR = 0;
	DISPLAY_ENABLE_dir = 0;
	RS_dir = 0;

	RS_list[0] = 0;
	DB_list[0] = 0b00111000;

	RS_list[1] = 0;
	DB_list[1] = 1;

	RS_list[2] = 0;
	DB_list[2] = 2;

	RS_list[3] = 0;
	DB_list[3] = 6;

	RS_list[4] = 0;
	DB_list[4] = 15;

	RS_list[5] = 0;
	DB_list[5] = 0b10000000;

	for(i = 0;i < 6;i++){
		DISPLAY_ENABLE = 1;
		RS = RS_list[i];
		DISPLAY7 = DB_list[i];
		delay_10ms();
		DISPLAY_ENABLE = 0;
		delay_10ms();
	}

}
Пример #4
0
/*----------------------------------------------------------------------------*/
static void sys_info_init(void)
{
    //u8 vol_tmp;

#if 1
    sys_main_vol = read_info(MEM_SYS_VOL);
    if ((sys_main_vol > MAX_MAIN_VOL) || (sys_main_vol == 0))              //每次开机时,不要超过最大音量的一半,以免开机音量过大
    {
        sys_main_vol = 20;
    }
#endif

    dac_init(sys_main_vol);
    delay_10ms(50);										//等待,检测USB,SD在线状态
    //init_rec_name();
    //restore_music_point();
#if 0
#if RTC_ENABLE
    if (work_mode != RTC_MODE)
#endif
    {
    	device_check();
#if USB_DEVICE_ENABLE
        if (pc_connect)
            work_mode = USB_DEVICE_MODE;
        else if (udisk_connect || sdmmc_connect)
            work_mode = MUSIC_MODE;
#else
       // if (udisk_connect || sdmmc_connect)
       //     work_mode = MUSIC_MODE;
#endif
    }
#endif

}
Пример #5
0
void radio_info_pre_init(void)
{
#ifdef FUNC_OFF_MP3_RADIO_MIXED
	clr_adc_band_protect();
	delay_10ms(10);
#endif

	if(radio_band.bCurBand>((sizeof(radio_freq_tab)/6)-1)){
		
		radio_band.bCurBand = FM_MODE;
	}

	radio_band.wFreqUpLimit = radio_freq_tab[radio_band.bCurBand].MAX_FREQ;
	radio_band.wFreqDownLimit = radio_freq_tab[radio_band.bCurBand].MIN_FREQ;
	radio_band.bTuneStep  = radio_freq_tab[radio_band.bCurBand].FREQ_STEP;
	
#ifdef SAVE_BAND_FREQ_INFO	
	radio_band.wFreq= read_radio_freq(radio_band.bCurBand);
#endif

	if (radio_band.wFreq > radio_band.wFreqUpLimit)
        	radio_band.wFreq = radio_band.wFreqDownLimit;
	
    	if (radio_band.wFreq < radio_band.wFreqDownLimit)
        	radio_band.wFreq =radio_band.wFreqDownLimit;

    disp_port(MENU_RADIO_MAIN);			
    scan_mode = RADIO_SCAN_STOP;
}
Пример #6
0
/*----------------------------------------------------------------------------*/
void rec_mic_fun(void)
{
#ifdef UART_ENABLE
	deg_str("encode \n");
#endif

    dac_mute_control(1,1);
    input_number_en = 0;
    //vol_change_en=1;
    main_menu = MENU_RECWORKING;
    disp_port(MENU_SCAN_DISK);
    delay_10ms(50);
    SYSTEM_CLK_DIV2();
    encode_channel = REC_MIC;
    encode_vol = 7;
    key_table_sel(0);
    flush_all_msg();
    if(RECODE_INIT == encode_status)
    {
        	put_msg_lifo(MSG_REC_FIND);
        	//put_msg_lifo(MSG_REC_START);
    }
    //put_msg_lifo(MSG_REC_START);
    set_max_vol(MAX_ANOLOG_VOL,MAX_DIGITAL_VOL);///设置最大音量
    rec_mic_main();
    dac_mute_control(0,0);
    break_encode();
    lcd_clr_flash_icon();	
}
Пример #7
0
void FMAM_Mode_Switch_Profile(u8 fm_wm)
{
	if((fm_wm==SYS_FMREV)||(fm_wm==SYS_AMREV)){
	}
	else{
		work_mode = SYS_FMREV;
	}
	
    	my_main_vol(0);
	if(fm_wm==SYS_FMREV){

		//printf(" ----FM   %x \r\n",(u16)fm_wm);
		radio_mode=1;
		FM_AM_chip_mode_sel(RADIO_FM);
		enter_fm_rev();
		set_fre(frequency,1);		
	       Disp_Con(DISP_FREQ);

	}
	else if(fm_wm==SYS_AMREV){

		//printf(" -----AM   %x \r\n",(u16)fm_wm);
		radio_mode=0;
		FM_AM_chip_mode_sel(RADIO_AM);
		enter_am_rev();
		set_fre(frequency,1);
	       Disp_Con(DISP_FREQ);		
	}
	delay_10ms(20);
	set_fre(frequency,1);
    	my_main_vol(my_music_vol);
	
}
Пример #8
0
void REDFLY::flush(void)
{
  uint32_t timeout;

  #if defined(UBRRH) && defined(UBRRL)
  # define _UCSRB_ UCSRB
  # define _UDRIE_ UDRIE
  #else
  # define _UCSRB_ UCSR0B 
  # define _UDRIE_ UDRIE0
  #endif

  //clear tx buffer
  Serial.flush();

  //clear rx buffer
  Serial.flush();
  for(timeout=F_CPU/1024UL; ((_UCSRB_&(1<<UDRIE0)) || available()) && timeout; timeout--)
  {
    read();
  }
  delay_10ms(1);

  return;
}
Пример #9
0
void close_door(void)
//Purpose: Closes the door. For our build, this means setting P1.3 high for atleast 3ms (the specified latching time for the relay)
{
	P1|=0x08; 		//set P1.3 high
	delay_10ms(1); 	//wait 10ms
	P1&=0xF7;		//set P1.3 Low	
}
Пример #10
0
void open_door(void)
//Purpose: Opens the door. For our build, this means setting P1.2 high for atleast 3ms (the specified latching time for the relay)
{
	P1|=0x04; 		//set P1.2 high
	delay_10ms(1); 	//wait 10ms
	P1&=0xFB; 		//set P1.2 low
}
Пример #11
0
void iphone_func(void)
{
#if defined(K000_XingChuang_x821_V001)
	charger_iphone_ctrl();
#endif
    Mute_Ext_PA(MUTE);	

    set_play_flash(LED_FLASH_ON);
    Disp_Con(DISP_IPOD);
    PT1 = 1;										//timer1 interrupt 低优先级
    flush_low_msg();
    play_status = 0;

    set_max_vol(MAX_ANALOG_VOL, MAX_DIGITAL_VOL);			//设置AUX模式的音量上限

    sysclock_div2(1);
	
#ifdef BLUETOOTH_GPIO_CTRL
#ifndef SYS_BT_TURN_OFF_PWR_CHECK
    BT_PWR_OFF();
#endif 
#endif 

    open_uart_ctrl();
    ipone_hdlr();
#if defined(TURN_OFF_IPOD_WHEN_LEAVE_IPHONE_DOCK)
	delay_10ms(10);
	IPOD_STOP;
	delay_10ms(1);
     	IPOD_RELEASE;	
	delay_10ms(1);	
#endif	
    close_uart_ctrl();

    main_vol_set(0, CHANGE_VOL_NO_MEM);

    sys_clock_pll();

#if defined(USE_SPECTRUM_PARTTERN)	
    set_lcd_flash_lock(UNLOCK);
#endif

#if defined(K000_XingChuang_x821_V001)
    wkup_pin_ctrl(0);
#endif
	
}
Пример #12
0
void disp_fm_find_station(void)
{
    led_putchar('P',1);
    printf_num(fre_channel,2,2);//my_printf("%c P%02b%m", fre_channel, LED_FM_ICON);
	fm_rec_disp();
    delay_10ms(50);


}
Пример #13
0
void AD_Debug_func()
{
	while(1){
			
		printf("ad read value %x \r\n",(u16)((key_value)));
		//printf("ad read value %d \r\n",(u16)((key_value*33)/255));
		delay_10ms(2);
	}		
}
Пример #14
0
/*----------------------------------------------------------------------------*/
void write_eerom(u16 addr,u8 dat)
{
     u8 iic_addr=0,page=0;
	 
    iic_addr=EEPROM_Addr_Align(addr);
    page =EEPROM_Addr_to_Page(addr);
	
    iic_write((0xa0|page),iic_addr,&dat,1);
    delay_10ms(2);
}
Пример #15
0
/*----------------------------------------------------------------------------*/
void sys_power_down(void)
{
    sys_printf("---sys_power_down");

    Mute_Ext_PA(MUTE);

    delay_10ms(2);
    EA = 0;
    power_ctl(0);
    while (1);
}
Пример #16
0
void idle_mode(void)
{
    u8 key;
//deg_str("idle_mode \n");

    //dac_out_select(DAC_MUSIC, 0);
    //clear_all_event();
    dac_mute_control(1,1);    
#ifdef PLAY_STATUS_LED_FUNC
    set_play_status_led_spark(PLED_OFF);
#endif	
    KT_AMFMStandby();
    usb_suspend();
	
    flush_all_msg();
    disp_port(MENU_POWER_OFF);
    input_number_en=0;
    vol_change_en=0;

#ifdef DEFAULT_VOL
    sys_main_vol=DEFAULT_VOL;
#endif
    delay_10ms(20);

#ifdef SYS_SOFT_WARE_GOIN_STANDBY
    if(sys_pwr_flag==0){
		put_msg_fifo(MSG_SYS_CORE_SLEEP);		
    }
#endif	
   while (1)
    {
        key = app_get_msg();

        switch (key)
        {
#ifdef SYS_SOFT_WARE_GOIN_STANDBY        
        case MSG_SYS_CORE_SLEEP:
    		core_power_off();			
		break;
#endif		
        case MSG_CHANGE_WORK_MODE:
	     	clear_all_event();
    	     	flush_all_msg();
            	return;
        case MSG_MUSIC_NEW_DEVICE_IN:							//有新设备接入
	 	break;
        default:
            	ap_handle_hotkey(key);        
            	break;
        }
    }
}
Пример #17
0
/*----------------------------------------------------------------------------*/
void disp_power_off(void)
{
#if ((monitor == DISP_LCD_12832)  || (monitor == DISP_LCD_12864_SER)  || (monitor == DISP_LCD_12864_PAR))
    {
        my_printf("     %eOFF%o");
        delay_10ms(50);
    }
#elif(monitor == DISP_LED5X7)
    {
        my_printf("%c");
    }
#endif
}
Пример #18
0
void Disp_Start(void)
{
#ifdef K619_FXK_619_V001
	if(config_led_by_gpio==0){
       	dispstring(" SCH",0);
	}
	else{
	       dispstring(" HI",0);
	}
#elif defined(DISP_HIFI_STR_AT_POWER_ON)	
       dispstring("HIFI",0);
#elif defined(K000_HG_898_V001)||defined(MP3_DISP_LOAD_STRING_AT_PWR_ON)
       dispstring("LOAd",0);
#elif defined(K668_YJH_815_V001)
       dispstring("-HI-",0);
#elif defined(K1069_AJE_1069_V001)||defined(DISP_HIFI_ANIMIATION_AT_PWR_ON)||defined(K1069_AJE_1069_V002)
	LED_STATUS = 0xFF;
       dispstring("BBBB",0);
	delay_10ms(20);
	LED_STATUS = 0x00;

       dispstring("   H",0);
	delay_10ms(20);
	
       dispstring("  HI",0);
	delay_10ms(20);
	
       dispstring(" HIF",0);
	delay_10ms(20);
	
       dispstring("HIFI",0);
	delay_10ms(20);	
#elif defined(K000_JR_210_V001)
       dispstring(" -- ",0);
#else
       dispstring(" HI",0);
#endif
	lcd_backlight_ctrl(1);
}
Пример #19
0
int main(void)
{
	// Initial STM32F4 MCU System
	SystemInit();
	
	// Initial QCopterMV LED indicator
	LED_Config();
	
	while(1) {
		
		LED_R = 0;
		LED_G = 1;
		LED_B = 1;
		delay_10ms(15);
		LED_R = 1;
		LED_G = 0;
		LED_B = 1;
		delay_10ms(15);
		LED_R = 1;
		LED_G = 1;
		LED_B = 0;
		delay_10ms(15);
		
		while(KEY) {
			
			LED_R = 0;
			LED_G = 0;
			LED_B = 0;
			delay_100ms(2);
			LED_R = 1;
			LED_G = 1;
			LED_B = 1;
			delay_100ms(2);
			
		} // END while KEY pressed
		
	} // END while

} // END main
Пример #20
0
/*----------------------------------------------------------------------------*/
void disp_fm_find_station(void)
{
#if ((monitor == DISP_LCD_12832)  || (monitor == DISP_LCD_12864_SER)  || (monitor == DISP_LCD_12864_PAR))
    {
        disp_fm_main();
    }
#elif(monitor == DISP_LED5X7)
    {
        disp_fm_main();
        delay_10ms(50);
    }
#endif
}
Пример #21
0
void Disp_PwrOFF(void)
{
#if defined(K015_983_1_SW005_V001)||defined(K000_XinLei_LC2092_V006)||defined(DISP_OFF_STR_AT_PWR_DOWN)
       dispstring("OFF",0);
	delay_10ms(20);
#elif defined(K000_JR_210_V001)
       dispstring(" -- ",0);
#elif defined(K1069_AJE_1069_V001)||defined(DISP_OFF_ANIMIATION_AT_PWR_DOWN)||defined(K1069_AJE_1069_V002)
       dispstring("   O",0);
	delay_10ms(20);

       dispstring("  OF",0);
	delay_10ms(20);

       dispstring(" OFF",0);

	delay_10ms(20);

#endif
	lcd_backlight_ctrl(0);

	disp_buf_clear();
}
Пример #22
0
void REDFLY::flush(void)
{
    uint32_t ms;

    //clear tx buffer
    _SERIAL_.flush();

    //clear rx buffer
    for(ms=millis(); ((_UCSRA_&(1<<_RXC_)) || available()) && ((millis()-ms) < 50);) //50ms
    {
        read();
    }
    delay_10ms(1);

    return;
}
Пример #23
0
void IR_Debug_func()
{

	WDTCON |= BIT(7);
	while(1){

		if(irda_state==32){
		        printf_u16(user_code,'C');
		        deg_str("\r\n");
		        printf_u16(irda_data,'D');
			deg_str("\r\n");
			delay_10ms(50);
		}
	}
		
}
void delay_100ms(){
	char i;
	for(i=0; i<9; i++) delay_10ms();
	for(i=0; i<9; i++) delay_1ms();
	for(i=0; i<49; i++);
	Nop();
	Nop();
	Nop();
	Nop();
	Nop();
	Nop();
	Nop();
	Nop();
	Nop();
	Nop();
}
Пример #25
0
void blue_tooth_init(void)
{
#ifdef BLUETOOTH_GPIO_CTRL
	BT_PWR_PORT_INIT();
	BT_RST_PORT_INIT();
	BT_PWR_ON();
	delay_10ms(10);

#ifdef USE_BT_ACTIVATED_PIN
	BT_RST_ON();
	//delay_10ms(100);
	ACTIVATED_PIN_cnt=20;
	//BT_RST_OFF();
#endif

#endif
}
Пример #26
0
/*----------------------------------------------------------------------------*/
static void sys_info_init(void)
{

    sys_main_vol = read_info(MEM_VOL);

    if ((sys_main_vol > MAX_MAIN_VOL) || (sys_main_vol == 0))              //每次开机时,不要超过最大音量的一半,以免开机音量过大
    {
        sys_main_vol = MAX_MAIN_VOL / 2;

    }
        sys_main_vol = MAX_MAIN_VOL / 2;
	
    dac_init(MAX_MAIN_VOL);
    dsp_set_adc_con((0x0070));
    delay_10ms(200);										//等待,检测USB,SD在线状态
    init_rec_name();
    restore_music_point();

#if 0	
#if RTC_ENABLE
    if (work_mode != RTC_MODE)
#endif
    {
    	device_check();
#if USB_DEVICE_ENABLE
        if (pc_connect)
            work_mode = USB_DEVICE_MODE;
        else if (udisk_connect || sdmmc_connect)
            work_mode = MUSIC_MODE;
#else
        if (udisk_connect || sdmmc_connect)
            work_mode = MUSIC_MODE;
#endif
        else
        {
            work_mode = read_info(MEM_SYSMODE);
            if (work_mode > MAX_WORK_MODE)
            {
                work_mode = MUSIC_MODE;
            }
        }
    }
#endif
}
Пример #27
0
void EPPROM_TEST(void)
{
	u16 addr=0,w_data=0,r_data=0;

	deg_str(" EPPROM_TEST START\n");
	
	deg_str(" EPPROM_WRITE START \n");
#if 1
	w_data = 0xA0;

	for(addr=0;addr<0x3FF;){
		
		write_eerom(addr,w_data);
		printf_u16(w_data, 'W');
		printf_u16(addr, 'A');
		addr++;		
		if((addr%0xFF)==0){
			w_data++;
			deg_str(" W --------------- W  \n");
		}
	}

	deg_str(" EPPROM_WRITE END \n");
#endif	
	deg_str(" EPPROM_READ ...   \n");

	for(addr=0;addr<0x3FF;){
		r_data = read_eerom(addr);
		delay_10ms(2);
#ifdef UART_ENABLE
		printf_u16(r_data, 'R');
		printf_u16(addr, 'A');
#endif
		if((addr%0xFF)==0){
			deg_str(" R --------------- R  \n");
		}		

		addr++;
	}	


	deg_str(" EPPROM_TEST END \n");
	
}
Пример #28
0
void sys_power_on_wait_for_powerkey(void)
{	
	u8 msg_key=0;
	u8 pwr_keyhold_timer=2,pwr_keyhold_sec=0;
       SYS_POWER_OFF();	
	LCD_BACKLIGHT_OFF();	
	while(1)
	{
        	msg_key = app_get_msg();
		switch(msg_key)
		{
	        	case MSG_POWER_HOLD:
				pwr_keyhold_timer=8;				
				break;
				
	        	case MSG_HALF_SECOND:
					
				if(pwr_keyhold_timer>6){
					
					pwr_keyhold_sec++;	
					if(pwr_keyhold_sec==0){
					       SYS_POWER_ON();
						return ;
					}
				}
				else{
					pwr_keyhold_sec--;	
					pwr_keyhold_timer--;	
					if(pwr_keyhold_timer==0){
					       SYS_POWER_OFF();
						disp_port(MENU_POWER_OFF);
	    					delay_10ms(12);
	    					//core_power_off();
	    					while(1);
					}
				}
				break;
	        	default:
				break;
		}
	}
}
Пример #29
0
void REDFLY::flush(void)
{
  uint32_t ms;

  //clear tx buffer
  _SERIAL_.flush();

  //clear rx buffer
#if defined(__AVR__)
  for(ms=millis(); ((_UCSRA_&(1<<_RXC_)) || available()) && ((millis()-ms) < 50);) //50ms
#else
  for(ms=millis(); available() && ((millis()-ms) < 50);) //50ms
#endif
  {
    read();
  }
  delay_10ms(1);

  return;
}
Пример #30
0
void main(void){
	char i=0, j, k=0;
	
	ADCON1 = 0x0f;
	
	PWMP = 79; //contador do timer conta ate 79
	DUTYCYCLE = 0;
	LED_dir = 0;
	TIMER = 0b00000110; //seta o timer on e pre-scale 16
	PWM_conf = 0b00001100; //seta a configuracao do PWN como PWM e os 2bits menos sig. como 0


	while(1){
		i = k? i-1 : i+1;
		k = i==0? 0 : (i==80 ? 1:k);
		DUTYCYCLE = i;
		delay_10ms();
	}

}