Difference between revisions of "Oresat-notes"
From Wiki at Neela Nurseries
m |
m |
||
Line 17: | Line 17: | ||
− | Example file which calls an I2C init function among other things, in routine app_init(): | + | Note) Example file which calls an I2C init function among other things, in routine app_init(): |
oresat-firmware/src$ vi ./archive/f0/app_solardemo/main.c | oresat-firmware/src$ vi ./archive/f0/app_solardemo/main.c | ||
Line 51: | Line 51: | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | |||
+ | Note) pointer *devp is of type INA226Driver, where is this defined? | ||
+ | |||
+ | 185 /** | ||
+ | 186 * @brief Sets INA226 Alert type and value | ||
+ | 187 * | ||
+ | 188 * @param[in] devp pointer to the @p INA226Driver object | ||
+ | 189 * @param[in] alert_me the value to write to Mask/Enable register (0 to disable) | ||
+ | 190 * @param[in] alert_lim the value to write to Alert Limit register | ||
+ | 191 * | ||
+ | 192 * @api | ||
+ | 193 */ | ||
+ | 194 void ina226SetAlert(INA226Driver *devp, uint16_t alert_me, uint16_t alert_lim) { | ||
+ | 195 i2cbuf_t buf; | ||
+ | 196 | ||
+ | 197 osalDbgCheck(devp != NULL); | ||
+ | 198 osalDbgAssert(devp->state == INA226_READY, | ||
+ | 199 "ina226SetAlert(), invalid state"); | ||
+ | |||
+ | |||
+ | |||
<!-- comment --> | <!-- comment --> |
Revision as of 06:49, 5 February 2021
Note) Looks like a command shell is realized in code near end of file:
psas/oresat-firmware/src/f4/app_control/source/command.c
Note) ina226.c and other device type driver source files in 'psas/oresat-firmware/common' give examples of I2C calls in ChibiOS environment.
INA226_SHARED_I2C
References:
* https://www.playembedded.org/blog/stm32-i2c-chibios/
Note) Example file which calls an I2C init function among other things, in routine app_init():
oresat-firmware/src$ vi ./archive/f0/app_solardemo/main.c
/* * I2C configuration */ static const I2CConfig i2cfg1 = { I2C_100KHZ_TIMINGR, 0, 0, }; uint8_t data[8]; static void app_init(void) { //=== App initialization // Start up debug output sdStart(&SD2, &ser_cfg); i2cInit(); i2cStart(&I2CD1, &i2cfg1); for (uint8_t i = 0; i < 8; ++i) { data[i] = 0; } canTPDOObjectInit(CAN_PDO_1, CAN_ID_DEFAULT, 0, 0, 8, data); }
Note) pointer *devp is of type INA226Driver, where is this defined?
185 /** 186 * @brief Sets INA226 Alert type and value 187 * 188 * @param[in] devp pointer to the @p INA226Driver object 189 * @param[in] alert_me the value to write to Mask/Enable register (0 to disable) 190 * @param[in] alert_lim the value to write to Alert Limit register 191 * 192 * @api 193 */ 194 void ina226SetAlert(INA226Driver *devp, uint16_t alert_me, uint16_t alert_lim) { 195 i2cbuf_t buf; 196 197 osalDbgCheck(devp != NULL); 198 osalDbgAssert(devp->state == INA226_READY, 199 "ina226SetAlert(), invalid state");