rtccRes RTCC_Open(unsigned long tm, unsigned long dt, int drift) { RTCC_SOSCenable(); RTCC_SetTime(tm); RTCC_SetDate(dt); RTCC_SetCalibration(drift); RTCC_Enable(); RTCC_AlarmDisable(); RTCC_OutputDisable(); RTCC_SetWriteDisable(); IntClearFlag(INT_REAL_TIME_CLOCK); }
void RTCC_SetAlarmTimeDate(u32 alTime, u32 alDate) { RTCC_SetTime(alTime); RTCC_SetDate(alDate); }
int main (void) { unsigned char i; unsigned char playfile; unsigned char SD_State_Old = 255; /* Initialize */ SYS_ConfigureOscillator(); Init_App(); Init_System(); PWM_SetColor(OFF); RTCC_SetTime(); /* Display Banner */ UART_DisplayBanner(); /* Play start up message out of debug port */ UART_DEBUG_SendStringConstCRLN("Starting..."); /* Display status of PIR sensor */ if(PIR_STATUS) { UART_DEBUG_SendStringConstCRLN("PIR sensor initialized"); } else { UART_DEBUG_SendStringConstCRLN("PIR sensor not working"); } /* Flash LEDS */ MSC_RedLEDOFF(); for(i=0; i<20;i++) { PWM_SetColor(i>>1); MSC_RedLEDTOGGLE(); MSC_DelayUS(50000); } MSC_RedLEDOFF(); /* Play start-up song */ DAC_Play_Startup(); PWM_SetColor(RED); /* Read Voltage rails */ ADC_ReadVIN(); ADC_ReadFiveVoltRail(); while(1) { //RTCC_Read(&CurrentTime); /* SD card routine */ if(SD_CardPresent()) { SD_POWER(ON); if(SD_State == NOT_INITIALIZED) { if(SD_State_Old != SD_State) { UART_DEBUG_SendStringConstCRLN("Initializing SD Card"); } InitSD(); } else if(SD_State == INITIALIZED) { if(SD_State_Old != SD_State) { UART_DEBUG_SendStringConstCRLN("Searching the FAT32 partition for WAV files"); } if(InitFAT()) { UART_DEBUG_SendStringConstCRLN("SD card is correctly formatted FAT32 and contains WAV files"); SD_State = WAV_READY; } } else if(SD_State == WAV_READY) { if(Valid_Wav) { /* there are WAV files to be played */ if(SD_State_Old != SD_State) { UART_DEBUG_SendStringConstCRLN("Ready to play WAV"); } PWM_SetColor(GREEN); if(Motion == TRUE || DoorOpened == TRUE) { UART_DEBUG_SendStringConstCRLN("Motion Detected: Selecting random file for playback"); playfile = (unsigned char)TMR_RandomNum((long)WaveFilesNumLow,(long)WaveFilesNumHigh); /* Check to see if the file is marked as valid */ while(ValidWAVFiles[playfile] != PASS) { if(playfile >= WaveFilesNumHigh) { playfile = 0; } else { playfile++; } } PWM_SetColor(BLUE); PIR_Interrupt(OFF); UART_DEBUG_SendStringConst("Playing WAV file: "); UART_DEBUG_SendStringConstCRLN(&FileList[playfile].name); if(WAV_PlayFile_Random_Sector(playfile)) { UART_DEBUG_SendStringConstCRLN("Wav played successfully"); } else { UART_DEBUG_SendStringConstCRLN("Wav failed"); if(SD_CardPresent() == FAIL) { SD_State = NOT_INITIALIZED; UART_DEBUG_SendStringConstCRLN("SD card removed"); } } Motion = FALSE; DoorOpened = FALSE; PIR_Interrupt(ON); PWM_SetColor(GREEN); MSC_RedLEDOFF(); } } else { /* there are no satisfactory WAV files on the card */ if(SD_State_Old != SD_State) { UART_DEBUG_SendStringConstCRLN(" WAV files are corrupted"); } /* Reinitialize */ SD_State = NOT_INITIALIZED; } } } else { SD_State = NOT_INITIALIZED; if(SD_State_Old != SD_State) { UART_DEBUG_SendStringConstCRLN("No SD card found"); } if(Motion == TRUE || DoorOpened == TRUE) { PIR_Interrupt(OFF); MSC_RedLEDON(); PWM_SetColor(WHITE); MSC_DelayUS(50000); Motion = FALSE; DoorOpened = FALSE; PIR_Interrupt(ON); } MSC_RedLEDOFF(); SD_POWER(OFF); PWM_SetColor(RED); } SD_State_Old = SD_State; } }