The Technology Partnership / Mbed 2 deprecated V2_Heater_test_code

Dependencies:   mbed MODSERIAL

Committer:
seoirsem
Date:
Mon Aug 12 10:53:53 2019 +0000
Revision:
2:b1f6e4f51d06
Parent:
1:ad9199cbfc4b
Child:
3:5d99b45d534a
just main file needed;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
seoirsem 0:c43134a862eb 1 #include "mbed.h"
seoirsem 0:c43134a862eb 2 #include "MODSERIAL.h"
seoirsem 0:c43134a862eb 3 #include "ADS8568_ADC.h"
seoirsem 0:c43134a862eb 4 #include "FastPWM.h"
seoirsem 0:c43134a862eb 5
seoirsem 0:c43134a862eb 6 #include "math.h"
seoirsem 0:c43134a862eb 7 /*------------------------------------------------------------------------------
seoirsem 0:c43134a862eb 8 Codebase for T99004 Demo Control Board Rev A Firmware
seoirsem 0:c43134a862eb 9 Date: 10/07/2018
seoirsem 0:c43134a862eb 10 Author: AS7
seoirsem 0:c43134a862eb 11
seoirsem 0:c43134a862eb 12
seoirsem 0:c43134a862eb 13 ------------------------------------------------------------------------------*/
seoirsem 0:c43134a862eb 14
seoirsem 0:c43134a862eb 15 #define ALL_CH 15 //value of convst bus to read all chanels simultaneosly
seoirsem 2:b1f6e4f51d06 16 #define TICK_CYCLE 1000// Tick cylcle
seoirsem 0:c43134a862eb 17
seoirsem 0:c43134a862eb 18
seoirsem 0:c43134a862eb 19 MODSERIAL pc(PA_9, PA_10, 512); //mcu TX, RX, 512 byte TX and RX buffers
seoirsem 0:c43134a862eb 20
seoirsem 0:c43134a862eb 21 //ADC object inherits SPI,
seoirsem 0:c43134a862eb 22 ADS8568_ADC adc(PB_15, PB_14, PB_13, PB_12, PC_15, PC_0, PC_1, PC_2, PC_3);
seoirsem 0:c43134a862eb 23
seoirsem 0:c43134a862eb 24 //SPI spi(PB_15, PB_14, PB_13); // mosi, miso, sclk
seoirsem 0:c43134a862eb 25 I2C i2c(PB_7, PB_8); //SDA, SCL
seoirsem 0:c43134a862eb 26
seoirsem 0:c43134a862eb 27 //indicator LEDs
seoirsem 0:c43134a862eb 28 DigitalOut hb_led(PC_13); //Green
seoirsem 0:c43134a862eb 29 DigitalOut led_0(PC_4); //Red
seoirsem 0:c43134a862eb 30 DigitalOut led_1(PC_5); //Green
seoirsem 0:c43134a862eb 31
seoirsem 0:c43134a862eb 32 //User buttons
seoirsem 0:c43134a862eb 33 DigitalIn user_0(PB_0);
seoirsem 0:c43134a862eb 34 DigitalIn user_1(PB_1);
seoirsem 0:c43134a862eb 35
seoirsem 0:c43134a862eb 36 //ADC
seoirsem 0:c43134a862eb 37 //BusOut adc_convt(PC_0, PC_1, PC_2, PC_3); //channel convert ch_A, ch_B, ch_C, ch_D
seoirsem 0:c43134a862eb 38 //DigitalOut adc_ncs(PB_12); //chip n_select
seoirsem 0:c43134a862eb 39 DigitalIn adc_busy(PA_8); //Busy interrupt sig
seoirsem 0:c43134a862eb 40 //DigitalOut adc_reset(PC_15);
seoirsem 0:c43134a862eb 41
seoirsem 0:c43134a862eb 42 /*ADC channels are connected as follows------------
seoirsem 0:c43134a862eb 43 CH_A0 = Heater 1 Current Sense
seoirsem 0:c43134a862eb 44 CH_A1 = Heater 1 Voltage Sense
seoirsem 0:c43134a862eb 45 CH_B0 = Heater 2 Current Sense
seoirsem 0:c43134a862eb 46 CH_B1 = Heater 2 Voltage Sense
seoirsem 0:c43134a862eb 47 CH_C0 = Photodiode Amp Out 1
seoirsem 0:c43134a862eb 48 CH_C1 = Photodiode Amp Out 2
seoirsem 0:c43134a862eb 49 CH_D0 = Photodiode Amp Out 3
seoirsem 0:c43134a862eb 50 CH_D1 = Photodiode Amp Out 4
seoirsem 0:c43134a862eb 51 ---------------------------------------------------*/
seoirsem 0:c43134a862eb 52
seoirsem 0:c43134a862eb 53 //Heater Control
seoirsem 0:c43134a862eb 54 FastPWM drive_1(PC_9);
seoirsem 0:c43134a862eb 55 FastPWM drive_2(PC_8);
seoirsem 0:c43134a862eb 56 FastPWM guard_1(PC_7);
seoirsem 0:c43134a862eb 57 FastPWM guard_2(PC_6);
seoirsem 0:c43134a862eb 58 Timer timer;
seoirsem 0:c43134a862eb 59
seoirsem 0:c43134a862eb 60
seoirsem 0:c43134a862eb 61 //Global vars instatiation (to be moved to new places)
seoirsem 0:c43134a862eb 62 char buffer16[16];
seoirsem 0:c43134a862eb 63 float voltages[8];
seoirsem 0:c43134a862eb 64 int values[8];
seoirsem 0:c43134a862eb 65 int i = 0;
seoirsem 0:c43134a862eb 66 int log_count = 0;
seoirsem 0:c43134a862eb 67
seoirsem 0:c43134a862eb 68
seoirsem 0:c43134a862eb 69 char outString[100];
seoirsem 0:c43134a862eb 70
seoirsem 0:c43134a862eb 71 const float h1_inter = 0.392;
seoirsem 0:c43134a862eb 72 const float h2_inter = 0.392;
seoirsem 0:c43134a862eb 73 const float h1_slope = 0.0019;
seoirsem 0:c43134a862eb 74 const float h2_slope = 0.0019;
seoirsem 0:c43134a862eb 75
seoirsem 0:c43134a862eb 76 int main()
seoirsem 0:c43134a862eb 77 {
seoirsem 0:c43134a862eb 78 // Initialsation
seoirsem 0:c43134a862eb 79 pc.baud(115200);
seoirsem 0:c43134a862eb 80 //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 81 adc.init(); //initialise ADC
seoirsem 0:c43134a862eb 82 timer.start(); //Start the timer
seoirsem 0:c43134a862eb 83
seoirsem 0:c43134a862eb 84 //Initialise drive periods
seoirsem 0:c43134a862eb 85 drive_1.prescaler(1);
seoirsem 0:c43134a862eb 86 guard_1.prescaler(1);
seoirsem 1:ad9199cbfc4b 87 drive_2.prescaler(1);
seoirsem 1:ad9199cbfc4b 88 guard_2.prescaler(1);
seoirsem 0:c43134a862eb 89 drive_2.period_ticks(TICK_CYCLE);
seoirsem 0:c43134a862eb 90 guard_2.period_ticks(TICK_CYCLE);
seoirsem 0:c43134a862eb 91
seoirsem 0:c43134a862eb 92 //while (user_1==0); //waits for a button press before starting the programme
seoirsem 0:c43134a862eb 93
seoirsem 0:c43134a862eb 94
seoirsem 0:c43134a862eb 95 float ratio_guard = 21.0/82;
seoirsem 0:c43134a862eb 96 int tic_main = 150;
seoirsem 0:c43134a862eb 97 int tic_guard = floor(tic_main * ratio_guard);
seoirsem 0:c43134a862eb 98
seoirsem 0:c43134a862eb 99 while(1){
seoirsem 0:c43134a862eb 100
seoirsem 0:c43134a862eb 101 drive_2.pulsewidth_ticks(tic_main);
seoirsem 0:c43134a862eb 102 guard_2.pulsewidth_ticks(tic_guard);
seoirsem 0:c43134a862eb 103 wait(2);
seoirsem 1:ad9199cbfc4b 104 //heater_2.output();
seoirsem 0:c43134a862eb 105 //pc.printf("%d, %f, %f\n",tic_guard,j,ratio_guard);
seoirsem 0:c43134a862eb 106
seoirsem 0:c43134a862eb 107 }
seoirsem 0:c43134a862eb 108
seoirsem 0:c43134a862eb 109 }