Example #1
0
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;
}
Example #2
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;
}
Example #3
0
void SYSTEM_Initialize(void)
{
    OSCILLATOR_Initialize();
    PIN_MANAGER_Initialize();
    INTERRUPT_Initialize();
    TMR0_Initialize();
    I2C_Initialize();
    EUSART_Initialize();
}
Example #4
0
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;
}
Example #5
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;
			}
		}
	}
}
Example #7
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;
}
Example #8
0
void HAL_Initialize()
{
    HAL_CONTINUATION::InitializeList();
    HAL_COMPLETION  ::InitializeList();

    Events_Initialize();

    ENABLE_INTERRUPTS();
    
    CPU_InitializeCommunication();

    LCD_Initialize();

    I2C_Initialize();

/*
    other drivers init
*/

}
Example #9
0
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;
}
Example #10
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;
		}
	}
}
Example #11
0
//------------------------------------------------------------------------------
//    task  : I2C Error
//    input : none
//    output: none
//------------------------------------------------------------------------------
void I2C_Error(void)
{
    I2CCR     = 0x00;                   // I2C block disable
    _nop_();                            //
    I2C_Initialize();                   //
}