ok, halbwegs verstanden
ich bring noch etwas Licht ins Dunkel:
im Setup finde ich folgende zwei Zeilen:
bmp085_get_cal_data();
und danach
bmp085_read_temperature_and_pressure(&temperature,&pressure);
im Loop finde ich als erste Zeile:
bmp085_read_temperature_and_pressure(&temperature,&pressure);
weiter gehts dann mit folgendem:
flpressure = pressure;// move long type pressure into float type flpressure
altitude = (float)44330 * (1 - pow(((float) flpressure/p0), 0.190295));
usw. (Die Buchstabenkombination pow findet sich übrigens nirgendwo, anders, weder im Setup noch sonst wo, wird aber nicht angemeckert. Auch etwas, was ich nicht verstehe?!?
unter(hinter) dem Loop finde ich dann:
- hier steht dann was in Klammern, jedoch auch außerhalb meines begrenzten Programmierhintergrundes )
void bmp085_read_temperature_and_pressure(int* temperature, long* pressure) {
int ut= bmp085_read_ut();
long up = bmp085_read_up();
long x1, x2, x3, b3, b5, b6, p;
unsigned long b4, b7;
//calculate the temperature
x1 = ((long)ut - ac6) * ac5 >> 15;
x2 = ((long) mc << 11) / (x1 + md);
b5 = x1 + x2;
*temperature = (b5 + 8) >> 4;
//calculate the pressure
b6 =
usw.usw, ziemlich lang, viele Zeilen
einzig mir einleuchtendend bis hierhin ist,, dass die komplizierte Rechnerei hier und Datenabfrag wohl der Tatsache geschuldet ist, dass es zu der Zeit, als das Programm geschrieben wurde wohl scheinbar für die BMP085( 180 ) noch keine eigene Library gab.
und dann finde darunter noch:
-
void bmp085_get_cal_data() {
Serial.println("Reading Calibration Data");
ac1 = read_int_register(0xAA);
Serial.print("AC1: ");
Serial.println(ac1,DEC);
ac2 = read_int_register(0xAC);
usw usw usw.
auch das ist lang.
Das Programm endet dann mit:
void ledOn()
{
digitalWrite(led,1);
}
void ledOff()
{
digitalWrite(led,0);
}
ledOn und ledOff werden im Loop verwendet.
Stellt sich mir auch hier die Frage, was hat sich der Schreiber dabei gedacht.
Ist es ein Unterschied, hier das "digitalWrite Lampenpin an" im Programm durch z.B. ledOn zu ersetzen??
Hätte man da nicht zweckmäßigerweise gleich im Prgramm schreiben können digitalWrite Lampenpin an und aus, statt dem erst hier einen Namen zu geben und dann den Namen als nächsten Programmschritt aufzuführen?
Macht das die Sache nicht unnötig kompliziert, oder habe ich da wieder mal ein Problem beim Denken?