/* * main.c */ int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer gpio_port1_init(); Timer0_init(); Timer1_init(); GPIO_PORT1.out = S2_BIT; // Set S2 pin out register for pullup GPIO_PORT1.direction = ~S2_BIT; // Set LED pin to output mode GPIO_PORT1.resistor_enable = S2_BIT; // Enable S2 pin pullup GPIO_PORT1.select = LED2_BIT; // Select TA0.1 GPIO_PORT1.select_2 = 0; GPIO_PORT1.interrupt_edge_select = S2_BIT; // Set for falling edge GPIO_PORT1.interrupt_flag = 0; // Clear interrupt flags GPIO_PORT1.interrupt_enable = S2_BIT; // Enable interrupt GPIO_PORT2.direction = BUZZER_BIT; // Set buzzer pin to output mode GPIO_PORT2.select = BUZZER_BIT; // Select TA1.0 GPIO_PORT2.select_2 = 0; GPIO_PORT1_registerCallback(S2_PIN, &LED2_One_Shot); // Should blink the LED when the button is pressed. Timer0_A1_registerCallback (1, &TA0CCR1_ISR_Handler); _EINT(); LPM0; return 0; }
void USB_Task() { USB_On();//(JC)loop to wait 'n parse msdc scsi command, ret if usb unplugged (gbt_USB_Detected) if((!M_ChkFlag_USB) || (gb_cmd_timeout==1)) //080925chiayen modify { gbt_USB_Detected=0; GLOBAL_REG[0x10]&= 0xFE; // Disable DSP clock, Jimi 080729 for pop noise as 1st time play GLOBAL_REG[0x02] &= 0xFE; // Release DSP Reset, Jimi 080729 for pop noise as 1st time play Timer0_init(); EA = 1; gc_bCBWLUN=0; gc_LCM_Media=0xff; gc_DisplayEQIcon=0xFF; gw_DisplayBitRate=0xFFFF; gc_DisplayPlayMode=0xFF; gw_DispSongNum1=0xFFFF; gc_PseudoCard_Flag=0; gc_Task_Next=C_Task_Play; gw_init_needed |= (SET_BIT0 | SET_BIT7); gw_FileIndex[0]=0; gc_PhaseInx = 0; gb_FindFlag = 0; } gc_Task_Current=gc_Task_Next; }
static UINT play (const char *fn) { DWORD sz; FRESULT res; unsigned char read2; uint16_t size = 256; if ((res = pf_open(fn)) == FR_OK) { Timer0_init(); Timer1_init(); sz = load_header(); /* Load file header */ if (sz < 256) return (UINT)sz; FifoCt = 0; FifoRi = 0; FifoWi = 0; /* Reset FIFO */ pf_read(Buff1, 512 - (Fs.fptr % 512), &rb); /* Snip sector unaligned part */ sz -= rb; res = pf_read(Buff1, size, &rb); if (res != FR_OK) { PORTC = 0x08; while (FifoCt) ; return res; } sync = 1; do { read2 = read1; if(read1 == 1) res = pf_read(Buff2, size, &rb); else res = pf_read(Buff1, size, &rb); if (res != FR_OK) { PORTC = 0x08; break; } while(read2 == read1); if(!(PINB&(1<<PB1))) { sync = 0; _delay_ms(500); break; } } while (rb == size); /* Repeat until all data read */ sync = 0; } while (FifoCt) ; /* Wait for FIFO empty */ return res; }
int main(void) { DDRB |= _BV(PB5); Usart_init(); Timer0_init(); Twi_init(); CircularBuffer_init(&twi_input); _enableInterrupts(); while(1); }
void main_init(){ dashboard_state=DASHBOARD_STATE_STARTING; ports_init(); Timer0_init(TMR0_PRESCALER); CANInit(); #if HAS_50HZ|HAS_200HZ|HAS_50HZ Timer1_init(TMR1_PRESCALER,FALSE); #endif #if HAS_10HZ|HAS_5HZ|HAS_4HZ Timer3_init(TMR3_PRESCALER,FALSE); #endif #if HAS_50HZ TIMER_Timer1_OCR1A_on(); #endif #if HAS_25HZ TIMER_Timer1_OCR1B_on(); #endif #if HAS_200HZ TIMER_Timer1_OCR1C_on(); #endif #if HAS_10HZ TIMER_Timer3_OCR3A_on(); #endif #if HAS_BUZZER buzzer_init(); TIMER_Timer3_OCR3C_on(); #endif #if HAS_LEDS led_init(); #endif #if HAS_BUTTONS button_init(); #endif #if HAS_DISPLAY display_init(); #endif #if HAS_RADIO radio_init(); #endif InitWDT(); EventAddEvent(EVENT_INIT); }
void main(void) { // XBYTE[0xB091]=0x01; // 1.8v/3.3v regulator turn on XBYTE[0xB092]=0x78; // 3.2V & 2.0V // XBYTE[0xB093]=0x00; // LVR=2.4V // DSP initial XBYTE[0xB010]&=0xFE; // Disable DSP clock, Jimi 080729 for pop noise as 1st time play XBYTE[0xB002]&=0xFE; // Release DSP Reset, Jimi 080729 for pop noise as 1st time play XBYTE[0xB08a]|=0x08; //(JC)MCU:audio DAC on XBYTE[0xB08a]|=0x10; //(JC)MCU:Headphone driver on XBYTE[0xB08a]|=0x20; //(JC)MCU:Headphone driver DD comm-mode bias o/p XBYTE[0xB0ED]|=0x02; //(Jimi 091027)Audio DA zero cross reset bypass on XBYTE[0xB0C1]=0xB0; //(Jimi 091027)Pre-mux , post-mux and internal XCK select XBYTE[0xB0C4]=2; //(Jimi 091027)LCH speaker volume(i.e LCH OP Gain) XBYTE[0xB0C5]=2; //(Jimi 091027)RCH speaker volume(i.e RCH OP Gain) //SAR ADC init XBYTE[0xB05E] = 0; // disable SAR FS clock XBYTE[0xB05F] = 0x5F; // SAR clock = 12MHz/16/6 = 125kHz = 8us //-------------------------------------------- // gbt_Force_USB_FullSpeed =FALSE; gbt_USB_Detected = 0; gc_CardDetect = 0x00 ; gc_CardExist = 0x00 ; // bit 0 : Nand Flash bit 1: SD_Card gc_CardType = 0x01 ; // default Flash Interface gc_CardChangeStage =0x00; // bit 0 : Nand bit 1 : SD_Card gw_FileSkipNumber=0; gb_TriggerFileSkip=0; gb_FindFile=0; gbt_Support_Dummy_Capacity =0; // default disable dummy capacity function gc_bCBWLUN=0; gbt_enableCDROM =0; //09/04/24,joyce gc_CDROM_Size=0 ; init_system(); USB_PlugDetect(); // Detect USB plug //----------------------------------------------// Initial Flash module Init_Flash_Reg(); Init_Flash_Variable(); //-------------- Need search Bank,Dsp ,hzk block info ,first---------// FDBP.cFDev = 0; XBYTE[0xB40F] = FDBP.cFDev; FlashReadID(); Flash_State_Initial(); Search_BankCode_Block(); InitFlash(); Timer0_init(); XBYTE[0xB09F]|=0x06;//(JC)Vref Fast setup mode 'n Internal reference voltage power control gc_Vrefinit_Timer=60; XBYTE[0xB421]=0x13; // dbprintf("tftinit\n"); TFT_init(); #ifdef CAR_48 XBYTE[0xB102]|=0x3C; #else XBYTE[0xB102] |= 0x01; #endif // dbprintf("tftinit end\n"); TFT_PowerOnlogo(); if(gbt_USB_Detected) { USB_Task(); } gb_Host_Exist=1; gb_SD_Exist=1; if(!Host_DetectDevice()) { if(!Host_Initial()) { gc_CurrentCard = CURRENT_MEDIA_HOST; gb_FindFlag = 0; } else { gc_CurrentCard=0; } } else { if(SD_Card_Detect()) { if(SD_Identification_Flow()) { gc_CardExist |=0x02; gc_CurrentCard=2; } else { gc_CurrentCard=0; gc_CardExist &=0xFD; gb_FindFlag = 0; } } else { gb_SD_Exist=0; gc_CurrentCard = 0; } } XBYTE[0xB400] =0x01; XBYTE[0xB010]&=0xFE; // Disable DSP clock, Jimi 080729 for pop noise as 1st time play XBYTE[0xB002]&=0xFE; // Release DSP Reset, Jimi 080729 for pop noise as 1st time play XBYTE[0xB08a]|=0x08;//(JC)MCU:audio DAC on XBYTE[0xB08a]|=0x10;//(JC)MCU:Headphone driver on XBYTE[0xB08a]|=0x20;//(JC)MCU:Headphone driver DD comm-mode bias o/p //SAR ADC init XBYTE[0xB05E] = 0; // disable SAR FS clock XBYTE[0xB05F] = 0x5f; // SAR clock = 12MHz/16/6 = 125kHz = 8us Get_LogData_PageIndex(); //chiayen0808 USER_LogFile_ReadWrite(0);//use reserveblock for log if((gw_FM_frequency<875) || (gw_FM_frequency>1080)) { gw_FM_frequency=875; } FM_initial(); FM_drive(); gc_SetNumber = gw_PagesPerBlock >> 2; //1set=4pages for dir management, Ching 080816 //20090107 chiayen add gc_SetIndex = 0; //Ching 080816 //20090107 chiayen add USER_GetUISetIndex(); //for DIR table index //20090107 chiayen add gb_FindFlag = 0; if (DOS_Initialize()) //20090803 chiayen modify { gdw_HOSTStartSectorRead=0xFFFFFFF0; if(gc_CurrentCard==CURRENT_MEDIA_HOST) { if(SD_Card_Detect()) { gb_SD_Exist=1; if(SD_Identification_Flow()) { gc_CardExist |=0x02; gc_CurrentCard=2; } else { DEVICE_REG[0x00]= 0x01; gc_CurrentCard=0; gc_CardExist &=0xFD; gb_FindFlag = 0; } } else { DEVICE_REG[0x00]= 0x01; gb_SD_Exist=0; gc_CurrentCard = 0; } } else { DEVICE_REG[0x00]= 0x01; //20090730 chiayen add gc_CurrentCard=0; gc_CardExist &=0xFD; gb_FindFlag = 0; InitFlash(); } DOS_Initialize(); } gc_CurrentCard_backup=gc_CurrentCard; //20090803 chiayen move here gs_File_FCB[0].dw_FDB_StartCluster = gdw_DOS_RootDirClus; DOS_Search_File(C_File_All|C_Cnt_FileNo, C_MusicFileType, C_CmpExtName|C_Next);//(JC)count music file no. in root ir_init(); EA = 1; gc_Task_Current=C_Task_Play; gc_Task_Next=C_Task_Play; gc_PhaseInx=0; gw_init_needed=0xffff; Detect_USB(); Polling_TaskEvents(); if(gc_Task_Current!=gc_Task_Next) { gc_Task_Current=gc_Task_Next; } while(1) { switch(gc_Task_Current) { case C_Task_Play: Play_Task(); break; case C_Task_USB: USB_Task(); break; case C_Task_Dir: //20090107 chiayen add Dir_Task(); break; case C_Task_Jpeg: //20090107 chiayen add Jpeg_Task(); break; case C_Task_Mjpeg: //20090107 chiayen add Mjpeg_Task(); break; case C_Task_PlayMenu: //20090107 chiayen add // PlayMenuProcess(); break; case C_Task_PlayMenu_IR: //20090107 chiayen add // PlayMenuProcess_IR(); break; case C_Task_Setting: //20090107 chiayen add SetupMenuProcess(); break; case C_Task_Menu: MainMenuProcess(); break; case C_Task_PowerOff: PowerOffProcess(); break; } } }