Programm to control a huge setup of sous vide cookers. See https://stratum0.org/wiki/S0us-vide for more information on this project.
Fork of rtos_basic by
main.cpp@7:22b5cbcece06, 2015-07-13 (annotated)
- Committer:
- chrissidach
- Date:
- Mon Jul 13 19:50:02 2015 +0000
- Revision:
- 7:22b5cbcece06
- Parent:
- 3:c92e21f305d8
+initial infrastructure; +extensionIF; +serial parser
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilmont | 1:491820ee784d | 1 | #include "mbed.h" |
emilmont | 1:491820ee784d | 2 | #include "rtos.h" |
chrissidach | 7:22b5cbcece06 | 3 | |
chrissidach | 7:22b5cbcece06 | 4 | #include "extensionIF.h" |
chrissidach | 7:22b5cbcece06 | 5 | #include "serialParser.h" |
emilmont | 1:491820ee784d | 6 | |
emilmont | 1:491820ee784d | 7 | DigitalOut led1(LED1); |
chrissidach | 7:22b5cbcece06 | 8 | |
chrissidach | 7:22b5cbcece06 | 9 | SerialParser *pc; |
chrissidach | 7:22b5cbcece06 | 10 | EIF *eif; |
chrissidach | 7:22b5cbcece06 | 11 | |
chrissidach | 7:22b5cbcece06 | 12 | I2C i2c(PB_9, PB_8); |
chrissidach | 7:22b5cbcece06 | 13 | |
chrissidach | 7:22b5cbcece06 | 14 | #define I2CslaveAddr 0x40 |
chrissidach | 7:22b5cbcece06 | 15 | |
chrissidach | 7:22b5cbcece06 | 16 | |
chrissidach | 7:22b5cbcece06 | 17 | void i2c_1w(void const *args) { |
chrissidach | 7:22b5cbcece06 | 18 | char data[10]; |
chrissidach | 7:22b5cbcece06 | 19 | char data2[10]; |
chrissidach | 7:22b5cbcece06 | 20 | int rc; |
chrissidach | 7:22b5cbcece06 | 21 | |
chrissidach | 7:22b5cbcece06 | 22 | data[0] = 0; |
chrissidach | 7:22b5cbcece06 | 23 | |
chrissidach | 7:22b5cbcece06 | 24 | i2c.frequency(100000); |
chrissidach | 7:22b5cbcece06 | 25 | |
chrissidach | 7:22b5cbcece06 | 26 | while(true) |
chrissidach | 7:22b5cbcece06 | 27 | { |
chrissidach | 7:22b5cbcece06 | 28 | printf("Write... "); |
chrissidach | 7:22b5cbcece06 | 29 | rc = i2c.write(0x40, data, 1); |
chrissidach | 7:22b5cbcece06 | 30 | printf("%i\r\n", rc); |
chrissidach | 7:22b5cbcece06 | 31 | data[0] = ~data[0]; |
chrissidach | 7:22b5cbcece06 | 32 | |
chrissidach | 7:22b5cbcece06 | 33 | printf("Read... "); |
chrissidach | 7:22b5cbcece06 | 34 | rc = i2c.read(0x40, data2, 1); |
chrissidach | 7:22b5cbcece06 | 35 | printf("%i, %x\r\n", rc, data2[0]); |
emilmont | 1:491820ee784d | 36 | Thread::wait(1000); |
emilmont | 1:491820ee784d | 37 | } |
emilmont | 1:491820ee784d | 38 | } |
emilmont | 1:491820ee784d | 39 | |
chrissidach | 7:22b5cbcece06 | 40 | int main() { |
chrissidach | 7:22b5cbcece06 | 41 | printf("\r\n!****\r\n!System Init...\r\n"); |
chrissidach | 7:22b5cbcece06 | 42 | |
chrissidach | 7:22b5cbcece06 | 43 | eif = new EIF(); |
chrissidach | 7:22b5cbcece06 | 44 | printf("!* EIF init complete\r\n"); |
emilmont | 1:491820ee784d | 45 | |
chrissidach | 7:22b5cbcece06 | 46 | //TODO: Remove |
chrissidach | 7:22b5cbcece06 | 47 | //Lets pretend this extension is present: |
chrissidach | 7:22b5cbcece06 | 48 | eif->mutex.lock(); |
chrissidach | 7:22b5cbcece06 | 49 | eif->extensions[0].present = true; |
chrissidach | 7:22b5cbcece06 | 50 | eif->extensions[0].pods[0].present = true; |
chrissidach | 7:22b5cbcece06 | 51 | eif->extensions[0].pods[0].temp1 = 280; |
chrissidach | 7:22b5cbcece06 | 52 | eif->extensions[0].pods[0].temp2 = 270; |
chrissidach | 7:22b5cbcece06 | 53 | eif->mutex.unlock(); |
chrissidach | 7:22b5cbcece06 | 54 | |
chrissidach | 7:22b5cbcece06 | 55 | |
chrissidach | 7:22b5cbcece06 | 56 | pc = new SerialParser(USBTX, USBRX, eif); |
chrissidach | 7:22b5cbcece06 | 57 | printf("!* SerialParser init complete\r\n"); |
chrissidach | 7:22b5cbcece06 | 58 | |
chrissidach | 7:22b5cbcece06 | 59 | //Thread thread(i2c_1w); |
chrissidach | 7:22b5cbcece06 | 60 | |
chrissidach | 7:22b5cbcece06 | 61 | |
chrissidach | 7:22b5cbcece06 | 62 | printf("!Init complete\r\n"); |
chrissidach | 7:22b5cbcece06 | 63 | |
chrissidach | 7:22b5cbcece06 | 64 | //Pretend we are still there... |
emilmont | 1:491820ee784d | 65 | while (true) { |
emilmont | 1:491820ee784d | 66 | led1 = !led1; |
chrissidach | 7:22b5cbcece06 | 67 | Thread::wait(200); |
emilmont | 1:491820ee784d | 68 | } |
emilmont | 1:491820ee784d | 69 | } |