Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:4b5308027f1e, 2017-12-10 (annotated)
- Committer:
- Waynan
- Date:
- Sun Dec 10 15:10:36 2017 +0000
- Revision:
- 0:4b5308027f1e
INA260 test app
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Waynan | 0:4b5308027f1e | 1 | /* INA260 test app*/ |
Waynan | 0:4b5308027f1e | 2 | |
Waynan | 0:4b5308027f1e | 3 | #include "mbed.h" |
Waynan | 0:4b5308027f1e | 4 | #include "INA260.hpp" |
Waynan | 0:4b5308027f1e | 5 | |
Waynan | 0:4b5308027f1e | 6 | // Host PC Communication channels |
Waynan | 0:4b5308027f1e | 7 | Serial pc(USBTX, USBRX); // tx, rx |
Waynan | 0:4b5308027f1e | 8 | //i2c setup |
Waynan | 0:4b5308027f1e | 9 | I2C i2c(PB_9,PB_8); |
Waynan | 0:4b5308027f1e | 10 | INA260 VCmonitor(i2c); |
Waynan | 0:4b5308027f1e | 11 | DigitalIn ALT(PA_8); //Alert pin |
Waynan | 0:4b5308027f1e | 12 | DigitalIn button(PC_13); //button |
Waynan | 0:4b5308027f1e | 13 | int main() { |
Waynan | 0:4b5308027f1e | 14 | |
Waynan | 0:4b5308027f1e | 15 | double V,C,P; |
Waynan | 0:4b5308027f1e | 16 | int count = 1; |
Waynan | 0:4b5308027f1e | 17 | // Sets 4 samples average and sampling time for voltage and current to 8.244ms |
Waynan | 0:4b5308027f1e | 18 | VCmonitor.setConfig(0x0600 | 0x01C0 | 0x0038 | 0x0007); //INA260_CONFIG_AVGRANGE_64|INA260_CONFIG_BVOLTAGETIME_8244US|INA260_CONFIG_SCURRENTTIME_8244US|INA260_CONFIG_MODE_SANDBVOLT_CONTINUOUS |
Waynan | 0:4b5308027f1e | 19 | pc.printf("INA260 TEST!\n"); |
Waynan | 0:4b5308027f1e | 20 | pc.printf(""__DATE__" , "__TIME__"\n"); |
Waynan | 0:4b5308027f1e | 21 | pc.printf("%d Config register\n",0x0600 | 0x01C0 | 0x0038 | 0x0007); //prints the COnfig reg value to PC COM port |
Waynan | 0:4b5308027f1e | 22 | VCmonitor.setAlert(0x8001); //set current value as alert, latch alert pin |
Waynan | 0:4b5308027f1e | 23 | VCmonitor.setLim(0x8); //set limit to 10mA (10/1.25) |
Waynan | 0:4b5308027f1e | 24 | |
Waynan | 0:4b5308027f1e | 25 | wait_ms(3000); |
Waynan | 0:4b5308027f1e | 26 | while(1) |
Waynan | 0:4b5308027f1e | 27 | { |
Waynan | 0:4b5308027f1e | 28 | //get ina260 settings |
Waynan | 0:4b5308027f1e | 29 | if((VCmonitor.getVoltage(&V) == 0) && (VCmonitor.getCurrent(&C) == 0) && (VCmonitor.getPower(&P) == 0)) |
Waynan | 0:4b5308027f1e | 30 | { |
Waynan | 0:4b5308027f1e | 31 | pc.printf("%d,V,%f,C,%f,P,%f\n",count,V,C,P); |
Waynan | 0:4b5308027f1e | 32 | } |
Waynan | 0:4b5308027f1e | 33 | count++; |
Waynan | 0:4b5308027f1e | 34 | if(ALT==0) |
Waynan | 0:4b5308027f1e | 35 | { |
Waynan | 0:4b5308027f1e | 36 | pc.printf("Overcurrent!!!!"); |
Waynan | 0:4b5308027f1e | 37 | } |
Waynan | 0:4b5308027f1e | 38 | if (button == 0) |
Waynan | 0:4b5308027f1e | 39 | { |
Waynan | 0:4b5308027f1e | 40 | VCmonitor.readAlert(); //read Alert register to clear latched alert |
Waynan | 0:4b5308027f1e | 41 | } |
Waynan | 0:4b5308027f1e | 42 | wait_ms(1000); |
Waynan | 0:4b5308027f1e | 43 | } |
Waynan | 0:4b5308027f1e | 44 | } |