int main(int argc, char **argv) { float temp = 0; I2C_Initialize(MCP79410_ADDRESS); //Initialize I2C and setup chip address RTCC_Struct *current_time = (RTCC_Struct *) malloc(sizeof(RTCC_Struct)); RTCC_Struct *alarm_time = (RTCC_Struct *) malloc(sizeof(RTCC_Struct)); RTCC_Struct user_alarm = {2, 57, 0, 0, 0, 0, 0}; //Change minutes value for match alarm_time = &user_alarm; //MCP79410_Initialize(); //Initialize RTCC with system time and date MCP79410_ClearInterruptFlag(ZERO); MCP79410_SetAlarmTime(alarm_time,ZERO); //Set alarm time MCP79410_SetAlarmMatch(MINUTES_MATCH,ZERO); //Alarm ZERO will trigger on minutes match MCP79410_SetAlarmMFPPolarity(LOWPOL,ZERO); //Configure Alarm pin polarity as HIGH MCP79410_SetMFP_Functionality(ALARM_INTERRUPT); //Set alaram interrupt PinLevel_t pval = ReadPinStatus(MPL_PIN); printf("MPL pin level is %d\r\n",(unsigned char)pval); pinModeOutput(LED_PIN); //Set LED pin as output while(1) { AlarmStatus_t alrm_flag = MCP79410_GetAlarmStatus(ZERO); //Check alarm status printf("Alarm interrupt status %d\r\n",(unsigned int)alrm_flag); if(alrm_flag != 0) { digitalWrite(LED_PIN, HIGH); //Let there be light delay_ms(500); I2C_Initialize(MPL3115A2_ADDRESS); //Initialize I2C peripheral delay_ms(500); MPL3115A2_Initialize(); //Initialize the sensor delay_ms(500); temp = MPL3115A2_ReadTemperature(); //Take a temperature reading temp = MPL3115A2_ReadTemperature(); printf("Temperature : %0.2f degree Celsius.\r\n", temp); delay_ms(500); I2C_Initialize(MCP79410_ADDRESS); delay_ms(500); alrm_flag = 0; //Reset alarm flag for next alarm MCP79410_ClearInterruptFlag(ZERO); delay_ms(1000); digitalWrite(LED_PIN, LOW); //Back to waiting time printf("Alarm :%d\r\n",(unsigned int)alrm_flag); } current_time = MCP79410_GetTime(); printf("now: %d-%d-%d %d:%d:%d\n", current_time->year, current_time->month, current_time->date, current_time->hour, current_time->min, current_time->sec); delay_ms(1000); } I2C_Close(); //Return I2C pins to default status return 0; }
int main(void) { char str[20]; unsigned int channel0; unsigned int channel1; float lux; SPI_Initialize(); //Initialize SPI peripheral TFT_Initialize(); I2C_Initialize(APDS9300ADDR); //Initialize I2C and setup chip address AL_Initialize(); //Setup Ambient light sensor Image_t LampOn = {_acLampON,100,100}; TFT_Background(WHITE); TFT_DisplayImage(&LampOn,5,5); while(1) { channel0 = AL_ReadChannel(CH0); //Take a reading from channel one channel1 = AL_ReadChannel(CH1); //Take a reading from channel two lux = AL_Lux(channel0,channel1); sprintf(str, "%3.2f Lx ", lux); TFT_PrintString(10,140,RED,WHITE,str,2); delay_ms(1000); } return 0; }
void SYSTEM_Initialize(void) { OSCILLATOR_Initialize(); PIN_MANAGER_Initialize(); INTERRUPT_Initialize(); TMR0_Initialize(); I2C_Initialize(); EUSART_Initialize(); }
int main(void) { SPI_Initialize(); //Initialize SPI peripheral TFT_Initialize(); I2C_Initialize(CAP1203ADDR); CAP1203_Initialize(); unsigned char button = 0x00; #ifdef __DEBUG__ int id = CAP1203_ReadID(); //Read ID of Capacitive touch controller printf("Chip ID: 0x%04X. \r\n",id); #endif TFT_Background(WHITE); TFT_Circle(80,35,20,RED); TFT_Circle(80,80,20,GREEN); TFT_Circle(80,125,20,BLUE); while(1) { button = CAP1203_ReadPressedButton(); switch(button) { case 1: TFT_Disk(80,125,10,BLUE); printf("Button B1 pressed.\r\n"); break; case 2: TFT_Disk(80,80,10,GREEN); printf("Button B2 pressed.\r\n"); break; case 3: TFT_Disk(80,35,10,RED); printf("Button B3 pressed.\r\n"); break; default: TFT_Circle(80,35,20,RED); //Paint two circles for an annular ring TFT_Circle(80,80,20,GREEN); TFT_Circle(80,125,20,BLUE); TFT_Circle(80,35,19,RED); TFT_Circle(80,80,19,GREEN); TFT_Circle(80,125,19,BLUE); TFT_Disk(80,35,10,WHITE); //Clear interior TFT_Disk(80,80,10,WHITE); TFT_Disk(80,125,10,WHITE); break; } delay_ms(100); } return 0; }
void HAL_Initialize() { HAL_CONTINUATION::InitializeList(); HAL_COMPLETION ::InitializeList(); Events_Initialize(); CPU_GPIO_Initialize(); CPU_SPI_Initialize(); HAL_Time_Initialize(); Time_Initialize(); ENABLE_INTERRUPTS(); BlockStorageList::Initialize(); BlockStorage_AddDevices(); BlockStorageList::InitializeDevices(); FS_Initialize(); FileSystemVolumeList::Initialize(); FS_AddVolumes(); FileSystemVolumeList::InitializeVolumes(); CPU_InitializeCommunication(); LCD_Initialize(); I2C_Initialize(); PalEvent_Initialize(); Gesture_Initialize(); Ink_Initialize(); TimeService_Initialize(); /* other drivers init */ }
int main(void) { I2C_Initialize(I2C2,I2C_Ack_Enable,I2C_AcknowledgedAddress_7bit, 100000, I2C_DutyCycle_2, I2C_Mode_I2C, 0x00); setup(I2C2); write8(I2C2,0x20,0x0F); unsigned short temp = 0; while(1) { temp = read8(I2C2); if(recieve[i-1] != temp){ recieve[i++] = temp; if(i == 1024){ i = 0; } } } }
int main(int argc, char **argv) { printf("MPL3115A2 Altimeter/Barometer/Temperature sensor demo.\r\n"); I2C_Initialize(MPL3115A2_ADDRESS); //Initialize I2C peripheral MPL3115A2_Initialize(); //Initialize the sensor MPL3115A2_ActiveMode(); //Configure the sensor for active mode unsigned char id = MPL3115A2_ID(); //Verify chip id printf("Chip ID: 0x%02X . \r\n", id); while(1) { float temp = MPL3115A2_ReadTemperature();//Take a temperature reading printf("Temperature : %0.2f degree Celsius.\r\n", temp); delay_ms(500); } return 0; }
void HAL_Initialize() { HAL_CONTINUATION::InitializeList(); HAL_COMPLETION ::InitializeList(); Events_Initialize(); ENABLE_INTERRUPTS(); CPU_InitializeCommunication(); LCD_Initialize(); I2C_Initialize(); /* other drivers init */ }
int main(void) { char str[20]; unsigned int channel0; unsigned int channel1; float lux; signal(SIGINT, sigint_handler); //Install signal handler for user interrupt (CTRL-C) SPI_Initialize(); //Initialize SPI peripheral TFT_Initialize(); I2C_Initialize(APDS9300ADDR); //Initialize I2C and setup chip address AL_Initialize(); //Setup Ambient light sensor Image_t LampOn = {_acLampON,100,100}; TFT_Background(WHITE); TFT_DisplayImage(&LampOn,5,5); while(programRunning) { channel0 = AL_ReadChannel(CH0); //Take a reading from channel one channel1 = AL_ReadChannel(CH1); //Take a reading from channel two lux = AL_Lux(channel0,channel1); sprintf(str, "%3.2f Lx ", lux); TFT_PrintString(10,140,RED,WHITE,str,2); delay_ms(1000); } SPI_Close(); bcm2835_close(); return 0; }
/*This method returns TRUE if all sensors are correct initialized and FALSE if one sensor fails to initialize*/ Bool sensorInitialization(enum SensorType sensorType) { //If there isn't initialized 1 sensor if (firstTimeInitialization == TRUE) { /*Initialize mutexes*/ if (currentTemperatureMutex == E_CREATE_FAIL || I2CMutex == E_CREATE_FAIL) { return FALSE; } firstTimeInitialization = FALSE; } switch (sensorType) { /*Initialize Ultrasonic sensor*/ case (SensorDistanceToGround): { return initializeUltrasonicSensor(); } /*Initialize Accelero sensor*/ case (SensorAccelero): { if (ADC_init() == FALSE) { return FALSE; } return TRUE; } /*Initialize Pressure Sensor*/ case (SensorPressure): { if (firstTimeInitializeI2CSensor == TRUE) { /*Initialize I2C before initializing I2C based sensors*/ if (I2C_Initialize() == FALSE) { return FALSE; } } /*Initialize BMP085*/ if (initializeBMP085() == FALSE) { return FALSE; } return TRUE; } /*Initialize Rotation sensor*/ case (SensorRotation): { if (firstTimeInitializeI2CSensor == TRUE) { /*Initialize I2C before initializing I2C based sensors*/ if (I2C_Initialize() == FALSE) { return FALSE; } } /*Initialize WiiMotionPlus*/ if (initializeWiiMotionPlus() == FALSE) { return FALSE; } return TRUE; } /*Initialize GPS sensor*/ case (SensorGPS): { if (UARTInit(LPC_UART1, 4800) == FALSE) { return FALSE; } return TRUE; } /*If there isn't a sensor selected, return FALSE*/ default: { return FALSE; } } }
//------------------------------------------------------------------------------ // task : I2C Error // input : none // output: none //------------------------------------------------------------------------------ void I2C_Error(void) { I2CCR = 0x00; // I2C block disable _nop_(); // I2C_Initialize(); // }