elixys periphreal system firmware library
Dependencies: MAX31855 MCP23S18 MCP3202 MCP3208 MCP482x ShiftRegister1
Fork of elixys by
elixys.h@1:b0f7c49b67f8, 2013-12-15 (annotated)
- Committer:
- henryeherman
- Date:
- Sun Dec 15 02:43:07 2013 +0000
- Revision:
- 1:b0f7c49b67f8
- Parent:
- 0:542583a6f6bb
- Child:
- 3:1b20a56e4457
Working elixys interface library with unit tests
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
henryeherman | 0:542583a6f6bb | 1 | #ifndef ELIXYS_H |
henryeherman | 0:542583a6f6bb | 2 | #define ELIXYS_H |
henryeherman | 0:542583a6f6bb | 3 | #include "mbed.h" |
henryeherman | 1:b0f7c49b67f8 | 4 | #include "chipselectarray.h" |
henryeherman | 1:b0f7c49b67f8 | 5 | #include "mcp23s18.h" |
henryeherman | 1:b0f7c49b67f8 | 6 | #include "mcp3202.h" |
henryeherman | 1:b0f7c49b67f8 | 7 | #include "mcp482x.h" |
henryeherman | 0:542583a6f6bb | 8 | #include "max31855.h" |
henryeherman | 1:b0f7c49b67f8 | 9 | #include "mcp3208.h" |
henryeherman | 1:b0f7c49b67f8 | 10 | |
henryeherman | 1:b0f7c49b67f8 | 11 | #define SYSTEMTEST 1 |
henryeherman | 1:b0f7c49b67f8 | 12 | |
henryeherman | 1:b0f7c49b67f8 | 13 | #ifdef SYSTEMTEST |
henryeherman | 1:b0f7c49b67f8 | 14 | #include <sstream> |
henryeherman | 1:b0f7c49b67f8 | 15 | #endif |
henryeherman | 1:b0f7c49b67f8 | 16 | |
henryeherman | 1:b0f7c49b67f8 | 17 | // Fan Subsystem Defines |
henryeherman | 1:b0f7c49b67f8 | 18 | |
henryeherman | 1:b0f7c49b67f8 | 19 | // Heater Subsystem Defines |
henryeherman | 1:b0f7c49b67f8 | 20 | #define HEATER0 (1<<0) |
henryeherman | 1:b0f7c49b67f8 | 21 | #define HEATER1 (1<<1) |
henryeherman | 1:b0f7c49b67f8 | 22 | #define HEATER2 (1<<2) |
henryeherman | 1:b0f7c49b67f8 | 23 | #define HEATER3 (1<<3) |
henryeherman | 1:b0f7c49b67f8 | 24 | #define HEATER4 (1<<4) |
henryeherman | 1:b0f7c49b67f8 | 25 | #define HEATER5 (1<<5) |
henryeherman | 1:b0f7c49b67f8 | 26 | #define HEATER6 (1<<6) |
henryeherman | 1:b0f7c49b67f8 | 27 | #define HEATER7 (1<<7) |
henryeherman | 1:b0f7c49b67f8 | 28 | #define HEATER8 (1<<8) |
henryeherman | 1:b0f7c49b67f8 | 29 | #define HTRLED0 (1<<9) |
henryeherman | 1:b0f7c49b67f8 | 30 | #define HTRLED1 (1<<10) |
henryeherman | 1:b0f7c49b67f8 | 31 | #define HTRLED2 (1<<11) |
henryeherman | 1:b0f7c49b67f8 | 32 | #define VAC (1<<12) |
henryeherman | 1:b0f7c49b67f8 | 33 | #define ALLHEATERSOFF 0xFFFF |
henryeherman | 1:b0f7c49b67f8 | 34 | #define ALLHEATERSON 0x0000 |
henryeherman | 1:b0f7c49b67f8 | 35 | |
henryeherman | 0:542583a6f6bb | 36 | |
henryeherman | 0:542583a6f6bb | 37 | namespace Elixys { |
henryeherman | 1:b0f7c49b67f8 | 38 | |
henryeherman | 1:b0f7c49b67f8 | 39 | // SPI Communication Bus |
henryeherman | 0:542583a6f6bb | 40 | extern SPI spibus; |
henryeherman | 1:b0f7c49b67f8 | 41 | |
henryeherman | 1:b0f7c49b67f8 | 42 | // Fan Subsystem |
henryeherman | 1:b0f7c49b67f8 | 43 | extern PwmOut fan1; |
henryeherman | 1:b0f7c49b67f8 | 44 | extern PwmOut fan2; |
henryeherman | 1:b0f7c49b67f8 | 45 | extern DigitalOut fan0; |
henryeherman | 1:b0f7c49b67f8 | 46 | extern DigitalOut misc0; |
henryeherman | 0:542583a6f6bb | 47 | |
henryeherman | 1:b0f7c49b67f8 | 48 | // Heater Subsystem |
henryeherman | 1:b0f7c49b67f8 | 49 | extern mcp23s18 htriomux; |
henryeherman | 1:b0f7c49b67f8 | 50 | |
henryeherman | 1:b0f7c49b67f8 | 51 | void turn_on_heater(unsigned int pins); |
henryeherman | 1:b0f7c49b67f8 | 52 | void turn_off_heater(unsigned int pins); |
henryeherman | 1:b0f7c49b67f8 | 53 | void setup_heater(); |
henryeherman | 1:b0f7c49b67f8 | 54 | |
henryeherman | 1:b0f7c49b67f8 | 55 | // Mixer Subsystem |
henryeherman | 1:b0f7c49b67f8 | 56 | extern PwmOut mtr0; |
henryeherman | 1:b0f7c49b67f8 | 57 | extern PwmOut mtr1; |
henryeherman | 1:b0f7c49b67f8 | 58 | extern PwmOut mtr2; |
henryeherman | 1:b0f7c49b67f8 | 59 | extern PwmOut mtr3; |
henryeherman | 1:b0f7c49b67f8 | 60 | |
henryeherman | 1:b0f7c49b67f8 | 61 | |
henryeherman | 1:b0f7c49b67f8 | 62 | // SMCInterface Subsystem |
henryeherman | 1:b0f7c49b67f8 | 63 | extern MCP3202 smcadc; |
henryeherman | 1:b0f7c49b67f8 | 64 | extern MCP482X smcdac; |
henryeherman | 1:b0f7c49b67f8 | 65 | |
henryeherman | 1:b0f7c49b67f8 | 66 | // Thermocouple Subsystem |
henryeherman | 0:542583a6f6bb | 67 | extern max31855 tcintf0; |
henryeherman | 0:542583a6f6bb | 68 | extern max31855 tcintf1; |
henryeherman | 0:542583a6f6bb | 69 | extern max31855 tcintf2; |
henryeherman | 0:542583a6f6bb | 70 | extern max31855 tcintf3; |
henryeherman | 0:542583a6f6bb | 71 | extern max31855 tcintf4; |
henryeherman | 0:542583a6f6bb | 72 | extern max31855 tcintf5; |
henryeherman | 0:542583a6f6bb | 73 | extern max31855 tcintf6; |
henryeherman | 0:542583a6f6bb | 74 | extern max31855 tcintf7; |
henryeherman | 1:b0f7c49b67f8 | 75 | extern max31855 tcintf8; |
henryeherman | 1:b0f7c49b67f8 | 76 | |
henryeherman | 1:b0f7c49b67f8 | 77 | void setup_valves(); |
henryeherman | 1:b0f7c49b67f8 | 78 | void set_valves(int id, int value); |
henryeherman | 1:b0f7c49b67f8 | 79 | |
henryeherman | 1:b0f7c49b67f8 | 80 | // Position Sensor Subsystem |
henryeherman | 1:b0f7c49b67f8 | 81 | void setup_position_sensors(); |
henryeherman | 1:b0f7c49b67f8 | 82 | unsigned int read_poisition_sensors(); |
henryeherman | 1:b0f7c49b67f8 | 83 | |
henryeherman | 1:b0f7c49b67f8 | 84 | // Liquid Sensors Subsystem |
henryeherman | 1:b0f7c49b67f8 | 85 | extern mcp3208 liqadc; |
henryeherman | 1:b0f7c49b67f8 | 86 | |
henryeherman | 1:b0f7c49b67f8 | 87 | // Elixys System Setup |
henryeherman | 1:b0f7c49b67f8 | 88 | void setup_elixys(); |
henryeherman | 1:b0f7c49b67f8 | 89 | |
henryeherman | 1:b0f7c49b67f8 | 90 | // System Tests |
henryeherman | 1:b0f7c49b67f8 | 91 | #ifdef SYSTEMTEST |
henryeherman | 1:b0f7c49b67f8 | 92 | void fan_test(); |
henryeherman | 1:b0f7c49b67f8 | 93 | void heater_test(); |
henryeherman | 1:b0f7c49b67f8 | 94 | void mixer_test(); |
henryeherman | 1:b0f7c49b67f8 | 95 | void smcadc_test(); |
henryeherman | 1:b0f7c49b67f8 | 96 | void smcdac_test(); |
henryeherman | 1:b0f7c49b67f8 | 97 | int tc_test(); |
henryeherman | 1:b0f7c49b67f8 | 98 | void valve_test(); |
henryeherman | 1:b0f7c49b67f8 | 99 | void position_sensor_test(); |
henryeherman | 1:b0f7c49b67f8 | 100 | void run_test(); |
henryeherman | 1:b0f7c49b67f8 | 101 | #endif |
henryeherman | 1:b0f7c49b67f8 | 102 | |
henryeherman | 0:542583a6f6bb | 103 | } |
henryeherman | 1:b0f7c49b67f8 | 104 | |
henryeherman | 0:542583a6f6bb | 105 | |
henryeherman | 0:542583a6f6bb | 106 | #endif //ELIXYS_H |