![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Initial rough copy
main.cpp
- Committer:
- dmwahl
- Date:
- 2020-07-30
- Revision:
- 1:af7a249bd2b2
- Parent:
- 0:6e263c5ce85d
- Child:
- 2:6c664dcbd052
File content as of revision 1:af7a249bd2b2:
#include "mbed.h" #include "bq76pl536a.h" // a SPI sub-class that provides a constructed default class SPIPreInit : public SPI { public: SPIPreInit(PinName mosi, PinName miso, PinName sclk, int freq, int bits, int mode) : SPI(mosi, miso, sclk) { frequency(freq); format(bits, mode); }; }; //SPIPreInit spi(PA_7, PA_6, A1, 500000, 8, 1); SPI spi(PA_7, PA_6, A1); u8t attachedCells[] = {5}; u8t numDev = sizeof(attachedCells)/sizeof(attachedCells[0]); u8t numCells = 0; // (SPI object, PinName cs, u8t numDev, u8t attachedCells[], u16t cov[mV], u16t cuv[mV], u8t balanceTimeout[sec], bool balanceEnabled) BQ76PL536A bq_pack(spi, PB_0, numDev, 4000, 3000, 5, true); Serial pc(SERIAL_TX, SERIAL_RX); DigitalOut cs(D3); int main() { //wait(1); //spi.format(8,1); //spi.frequency(50000); //spi.lock(); //cs = 0; //wait_ms(1); //cs = 1; //wait_ms(1); //cs = 0; //spi.write(0x01); //spi.write(0x3b); //spi.write(0x01); //spi.write(0x02); //cs=1; //spi.unlock(); // spi.write(BROADCAST_ADDR); //spi.write(RESET_REG); //spi.write(BQ76PL536A_RESET); for (int i = 0; i<numDev; i++) { numCells +=attachedCells[i]; } pc.baud(115200); pc.printf("Starting up...\r\n"); bq_pack.devStatus(); //pc.printf("Status: %u\r\n",bq_pack.devStatus()); //pc.printf("COV: %u CUV: %u, numDev: %d numCells: %d\r\n", bq_pack.cov, bq_pack.cuv, bq_pack.numDev, numCells); //pc.printf("%u %u %u %u %u\r\n", bq_pack.attachedCells[0], bq_pack.attachedCells[1], bq_pack.attachedCells[2], bq_pack.attachedCells[3], bq_pack.attachedCells[4]); //pc.printf("%u %u %u %u\r\n", bq_pack.cellVolts[0], bq_pack.cellVolts[1], bq_pack.cellVolts[2], bq_pack.cellVolts[3]); while(1) { wait(1); //u8t addr_ctrl = bq_pack.readRegister(1, ADDRESS_CONTROL_REG); //bq_pack.readCells(); //pc.printf("%u %u %u %u %u\r\n", bq_pack.cellVolts[0], bq_pack.cellVolts[1], bq_pack.cellVolts[2], bq_pack.cellVolts[3], bq_pack.cellVolts[4]); //pc.printf("%u\r\n",bq_pack.devStatus()); /*u8t data[8]; bq_pack.adcConvert(); wait_ms(10); cs = 0; spi.write(1); spi.write(VCELL1_L_REG); spi.write(8); for (int i = 0; i<8; i++) { data[i] = spi.write(0x00); } cs = 1; pc.printf("%u %u %u %u\r\n", (data[0]<<8)|data[1], (data[2]<<8)|data[3], (data[4]<<8)|data[5], (data[6]<<8)|data[7]);*/ } }