示例#1
0
void main()
{
	long temperature = 0;
	long pressure = 0;
	long altitude = 0;
	double temp = 0;

	OSCCON = 0x70;		// 8 MHz OSC
	
	// I2C
	TRISCbits.TRISC3 = 1;		// SCL
	TRISCbits.TRISC4 = 1;		// SDA
	
	// UART
	// Initialize UART
	openTxUsart();
	
	// Initialize I2C
	OpenI2C(MASTER, SLEW_OFF);
	
	
	
	delay_ms(100);
	
	
	BMP085_Calibration();
	BMP_dump_calibration();
	
	printf((const far rom char*) "=========================\r\n");
	printf((const far rom char*) "=========RESTART=========\r\n");
	printf((const far rom char*) "=========RESTART=========\r\n");
	printf((const far rom char*) "=========RESTART=========\r\n");
	printf((const far rom char*) "=========================\r\n");
	
	while(1)
	{
		bmp085Convert(&temperature, &pressure);
		
		printf((const far rom char*)"Temperature: %ld (in 0.1 deg C)\r\n", temperature);
		printf((const far rom char*)"Pressure: %ld Pa\n\r\n", pressure);
		
		// For fun, lets convert to altitude
		temp = (double) pressure/101325;
		temp = 1-pow(temp, 0.19029);
		altitude = floor(44330*temp);
		printf((const far rom char*)"Altitude: %ldm\r\n", altitude);
		printf((const far rom char*) "=========================\r\n");
		
		delay_ms(10000);
	}
}
示例#2
0
//#########################################
//#########################################
//#########################################
// S T A R T  M A I N  P R O G R A M 
int main(void)
{	

//-----------------------------------------
// Allocate memory
//-----------------------------------------	
	int32_t temperature = 0;
	int32_t pressure = 0;
	int16_t BMP085_calibration_int16_t[8];
	int16_t BMP085_calibration_uint16_t[3];
	uint8_t error_code=0;
	int32_t altitude=0;
//-----------------------------------------
// Initialize Stuff
//-----------------------------------------
	//uart_init();				//Initialize UART0
	volatile int16_t testVar;
	

	_delay_ms(11);
	i2cSetBitrate(1000);		//Initialize TWI 1000kHz	
	BMP085_Calibration(BMP085_calibration_int16_t, BMP085_calibration_uint16_t,&error_code);////Initialize BMP085
	lcd_init();
	lcd_set_font(FONT_FIXED_8,NORMAL);
//-----------------------------------------
// Do forever
//-----------------------------------------
		
		//printf("error code global init: %d \n",error_code);
    while(1)
    {
		/*	
		printf("------------------------\n");
		printf("------------------------\n");
		printf("Pressure raw %ld \n",bmp085ReadPressure(&error_code));
		printf("error code global: %d \n",error_code);
		printf("------------------------\n");
		printf("------------------------\n");
		printf("Temperature raw %ld \n",bmp085ReadTemp(&error_code));
		printf("error code global: %d \n",error_code);
		printf("------------------------\n");
		printf("------------------------\n");
		*/
		bmp085Convert(BMP085_calibration_int16_t, BMP085_calibration_uint16_t,&temperature, &pressure,&error_code);
		
		
		lcd_moveto_xy  (1, 0);		
		lcd_put_string_P(FONT_FIXED_8, NORMAL, PSTR("Temp: "));
		lcd_put_int((int16_t)temperature);

		lcd_moveto_xy  (2, 0);		
		lcd_put_string_P(FONT_FIXED_8, NORMAL, PSTR("Pressure: "));
		lcd_put_int((int16_t)pressure);
	
		altitude = bmp085CalcAltitude (pressure);
		
		lcd_moveto_xy  (3, 0);		
		lcd_put_string_P(FONT_FIXED_8, NORMAL, PSTR("Altitude: "));
		lcd_put_int((int16_t)altitude);


		/*
		printf("Temperature: %ld (in 0.1 deg C)\n", temperature);
		
		printf("Pressure: %ld Pa\n\n", pressure);	
		
		printf("Altitude: %ld dm\n", bmp085CalcAltitude(pressure));		
		
		
		printf("error code global: %d \n",error_code);
		printf("------------------------\n");
		printf("------------------------\n");
		*/
		_delay_ms(200);		
    }


    return 0;
}