Forum: Mikrocontroller und Digitale Elektronik LPC845-BRK: Verständnisproblem I2C-Beispiel


von Argh! (Gast)


Lesenswert?

Hallo,

ich habe mich mal wieder dem neuen LPC845-BRK gewidmet, da mir dieser 
Chip echt wahnsinnig gut gefällt. Die Beispiele mit dem SDK (Software 
Developement Kit) sollen ja die Lib/Driver erklären. Nur macht das bei 
mir irgendwie wieder das Gegenteil: Im Beispiel LPC845_I2C_accel_led 
steht
1
i2c_master_config_t masterConfig;               // legt masterConfig-struct an?!
2
...
3
masterConfig.baudRate_Bps = I2C_BAUDRATE;       // stellt darin den Wert I2C_BAUDARTE ein; ein define mit 100000
4
...
5
masterConfig.enableTimeout = true;              // setzt enableTimeout auf true
6
/* Initialize and set default configuration: clock, freq for I2C master device */
7
I2C_MasterGetDefaultConfig(&masterConfig);      // liest JETZT??? die default-config ein; baudrate 100000 (egal, da gleich), aber enableTimeout auf false.
8
I2C_MasterInit(BOARD_ACCEL_I2C_BASEADDR, &masterConfig, I2C_MASTER_CLOCK_FREQUENCY);                    // Und hier wird I2C mit diesem geänderten struct dann initialisiert?!
Ich begreife es nicht: Die Baudrate mit 100000 ist redundant, daher 
überflüssig. Aber die Eigenschaft enableTimeout wird mit true gesetzt, 
um dann vom default mit false wieder überschrieben zu werden? Ist das 
jetzt wieder so ein "Beispielfehler" von NXP oder verstehe ich diese 
Treiber wirklich irgendwie falsch? Bei Ersterem lasse ich die Beispiele 
vermutlich dann lieber sein, da es mich mehr verwirrt als hilft.

von Lutz (Gast)


Lesenswert?

Argh! schrieb:
> Bei Ersterem lasse ich die Beispiele
> vermutlich dann lieber sein, da es mich mehr verwirrt als hilft.

Genauso ist es und NXP empfiehlt in seinem Forum das Gleiche: Laß' diese 
Beispiele lieber sein, nimm stattdessen die Beispiele vom LPC845-SDK.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.