new battery bar

Dependencies:   CAN_IDs CanControl Dashboard PinDetect PowerControl mbed-rtos mbed

Committer:
kwasymodo
Date:
Sun May 21 22:05:25 2017 +0000
Revision:
12:f753bc59c2e8
Parent:
4:dfd10f43cc8b
Child:
20:96420597a848
main returned to prev version;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kwasymodo 1:c5d8ea5d049b 1 /*******************************************************************************
kwasymodo 4:dfd10f43cc8b 2 This software is especially designed for Solarboat Twente for the use in their Solarboat v1.0
kwasymodo 1:c5d8ea5d049b 3
kwasymodo 1:c5d8ea5d049b 4 Written by:
kwasymodo 1:c5d8ea5d049b 5 Niels Leijen, Jesse van Rhijn, Bram Seinhorst
kwasymodo 1:c5d8ea5d049b 6
kwasymodo 1:c5d8ea5d049b 7 Thanks to:
kwasymodo 1:c5d8ea5d049b 8 Jasper Admiraal, Hidde Pik (hihihihi), Lisa Postma, Heleen Jeurink, Ruben Peters,
kwasymodo 1:c5d8ea5d049b 9 Martijn Groot Jebbink, Martijn Wilpshaar, Bram Seinhorst, Robert Geels, Arnoud Meutstege,
kwasymodo 4:dfd10f43cc8b 10 Jeroen te Braake, Ids de Vos, Jesse van Rhijn, Sam Benou, Niels Leijen and Mark Bruijn
kwasymodo 1:c5d8ea5d049b 11
kwasymodo 1:c5d8ea5d049b 12 DISCLAIMER:
kwasymodo 1:c5d8ea5d049b 13 THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT.
kwasymodo 1:c5d8ea5d049b 14 SOLARBOATTWENTE ASSUMES NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE.
kwasymodo 1:c5d8ea5d049b 15 *******************************************************************************/
kwasymodo 1:c5d8ea5d049b 16
kwasymodo 1:c5d8ea5d049b 17 // uncomment to send debug information
kwasymodo 1:c5d8ea5d049b 18 #define DEBUG
kwasymodo 1:c5d8ea5d049b 19
kwasymodo 1:c5d8ea5d049b 20 //include 3rd party libraries
kwasymodo 4:dfd10f43cc8b 21 #include "mbed.h" //needs to be revision 136 else SD filesystem will not work
kwasymodo 1:c5d8ea5d049b 22 #include "rtos.h"
kwasymodo 1:c5d8ea5d049b 23
kwasymodo 1:c5d8ea5d049b 24 // include Solarboat libraries
kwasymodo 1:c5d8ea5d049b 25 #include "pinout.h"
kwasymodo 1:c5d8ea5d049b 26 #include "PowerControl.h"
kwasymodo 1:c5d8ea5d049b 27
kwasymodo 1:c5d8ea5d049b 28 // initialize serial connection for debug
kwasymodo 1:c5d8ea5d049b 29 #ifdef DEBUG
kwasymodo 3:b164662f9740 30 RawSerial pc(SERIAL_TX, SERIAL_RX);
kwasymodo 1:c5d8ea5d049b 31 #endif
kwasymodo 1:c5d8ea5d049b 32
kwasymodo 1:c5d8ea5d049b 33 // initialize canbus
kwasymodo 1:c5d8ea5d049b 34 CAN can(CAN_RD, CAN_TD);
kwasymodo 1:c5d8ea5d049b 35
kwasymodo 1:c5d8ea5d049b 36 // initialze onboard leds
kwasymodo 1:c5d8ea5d049b 37 DigitalOut ledError(LED3);
kwasymodo 1:c5d8ea5d049b 38 DigitalOut ledRelay(LED2);
kwasymodo 1:c5d8ea5d049b 39 DigitalOut ledSD(LED1);
kwasymodo 1:c5d8ea5d049b 40 DigitalOut ledFona(LED5);
kwasymodo 1:c5d8ea5d049b 41 DigitalOut led24V(LED4);
kwasymodo 1:c5d8ea5d049b 42
kwasymodo 4:dfd10f43cc8b 43 //DigitalOut buckCan(BUCK2);
kwasymodo 4:dfd10f43cc8b 44 //DigitalOut buckXSens(BUCK3);
kwasymodo 4:dfd10f43cc8b 45 //DigitalOut buckScreen(BUCK4);
kwasymodo 4:dfd10f43cc8b 46 //DigitalOut buck24V(BUCK5);
kwasymodo 12:f753bc59c2e8 47 DigitalOut buckXSens(BUCK3);
kwasymodo 12:f753bc59c2e8 48 DigitalOut buckScreen(BUCK4);
kwasymodo 12:f753bc59c2e8 49 DigitalOut buck24V(BUCK5);
kwasymodo 1:c5d8ea5d049b 50
kwasymodo 1:c5d8ea5d049b 51
kwasymodo 1:c5d8ea5d049b 52 // Thread 1 - Power
kwasymodo 1:c5d8ea5d049b 53 void power(){
kwasymodo 4:dfd10f43cc8b 54 PowerControl powercontrol(PUSH_GREEN);
kwasymodo 4:dfd10f43cc8b 55
kwasymodo 1:c5d8ea5d049b 56 #ifdef DEBUG
kwasymodo 4:dfd10f43cc8b 57 pc.printf("Thread 1 - Power started\r\n ");
kwasymodo 1:c5d8ea5d049b 58 #endif
kwasymodo 1:c5d8ea5d049b 59
kwasymodo 4:dfd10f43cc8b 60 Thread::wait(osWaitForever);
kwasymodo 1:c5d8ea5d049b 61 }
kwasymodo 1:c5d8ea5d049b 62
kwasymodo 12:f753bc59c2e8 63 // Thread X - Test
kwasymodo 12:f753bc59c2e8 64 void test(){
kwasymodo 12:f753bc59c2e8 65 ledError = 0;
kwasymodo 12:f753bc59c2e8 66 ledSD = 0;
kwasymodo 12:f753bc59c2e8 67 ledFona = 0 ;
kwasymodo 12:f753bc59c2e8 68 led24V=1;
kwasymodo 12:f753bc59c2e8 69
kwasymodo 12:f753bc59c2e8 70 //DigitalOut buckCan(BUCK2);
kwasymodo 12:f753bc59c2e8 71 buckXSens = 0;
kwasymodo 12:f753bc59c2e8 72 buckScreen = 0;
kwasymodo 12:f753bc59c2e8 73 buck24V = 1;
kwasymodo 12:f753bc59c2e8 74
kwasymodo 12:f753bc59c2e8 75
kwasymodo 12:f753bc59c2e8 76
kwasymodo 12:f753bc59c2e8 77
kwasymodo 12:f753bc59c2e8 78 }
kwasymodo 1:c5d8ea5d049b 79
kwasymodo 1:c5d8ea5d049b 80 // Thread 0 - DO NOT CHANGE THIS!
kwasymodo 1:c5d8ea5d049b 81 int main() {
kwasymodo 1:c5d8ea5d049b 82 #ifdef DEBUG
kwasymodo 1:c5d8ea5d049b 83 pc.baud(115200);
kwasymodo 3:b164662f9740 84 pc.printf("Starting SOS V1.0\n");
kwasymodo 1:c5d8ea5d049b 85 #endif
kwasymodo 1:c5d8ea5d049b 86 // change CAN frequency
kwasymodo 1:c5d8ea5d049b 87 can.frequency(250000);
kwasymodo 1:c5d8ea5d049b 88
kwasymodo 1:c5d8ea5d049b 89 // initialze threads
kwasymodo 1:c5d8ea5d049b 90 Thread thread1;
kwasymodo 1:c5d8ea5d049b 91 //Thread thread2;
kwasymodo 1:c5d8ea5d049b 92 //Thread thread3;
kwasymodo 1:c5d8ea5d049b 93 //Thread thread4;
kwasymodo 1:c5d8ea5d049b 94 //Thread thread5;
kwasymodo 12:f753bc59c2e8 95 Thread threadx;
kwasymodo 1:c5d8ea5d049b 96
kwasymodo 1:c5d8ea5d049b 97 // change thread priority
kwasymodo 1:c5d8ea5d049b 98 //thread2.set_priority(osPriorityBelowNormal);
kwasymodo 1:c5d8ea5d049b 99
kwasymodo 1:c5d8ea5d049b 100 // start threads
kwasymodo 1:c5d8ea5d049b 101 thread1.start(&power);
kwasymodo 1:c5d8ea5d049b 102 //thread2.start(&calcPi);
kwasymodo 1:c5d8ea5d049b 103 //thread3.start(&motorTest);
kwasymodo 1:c5d8ea5d049b 104 //thread4.start(&canReceive);
kwasymodo 1:c5d8ea5d049b 105 //thread5.start(&relaisOn);
kwasymodo 12:f753bc59c2e8 106 threadx.start(&test);
kwasymodo 1:c5d8ea5d049b 107
kwasymodo 1:c5d8ea5d049b 108 //stop this thread while keeping the other threads running
kwasymodo 12:f753bc59c2e8 109 CANMessage msg;
kwasymodo 12:f753bc59c2e8 110 while(1) {
kwasymodo 12:f753bc59c2e8 111 if(can.read(msg)) {
kwasymodo 12:f753bc59c2e8 112 pc.printf("Message received: 0x %x; %u %u%u %d%d %c %u %u\n", msg.id, msg.data[0], msg.data[1], msg.data[2], msg.data[3], msg.data[4], msg.data[5], msg.data[6], msg.data[7]);
kwasymodo 12:f753bc59c2e8 113 }
kwasymodo 12:f753bc59c2e8 114 }
kwasymodo 1:c5d8ea5d049b 115 Thread::wait(osWaitForever);
kwasymodo 12:f753bc59c2e8 116 }