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.