4Caster Code
int main (void) { uint8_t x; counter = 0; ioinit (); _//Boot up defaults_ **for**(x = 0 ; x <...
int main (void) { uint8_t x;
counter = 0;
ioinit (); _//Boot up defaults_
**for**(x = 0 ; x < 5 ; x++)
{
sbi(PORTD, STATUS_LED);
delay_ms(100);
cbi(PORTD, STATUS_LED);
delay_ms(100);
}
_ //Configure SCP1000 with low noise configuration_
_ //=====================================_
_ //write_register(place, thing)_
SCP_write_register(0x02, 0x2D);
SCP_write_register(0x01, 0x03);
SCP_write_register(0x03, 0x02);
delay_ms(100);
_ //Select High Resolution Mode_
SCP_write_register(0x03, 0x0A);
_ //=====================================_
**while**(1)
{
sht15_read(); _//Run Humidity tests_
scp_read(); _//Run Pressure tests_
#ifdef DEBUG
printf(**"nnHumidity="**);
print_decimal(humidity, 2, 4);
printf(**" %%"**);
printf(**"nSHT Temperature="**);
print_decimal(temperature, 2, 5);
printf(**" F"**);
printf(**"nSCP Temperature="**);
print_decimal(scp_temperature, 1, 4);
printf(**" C"**);
scp_temperature *= 90;
scp_temperature /= 5;
scp_temperature += 3200;
printf(**"nSCP Temperature="**);
print_decimal(scp_temperature, 2, 5);
printf(**" F"**);
printf(**"nPressure="**);
print_decimal(pressure, 0, 6);
printf(**" Pa"**);
counter++;
printf(**"nCount="**);
print_decimal(counter, 0, 6);
#else
_ /* THIS IS THE ORIGINAL CODE printf("#");
print_decimal(humidity, 2, 4);
printf(",");
print_decimal(temperature, 2, 5);
printf(",");
print_decimal(scp_temperature, 1, 4);
printf(",");
scp_temperature *= 90;
scp_temperature /= 5;
scp_temperature += 3200;
print_decimal(scp_temperature, 2, 5);
printf(",");
print_decimal(pressure, 0, 6);
printf(",");
counter++;
print_decimal(counter, 0, 6);
printf("$n");
*/_
_ //NEW CODE_
printf(**"%c%c"**, 0xFE,0x01);
printf(**"1.Humidity="**);
print_decimal(humidity, 2, 0);
printf(**"%%"**);
printf(**"%c%c"**, 0xFE,0x80+20);
printf(**"2.Temp="**);
print_decimal(temperature, 2, 0);
printf(**"F"**);
printf(**"%c%c"**, 0xFE,0x80+84);
printf(**"3.Press="**);
print_decimal(pressure, 0, 6);
printf(**"Pa"**);
#endif
And:
stdout = &mystdout; _//Required for printf init_
sbi(PORTC, CSB); _//Deselect SCP1000_
_ //Init timer 2_
ASSR = 0;
TCCR2 = (1<
printf(**"%c%c"**, 0xFE,0x01);
printf(**"%c%c"**, 0xFE,0x80+84);
printf(**".Weather"**);
printf(**"%c"**, ' ');
printf(**"USB"**);
printf(**"%c"**, ' ');
printf(**"v1.01.."**);
printf(**"%c%c"**, 0xFE,0x80+1);
printf(**"==================="**);
printf(**"%c%c"**, 0xFE,0x80+64);
printf(**".....PopSci.com....."**);
printf(**"%c%c"**, 0xFE,0x80+20);
printf(**"....4-Caster.1000..."**);
}
_//Takes an int and prints a decimal in a given place_
_//(87004, 3, 0) = 87.004_
_//10 digit max = 1234567890_
_//pad will put zeros in front to make the length constant_
_//(87004, 3, 7) = 0087.004_