test fork

Dependencies:   SPI_TFTx2 SPI_TFTx2_ILI9341 TFT_fonts TOUCH_TFTx2 mbed

Fork of CANary_9341 by Tick Tock

Committer:
TickTock
Date:
Sun Oct 06 14:49:09 2013 +0000
Revision:
152:a4d66901785d
Parent:
150:ef46ce63345c
Child:
153:e94cfe3c339c
// Added clock sync with car clock option (MY2011,2012 only); // Fixed wrap bug in manual date update (january=00, not 01);

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TickTock 13:62e0f7f39ff5 1 // utility.h
TickTock 13:62e0f7f39ff5 2
TickTock 12:8e42d7ba8468 3 #include "CAN.h"
TickTock 13:62e0f7f39ff5 4 #include "common.h"
TickTock 23:cd03f9c3395e 5 #include "TOUCH_TFTx2.h"
TickTock 76:fb6779d0963e 6 #include "beep.h"
leafman 98:9f8bab96edff 7 #include <cctype>
TickTock 110:ffddff3ad2f2 8 #include "ff.h"
TickTock 12:8e42d7ba8468 9
TickTock 13:62e0f7f39ff5 10 extern Timer timer;
TickTock 79:68f0dd8d1f19 11 extern Ticker msgReq;
TickTock 131:0d926c080a65 12 extern volatile unsigned short secsNoCarCanMsg;
TickTock 132:08748a67280a 13 extern volatile unsigned short secsNoEvCanMsg;
TickTock 75:77bd26829dca 14 extern volatile unsigned short secsNoTouch;
TickTock 131:0d926c080a65 15 extern volatile bool carCanIdle;
TickTock 132:08748a67280a 16 extern volatile bool evCanIdle;
TickTock 13:62e0f7f39ff5 17 extern volatile bool userIdle;
TickTock 13:62e0f7f39ff5 18 extern char displayLog[20][40];
TickTock 13:62e0f7f39ff5 19 extern unsigned char displayLoc;
TickTock 13:62e0f7f39ff5 20 extern bool touched;
TickTock 13:62e0f7f39ff5 21 extern bool logOpen;
TickTock 39:eef8beac7411 22 extern bool logCP; // Turbo3
TickTock 48:d1ce92104a1f 23 extern bool yesBattLog ; // gg - Batt Log
TickTock 40:0e6e71a7323f 24 extern bool showCP;
TickTock 13:62e0f7f39ff5 25 extern char writeBuffer[maxBufLen][13];
TickTock 13:62e0f7f39ff5 26 extern volatile int writePointer;
TickTock 76:fb6779d0963e 27 extern int readPointer;
TickTock 13:62e0f7f39ff5 28 extern DigitalOut led1,led2,led3,led4;
TickTock 13:62e0f7f39ff5 29 extern char indexLastMsg[0x800];
TickTock 13:62e0f7f39ff5 30 extern unsigned char dMode[2];
TickTock 13:62e0f7f39ff5 31 extern unsigned char msgChanged[100];
TickTock 124:0d622967b764 32 extern unsigned char battData[BatDataBufMax]; // BatDataBufMax
TickTock 13:62e0f7f39ff5 33 extern CANMessage lastMsg[100];
TickTock 13:62e0f7f39ff5 34 extern CAN can1,can2;
leafman 98:9f8bab96edff 35 extern unsigned int fwCount;
TickTock 13:62e0f7f39ff5 36 extern DigitalOut can1SleepMode,can2SleepMode;
TickTock 34:4751a8259b18 37 extern bool tick;
garygid 69:6bfdfc002036 38 extern bool ZeroSecTick;
TickTock 34:4751a8259b18 39 extern bool headlights;
TickTock 23:cd03f9c3395e 40 extern TOUCH_TFTx2 tt;
TickTock 35:5acbd8a64a89 41 extern float ledHi;
TickTock 35:5acbd8a64a89 42 extern float ledLo;
TickTock 35:5acbd8a64a89 43 extern unsigned short pollInt;
TickTock 35:5acbd8a64a89 44 extern float scale12V;
TickTock 36:dbd39c315258 45 extern bool playbackEn;
TickTock 36:dbd39c315258 46 extern bool playbackOpen;
TickTock 36:dbd39c315258 47 extern bool step;
TickTock 36:dbd39c315258 48 extern float playbackInt;
TickTock 40:0e6e71a7323f 49 extern signed long mWs_x4;
TickTock 40:0e6e71a7323f 50 extern unsigned short numWsamples;
TickTock 41:8d4609ea7259 51 extern signed long motorRPM;
TickTock 41:8d4609ea7259 52 extern unsigned short numSsamples;
TickTock 48:d1ce92104a1f 53 extern unsigned char skin;
TickTock 50:83d5864c64a0 54 extern unsigned char dtePeriod;
TickTock 76:fb6779d0963e 55 extern Beep spkr;
TickTock 78:a383971fe02f 56 extern unsigned char reqMsgCnt;
TickTock 108:29b5a760adc2 57 extern float maxTemp;
TickTock 102:fd19f777a0b4 58 extern unsigned long Ah_x10000;
TickTock 102:fd19f777a0b4 59 extern unsigned long SOC_x10000;
TickTock 143:88b5155622a5 60 extern unsigned short SOH2_x100;
leafman 98:9f8bab96edff 61 extern bool metric;
TickTock 100:63a7456fc972 62 extern unsigned char lastDMode[2];
TickTock 100:63a7456fc972 63 extern unsigned char whichTouched;
TickTock 120:041edeec08f5 64 extern float unloadedV_x2,Resr,curRmax,curRmin,redRmax,redRmin,incRmax,incRmin;
TickTock 121:553faf139a20 65 extern signed short Imax, Imin;
TickTock 118:02010b18efdc 66 extern unsigned char tNavRow ; // gg - 4x4
TickTock 118:02010b18efdc 67 extern char revStr[7]; // gg - version
TickTock 118:02010b18efdc 68 extern bool debugMode;
TickTock 121:553faf139a20 69 extern bool shunt[96];
TickTock 122:138a40892a4c 70 extern float accV;
TickTock 152:a4d66901785d 71 extern bool accOn;
TickTock 143:88b5155622a5 72 extern float accV2;
TickTock 131:0d926c080a65 73 extern bool showHealth;
TickTock 134:ad243e4f1a17 74 extern float kWh_trip[0];
TickTock 134:ad243e4f1a17 75 extern float miles_trip[0];
TickTock 140:ab3e94eb0227 76 extern Beep spkr;
TickTock 140:ab3e94eb0227 77 extern bool brakeMon;
TickTock 140:ab3e94eb0227 78 extern Ticker geiger;
TickTock 140:ab3e94eb0227 79 extern unsigned short chirpInt;
TickTock 149:e9739523109f 80 extern unsigned short uMsgId[8];
TickTock 152:a4d66901785d 81 extern bool autoSync;
TickTock 152:a4d66901785d 82 extern unsigned short modelYear;
TickTock 12:8e42d7ba8468 83
TickTock 12:8e42d7ba8468 84 extern "C" {
TickTock 12:8e42d7ba8468 85 void mbed_reset();
TickTock 13:62e0f7f39ff5 86 void RTC_IRQHandler();
TickTock 13:62e0f7f39ff5 87 void RTC_Init (void);
TickTock 93:c2402e8cd0e2 88 void printMsg (char *msg);
TickTock 13:62e0f7f39ff5 89 void touch_ISR();
TickTock 13:62e0f7f39ff5 90 unsigned short getTimeStamp();
TickTock 13:62e0f7f39ff5 91 void logCan (char mType, CANMessage canRXmsg);
TickTock 13:62e0f7f39ff5 92 void logTS ();
TickTock 138:a2f5af85ed0d 93 void logEvent (char * errMsg); // gg - messeges
TickTock 138:a2f5af85ed0d 94 void sendTempReq();
TickTock 78:a383971fe02f 95 void sendReq();
TickTock 36:dbd39c315258 96 void autoPollISR();
TickTock 36:dbd39c315258 97 void playbackISR();
TickTock 13:62e0f7f39ff5 98 void recieve1();
TickTock 13:62e0f7f39ff5 99 void recieve2();
TickTock 36:dbd39c315258 100 void doNothing();
TickTock 22:a43df3905863 101 unsigned char buttonX(unsigned short X, unsigned char columns);
TickTock 22:a43df3905863 102 unsigned char buttonY(unsigned short Y,unsigned char rows);
TickTock 23:cd03f9c3395e 103 void saveConfig();
TickTock 25:ddf0ec209f03 104 void readConfig();
TickTock 25:ddf0ec209f03 105 void upDate(unsigned char field, bool updownbar);
TickTock 152:a4d66901785d 106 void syncDateTime();
TickTock 39:eef8beac7411 107 void logPackVoltages(); // Turbo3
TickTock 108:29b5a760adc2 108 void tripLog(); // Turbo3
leafman 98:9f8bab96edff 109 void updateFirmware(); // LM - Update firmware off USB
TickTock 108:29b5a760adc2 110 bool detectUSB();
TickTock 140:ab3e94eb0227 111 void chirp();
TickTock 25:ddf0ec209f03 112 }
TickTock 12:8e42d7ba8468 113
TickTock 12:8e42d7ba8468 114 //LEAF OBD
TickTock 12:8e42d7ba8468 115 //1:
TickTock 12:8e42d7ba8468 116 //2:
TickTock 12:8e42d7ba8468 117 //3: AVCAN-L White/Blue
TickTock 12:8e42d7ba8468 118 //4: VSS-Shield
TickTock 12:8e42d7ba8468 119 //5: VSS Brown,White/Brown
TickTock 12:8e42d7ba8468 120 //6: CARCAN-H Green
TickTock 12:8e42d7ba8468 121 //7:
TickTock 12:8e42d7ba8468 122 //8: 12V-SW Orange,White/Orange
TickTock 12:8e42d7ba8468 123 //9:
TickTock 12:8e42d7ba8468 124 //10:
TickTock 12:8e42d7ba8468 125 //11: AVCAN-H Blue
TickTock 12:8e42d7ba8468 126 //12: EVCAN-L White/Grey
TickTock 12:8e42d7ba8468 127 //13: EVCAN-H Grey
TickTock 12:8e42d7ba8468 128 //14: CARCAN-L White/Green
TickTock 12:8e42d7ba8468 129 //15:
TickTock 12:8e42d7ba8468 130 //16: 12V-AON Red/Blue,Blue/Red
TickTock 12:8e42d7ba8468 131
TickTock 12:8e42d7ba8468 132 //VP230
TickTock 12:8e42d7ba8468 133 //1:D
TickTock 12:8e42d7ba8468 134 //2:GND
TickTock 12:8e42d7ba8468 135 //3:VCC
TickTock 12:8e42d7ba8468 136 //4:R
TickTock 12:8e42d7ba8468 137 //5:Vref
TickTock 12:8e42d7ba8468 138 //6:CANL
TickTock 12:8e42d7ba8468 139 //7:CANH
TickTock 12:8e42d7ba8468 140 //8:RS
TickTock 12:8e42d7ba8468 141
TickTock 12:8e42d7ba8468 142 //LPC1768
TickTock 12:8e42d7ba8468 143 //1: VSS
TickTock 12:8e42d7ba8468 144 //2: NC:VIN (4.5-9V supply)
TickTock 12:8e42d7ba8468 145 //3: NC:VB
TickTock 12:8e42d7ba8468 146 //4: NC:nR
TickTock 22:a43df3905863 147 //5: SPI:Reset
TickTock 22:a43df3905863 148 //6: SPI:CS0
TickTock 22:a43df3905863 149 //7: SPI:CS1
TickTock 12:8e42d7ba8468 150 //8: CAN1:Sleep --> 8:CAN1:RS
TickTock 12:8e42d7ba8468 151 //9: CAN1:RX --> 4:CAN1:R
TickTock 12:8e42d7ba8468 152 //10: CAN1:TX --> 1:CAN1:D
TickTock 12:8e42d7ba8468 153 //11: SPI:MOSI
TickTock 12:8e42d7ba8468 154 //12: SPI:MISO
TickTock 12:8e42d7ba8468 155 //13: SPI:SCLK
TickTock 12:8e42d7ba8468 156 //14: NC:Ain
TickTock 12:8e42d7ba8468 157 //15: MON12V --> 4K to 12V, 1K to VSS (To be implemented)
TickTock 12:8e42d7ba8468 158 //16: TOUCH_X+
TickTock 12:8e42d7ba8468 159 //17: TOUCH_X-
TickTock 12:8e42d7ba8468 160 //18: NC:Aout
TickTock 12:8e42d7ba8468 161 //19: TOUCH_Y+
TickTock 12:8e42d7ba8468 162 //20: TOUCH_Y-
TickTock 12:8e42d7ba8468 163 //21: Spkr+
TickTock 22:a43df3905863 164 //22: NC:pwm
TickTock 22:a43df3905863 165 //23: LED
TickTock 22:a43df3905863 166 //24: NC:pwm
TickTock 12:8e42d7ba8468 167 //25: NC:pwm
TickTock 12:8e42d7ba8468 168 //26: NC:pwm
TickTock 12:8e42d7ba8468 169 //27: NC
TickTock 12:8e42d7ba8468 170 //28: CAN2:Sleep --> 8:CAN2:RS
TickTock 12:8e42d7ba8468 171 //29: CAN2:TX --> 1:CAN2:D
TickTock 12:8e42d7ba8468 172 //30: CAN2:RX --> 4:CAN2:R
TickTock 12:8e42d7ba8468 173 //31: USB_D+
TickTock 12:8e42d7ba8468 174 //32: USB_D-
TickTock 12:8e42d7ba8468 175 //33: NC:Eth_TD+
TickTock 12:8e42d7ba8468 176 //34: NC:Eth_TD-
TickTock 12:8e42d7ba8468 177 //35: NC:Eth_RD+
TickTock 12:8e42d7ba8468 178 //36: NC:Eth_RD-
TickTock 12:8e42d7ba8468 179 //37: NC:IF+
TickTock 12:8e42d7ba8468 180 //38: NC:IF-
TickTock 12:8e42d7ba8468 181 //39: NC:5Vout (only available when connected as USB device)
TickTock 12:8e42d7ba8468 182 //40: VCC3.3