Drain batteries through an LM324 controlled CEB6030L from a defunct graphics card
Dependencies: mbed FastAnalogIn PID mbed-rtos
Diff: main.cpp
- Revision:
- 1:712b9b5470d4
- Parent:
- 0:e7492a4f4b2f
- Child:
- 2:e7ce63ada1d2
--- a/main.cpp Tue Jul 05 08:39:20 2016 +0000 +++ b/main.cpp Tue Jul 05 09:18:48 2016 +0000 @@ -17,27 +17,32 @@ if (Iset.read() == 0) vbat_rest = k * Vbat.read() + (1 - k) * vbat; } +void rest(const void *) { + while (true) { + Thread::wait(5000); + float x = Iset; + Iset.write_u16(16); + Thread::wait(400); + Iset.write_u16(0); + Thread::wait(100); + Iset = x; + } +} int main() { Ticker t; - t.attach(&adjust, 5.0); + t.attach(&adjust, 3.0); Ticker t2; t2.attach_us(&filter, 1000); + Thread t3(&rest); Iset.write(0.0); Serial pc(USBTX, USBRX); pc.baud(115200); - int i = 0; while (true) { //pc.printf("Iset %f Iget %6d %f Vbat %6d %f \r", Iset.read(), Iget.read_u16(), Iget.read(), Vbat.read_u16(), Vbat.read()); - float x = Iset.read(); pc.printf("Iset %f Iget %8d %f %f", Iset.read(), Iget.read_u16(), Iget.read() * 36.140224, iget * 36.140224); - if ((i = (i + 1) % 50) == 0) { - Iset = 0; - Thread::wait(50); - } pc.printf(" Vbat %8d %f %f %f\r", Vbat.read_u16(), Vbat.read() * 36.7538, vbat * 36.7538, vbat_rest * 36.7538); - Iset = x; - Thread::wait(100); + Thread::wait(500); } }