
MBED Application board used to control frequency and duty cycle of injector valves
main.cpp@0:9b2c760c8e5c, 2017-07-25 (annotated)
- Committer:
- iwolf32
- Date:
- Tue Jul 25 14:29:20 2017 +0000
- Revision:
- 0:9b2c760c8e5c
REV1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
iwolf32 | 0:9b2c760c8e5c | 1 | #include "mbed.h" |
iwolf32 | 0:9b2c760c8e5c | 2 | #include "rtos.h" |
iwolf32 | 0:9b2c760c8e5c | 3 | #include "coil-driver.h" |
iwolf32 | 0:9b2c760c8e5c | 4 | |
iwolf32 | 0:9b2c760c8e5c | 5 | Coil yellow(A0, 300, 40, 4); // Injector |
iwolf32 | 0:9b2c760c8e5c | 6 | InterruptIn dutycycleup(A2); |
iwolf32 | 0:9b2c760c8e5c | 7 | InterruptIn dutycycledown(D4); |
iwolf32 | 0:9b2c760c8e5c | 8 | InterruptIn frequencyup(A5); |
iwolf32 | 0:9b2c760c8e5c | 9 | InterruptIn frequencydown(A4); |
iwolf32 | 0:9b2c760c8e5c | 10 | |
iwolf32 | 0:9b2c760c8e5c | 11 | Serial pc(USBTX, USBRX); |
iwolf32 | 0:9b2c760c8e5c | 12 | |
iwolf32 | 0:9b2c760c8e5c | 13 | double frequency=5; |
iwolf32 | 0:9b2c760c8e5c | 14 | double dutycycle=0.75; |
iwolf32 | 0:9b2c760c8e5c | 15 | float openvalue=(((1/frequency)*dutycycle)); |
iwolf32 | 0:9b2c760c8e5c | 16 | float offvalue=(1/frequency)-openvalue; |
iwolf32 | 0:9b2c760c8e5c | 17 | |
iwolf32 | 0:9b2c760c8e5c | 18 | void dutycycleincrease() |
iwolf32 | 0:9b2c760c8e5c | 19 | { |
iwolf32 | 0:9b2c760c8e5c | 20 | dutycycle=dutycycle+0.01; |
iwolf32 | 0:9b2c760c8e5c | 21 | } |
iwolf32 | 0:9b2c760c8e5c | 22 | |
iwolf32 | 0:9b2c760c8e5c | 23 | void dutycycledecrease() |
iwolf32 | 0:9b2c760c8e5c | 24 | { |
iwolf32 | 0:9b2c760c8e5c | 25 | dutycycle=dutycycle-0.01; |
iwolf32 | 0:9b2c760c8e5c | 26 | } |
iwolf32 | 0:9b2c760c8e5c | 27 | |
iwolf32 | 0:9b2c760c8e5c | 28 | void frequencyincrease() |
iwolf32 | 0:9b2c760c8e5c | 29 | { |
iwolf32 | 0:9b2c760c8e5c | 30 | frequency=frequency+1; |
iwolf32 | 0:9b2c760c8e5c | 31 | } |
iwolf32 | 0:9b2c760c8e5c | 32 | void frequencydecrease() |
iwolf32 | 0:9b2c760c8e5c | 33 | { |
iwolf32 | 0:9b2c760c8e5c | 34 | frequency=frequency-1; |
iwolf32 | 0:9b2c760c8e5c | 35 | } |
iwolf32 | 0:9b2c760c8e5c | 36 | |
iwolf32 | 0:9b2c760c8e5c | 37 | int main() { |
iwolf32 | 0:9b2c760c8e5c | 38 | |
iwolf32 | 0:9b2c760c8e5c | 39 | dutycycleup.rise(&dutycycleincrease); |
iwolf32 | 0:9b2c760c8e5c | 40 | dutycycledown.rise(&dutycycledecrease); |
iwolf32 | 0:9b2c760c8e5c | 41 | frequencyup.rise(&frequencyincrease); |
iwolf32 | 0:9b2c760c8e5c | 42 | frequencydown.rise(&frequencydecrease); |
iwolf32 | 0:9b2c760c8e5c | 43 | |
iwolf32 | 0:9b2c760c8e5c | 44 | while(1){ |
iwolf32 | 0:9b2c760c8e5c | 45 | |
iwolf32 | 0:9b2c760c8e5c | 46 | float openvalue=(((1/frequency)*dutycycle)); |
iwolf32 | 0:9b2c760c8e5c | 47 | float offvalue=(1/frequency)-openvalue; |
iwolf32 | 0:9b2c760c8e5c | 48 | |
iwolf32 | 0:9b2c760c8e5c | 49 | yellow.on(); |
iwolf32 | 0:9b2c760c8e5c | 50 | wait(openvalue); |
iwolf32 | 0:9b2c760c8e5c | 51 | yellow.off(); |
iwolf32 | 0:9b2c760c8e5c | 52 | wait(offvalue); |
iwolf32 | 0:9b2c760c8e5c | 53 | |
iwolf32 | 0:9b2c760c8e5c | 54 | pc.printf("Frequency: %f\r\n", frequency); |
iwolf32 | 0:9b2c760c8e5c | 55 | pc.printf("\n"); |
iwolf32 | 0:9b2c760c8e5c | 56 | pc.printf("Duty Cycle: %f\r\n", dutycycle); |
iwolf32 | 0:9b2c760c8e5c | 57 | } |
iwolf32 | 0:9b2c760c8e5c | 58 | } |