Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@5:404644414f16, 2019-10-03 (annotated)
- Committer:
- seoirsem
- Date:
- Thu Oct 03 12:24:19 2019 +0000
- Revision:
- 5:404644414f16
- Parent:
- 4:09c9778f26aa
1
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| seoirsem | 0:c43134a862eb | 1 | #include "mbed.h" |
| seoirsem | 0:c43134a862eb | 2 | #include "MODSERIAL.h" |
| seoirsem | 0:c43134a862eb | 3 | #include "FastPWM.h" |
| seoirsem | 0:c43134a862eb | 4 | |
| seoirsem | 0:c43134a862eb | 5 | #include "math.h" |
| seoirsem | 0:c43134a862eb | 6 | /*------------------------------------------------------------------------------ |
| seoirsem | 0:c43134a862eb | 7 | Codebase for T99004 Demo Control Board Rev A Firmware |
| seoirsem | 0:c43134a862eb | 8 | Date: 10/07/2018 |
| seoirsem | 0:c43134a862eb | 9 | Author: AS7 |
| seoirsem | 0:c43134a862eb | 10 | |
| seoirsem | 0:c43134a862eb | 11 | |
| seoirsem | 0:c43134a862eb | 12 | ------------------------------------------------------------------------------*/ |
| seoirsem | 0:c43134a862eb | 13 | |
| seoirsem | 3:5d99b45d534a | 14 | #define TICK_PERIOD 1000// Tick cylcle |
| seoirsem | 0:c43134a862eb | 15 | |
| seoirsem | 0:c43134a862eb | 16 | |
| seoirsem | 0:c43134a862eb | 17 | MODSERIAL pc(PA_9, PA_10, 512); //mcu TX, RX, 512 byte TX and RX buffers |
| seoirsem | 0:c43134a862eb | 18 | |
| seoirsem | 0:c43134a862eb | 19 | //indicator LEDs |
| seoirsem | 0:c43134a862eb | 20 | DigitalOut hb_led(PC_13); //Green |
| seoirsem | 0:c43134a862eb | 21 | DigitalOut led_0(PC_4); //Red |
| seoirsem | 0:c43134a862eb | 22 | DigitalOut led_1(PC_5); //Green |
| seoirsem | 0:c43134a862eb | 23 | |
| seoirsem | 0:c43134a862eb | 24 | //User buttons |
| seoirsem | 0:c43134a862eb | 25 | DigitalIn user_0(PB_0); |
| seoirsem | 0:c43134a862eb | 26 | DigitalIn user_1(PB_1); |
| seoirsem | 0:c43134a862eb | 27 | |
| seoirsem | 0:c43134a862eb | 28 | //Heater Control |
| seoirsem | 0:c43134a862eb | 29 | FastPWM drive_1(PC_9); |
| seoirsem | 0:c43134a862eb | 30 | FastPWM drive_2(PC_8); |
| seoirsem | 0:c43134a862eb | 31 | FastPWM guard_1(PC_7); |
| seoirsem | 0:c43134a862eb | 32 | FastPWM guard_2(PC_6); |
| seoirsem | 0:c43134a862eb | 33 | Timer timer; |
| seoirsem | 0:c43134a862eb | 34 | |
| seoirsem | 0:c43134a862eb | 35 | |
| seoirsem | 0:c43134a862eb | 36 | int main() |
| seoirsem | 0:c43134a862eb | 37 | { |
| seoirsem | 0:c43134a862eb | 38 | // Initialsation |
| seoirsem | 0:c43134a862eb | 39 | pc.baud(115200); |
| seoirsem | 0:c43134a862eb | 40 | //led_1 = drive_1; //tie led 1 and heater 1 outputs together so LED shows while heater is on (initial debug purposes only) |
| seoirsem | 0:c43134a862eb | 41 | timer.start(); //Start the timer |
| seoirsem | 0:c43134a862eb | 42 | |
| seoirsem | 0:c43134a862eb | 43 | //Initialise drive periods |
| seoirsem | 0:c43134a862eb | 44 | drive_1.prescaler(1); |
| seoirsem | 0:c43134a862eb | 45 | guard_1.prescaler(1); |
| seoirsem | 1:ad9199cbfc4b | 46 | drive_2.prescaler(1); |
| seoirsem | 1:ad9199cbfc4b | 47 | guard_2.prescaler(1); |
| seoirsem | 3:5d99b45d534a | 48 | drive_1.period_ticks(TICK_PERIOD); |
| seoirsem | 3:5d99b45d534a | 49 | guard_1.period_ticks(TICK_PERIOD); |
| seoirsem | 3:5d99b45d534a | 50 | drive_2.period_ticks(TICK_PERIOD); |
| seoirsem | 3:5d99b45d534a | 51 | guard_2.period_ticks(TICK_PERIOD); |
| seoirsem | 0:c43134a862eb | 52 | |
| seoirsem | 5:404644414f16 | 53 | while (user_1==0); //waits for a button press before starting the programme |
| seoirsem | 0:c43134a862eb | 54 | |
| seoirsem | 0:c43134a862eb | 55 | |
| seoirsem | 5:404644414f16 | 56 | float ratio_guard = 25.0/82.0; |
| seoirsem | 5:404644414f16 | 57 | int main_tick_1 = 85; |
| seoirsem | 5:404644414f16 | 58 | int guard_tick_1 = 10;//floor(main_tick_1 * ratio_guard); |
| seoirsem | 3:5d99b45d534a | 59 | int main_tick_2 = 0; |
| seoirsem | 5:404644414f16 | 60 | int guard_tick_2 = 0;//floor(main_tick_2 * ratio_guard); |
| seoirsem | 0:c43134a862eb | 61 | |
| seoirsem | 5:404644414f16 | 62 | |
| seoirsem | 5:404644414f16 | 63 | while(guard_tick_1 < 30){ |
| seoirsem | 3:5d99b45d534a | 64 | |
| seoirsem | 3:5d99b45d534a | 65 | drive_1.pulsewidth_ticks(main_tick_1); |
| seoirsem | 3:5d99b45d534a | 66 | guard_1.pulsewidth_ticks(guard_tick_1); |
| seoirsem | 3:5d99b45d534a | 67 | drive_2.pulsewidth_ticks(main_tick_2); |
| seoirsem | 3:5d99b45d534a | 68 | guard_2.pulsewidth_ticks(guard_tick_2); |
| seoirsem | 5:404644414f16 | 69 | //wait(2); |
| seoirsem | 1:ad9199cbfc4b | 70 | //heater_2.output(); |
| seoirsem | 0:c43134a862eb | 71 | //pc.printf("%d, %f, %f\n",tic_guard,j,ratio_guard); |
| seoirsem | 5:404644414f16 | 72 | |
| seoirsem | 5:404644414f16 | 73 | while(user_0==0); |
| seoirsem | 5:404644414f16 | 74 | wait(1); |
| seoirsem | 5:404644414f16 | 75 | guard_tick_1 ++; |
| seoirsem | 5:404644414f16 | 76 | pc.printf("%d\n",guard_tick_1); |
| seoirsem | 0:c43134a862eb | 77 | } |
| seoirsem | 0:c43134a862eb | 78 | |
| seoirsem | 0:c43134a862eb | 79 | } |