detail : http://www.mcugear.com/

You need lib of mbed and textLCD.

mbed と textLCDのライブラリが必要です。

Committer:
Info
Date:
Thu Oct 03 09:21:14 2013 +0000
Revision:
1:bbcba1a79e7b
main.cpp????????
; ????????????????????
; ????????????????????????????????????????????????????...

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Info 1:bbcba1a79e7b 1 /* MCU Gear Library, only for testing MCUGear without any circuit you connected.
Info 1:bbcba1a79e7b 2 * Copyright (c) 2013, NestEgg Inc., http://www.mcugear.com/
Info 1:bbcba1a79e7b 3 *
Info 1:bbcba1a79e7b 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
Info 1:bbcba1a79e7b 5 * of this software and associated documentation files (the "Software"), to deal
Info 1:bbcba1a79e7b 6 * in the Software without restriction, including without limitation the rights
Info 1:bbcba1a79e7b 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
Info 1:bbcba1a79e7b 8 * copies of the Software, and to permit persons to whom the Software is
Info 1:bbcba1a79e7b 9 * furnished to do so, subject to the following conditions:
Info 1:bbcba1a79e7b 10 *
Info 1:bbcba1a79e7b 11 * The above copyright notice and this permission notice shall be included in
Info 1:bbcba1a79e7b 12 * all copies or substantial portions of the Software.
Info 1:bbcba1a79e7b 13 *
Info 1:bbcba1a79e7b 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Info 1:bbcba1a79e7b 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Info 1:bbcba1a79e7b 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
Info 1:bbcba1a79e7b 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
Info 1:bbcba1a79e7b 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
Info 1:bbcba1a79e7b 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
Info 1:bbcba1a79e7b 20 * THE SOFTWARE.
Info 1:bbcba1a79e7b 21 */
Info 1:bbcba1a79e7b 22
Info 1:bbcba1a79e7b 23 #include "mbed.h"
Info 1:bbcba1a79e7b 24 #include "TextLCD.h"
Info 1:bbcba1a79e7b 25
Info 1:bbcba1a79e7b 26 #include "MCUGearBase.h"
Info 1:bbcba1a79e7b 27 #include "MCUGear.h"
Info 1:bbcba1a79e7b 28 #include "common.h"
Info 1:bbcba1a79e7b 29
Info 1:bbcba1a79e7b 30 Serial pc(USBTX, USBRX); // tx, rx Set BaudRate = 115200 in main()
Info 1:bbcba1a79e7b 31
Info 1:bbcba1a79e7b 32 //Make instance. Set I2C pins, Module address and Connector numnber of Modules.
Info 1:bbcba1a79e7b 33
Info 1:bbcba1a79e7b 34 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 35 //caution: Do not use I2C(p28 & p27). It is reserved in this system with high speed 1.5MHz I2C.
Info 1:bbcba1a79e7b 36 //If you want to use I2C, you should change I2C clock.
Info 1:bbcba1a79e7b 37 // or use multi-function module.
Info 1:bbcba1a79e7b 38
Info 1:bbcba1a79e7b 39 //Address setting:you can see the detail on common.h file.
Info 1:bbcba1a79e7b 40 //address format : (Type of device)_AD2pin_AD1pin_AD0pin
Info 1:bbcba1a79e7b 41 //N(PCA9674) A(PCA9674A) (VDD = +3V3 VSS = GND)
Info 1:bbcba1a79e7b 42
Info 1:bbcba1a79e7b 43 //Initialize modules-----------------------------------------------------------------------
Info 1:bbcba1a79e7b 44 MCUGear AD12M(p28, p27, N_SCL_SCL_VSS,4); //AD(MCP3202) 12bit Module : Set number of module pin
Info 1:bbcba1a79e7b 45 MCUGear AD8ch12M(p28, p27, N_SDA_SDA_SDA,4); //AD(MCP3208) 12bit 8ch Module
Info 1:bbcba1a79e7b 46 MCUGear DA12M(p28, p27, N_SCL_SCL_SCL,4); //DA(MCP4901) 12bit Module
Info 1:bbcba1a79e7b 47 MCUGear LCDM(p28, p27, N_VDD_VSS_VSS,6); //LCD Module
Info 1:bbcba1a79e7b 48 MCUGear SHM(p28, p27, N_VDD_VSS_VDD,8); //Signal Hold Module
Info 1:bbcba1a79e7b 49 MCUGear Uni2M(p28, p27, N_VDD_VDD_VDD,8); //2 Connector Universal Module
Info 1:bbcba1a79e7b 50 MCUGear MFM(p28, p27, N_VSS_VSS_VSS,4); //Multifunction Module
Info 1:bbcba1a79e7b 51 //-----------------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 52
Info 1:bbcba1a79e7b 53 //Sample setting-----------------------------------------------------------------------
Info 1:bbcba1a79e7b 54 //TextLCD lcd(p21, p22, p23, p24, p25, p26, TextLCD::LCD16x2); // rs, e, d4-d7
Info 1:bbcba1a79e7b 55 SPI spi(p5, p6, p7); // mosi, miso, sclk
Info 1:bbcba1a79e7b 56 DigitalOut cs(p8); //for SPI communications
Info 1:bbcba1a79e7b 57 DigitalOut Dout(p15);//for 12bit DA module
Info 1:bbcba1a79e7b 58 BusOut SignalHold (p16,p21,p22,p23,p24,p25,p26);
Info 1:bbcba1a79e7b 59
Info 1:bbcba1a79e7b 60 DigitalOut Dout1(p16);
Info 1:bbcba1a79e7b 61 DigitalOut Dout2(p21);
Info 1:bbcba1a79e7b 62 DigitalOut Dout3(p22);
Info 1:bbcba1a79e7b 63 DigitalOut Dout4(p23);
Info 1:bbcba1a79e7b 64 DigitalOut Dout5(p24);
Info 1:bbcba1a79e7b 65 DigitalIn Din1(p9);
Info 1:bbcba1a79e7b 66 DigitalIn Din2(p10);
Info 1:bbcba1a79e7b 67
Info 1:bbcba1a79e7b 68 //-------------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 69 #endif
Info 1:bbcba1a79e7b 70
Info 1:bbcba1a79e7b 71
Info 1:bbcba1a79e7b 72 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 73 //Initialize modules-----------------------------------------------------------------------
Info 1:bbcba1a79e7b 74 MCUGear AD12M(PTE0, PTE1, N_SCL_SCL_VSS,4); //AD(MCP3202) 12bit Module : Set number of module pin
Info 1:bbcba1a79e7b 75 MCUGear AD8ch12M(PTE0, PTE1, N_SDA_SDA_SDA,4); //AD(MCP3208) 12bit 8ch Module
Info 1:bbcba1a79e7b 76 MCUGear DA12M(PTE0, PTE1, N_SCL_SCL_SCL,4); //DA(MCP4901) 12bit Module
Info 1:bbcba1a79e7b 77 MCUGear LCDM(PTE0, PTE1, N_VDD_VSS_VSS,6); //LCD Module
Info 1:bbcba1a79e7b 78 MCUGear SHM(PTE0, PTE1, N_VDD_VSS_VDD,8); //Signal Hold Module
Info 1:bbcba1a79e7b 79 MCUGear Uni2M(PTE0, PTE1, N_VDD_VDD_VDD,8); //2 Connector Universal Module
Info 1:bbcba1a79e7b 80 MCUGear MFM(PTE0, PTE1, N_VSS_VSS_VSS,4); //Multifunction Module
Info 1:bbcba1a79e7b 81 //-----------------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 82
Info 1:bbcba1a79e7b 83 //Sample setting-----------------------------------------------------------------------
Info 1:bbcba1a79e7b 84 //TextLCD lcd(PTA1, PTA2, PTD4, PTA12, PTA4, PTA5, TextLCD::LCD16x2); // rs, e, d4-d7
Info 1:bbcba1a79e7b 85 SPI spi(PTD2,PTD3,PTD1); // mosi, miso, sclk
Info 1:bbcba1a79e7b 86 DigitalOut cs(PTD0); //for SPI communications
Info 1:bbcba1a79e7b 87 DigitalOut Dout(PTA13);//for 12bit DA module
Info 1:bbcba1a79e7b 88 BusOut SignalHold (PTB0, PTB1, PTD4, PTA12, PTA4, PTA5, PTC8);
Info 1:bbcba1a79e7b 89
Info 1:bbcba1a79e7b 90 DigitalOut Dout1(PTB0);
Info 1:bbcba1a79e7b 91 DigitalOut Dout2(PTB1);
Info 1:bbcba1a79e7b 92 DigitalOut Dout3(PTD4);
Info 1:bbcba1a79e7b 93 DigitalOut Dout4(PTA12);
Info 1:bbcba1a79e7b 94 DigitalOut Dout5(PTA4);
Info 1:bbcba1a79e7b 95 DigitalIn Din1(PTB0);
Info 1:bbcba1a79e7b 96 DigitalIn Din2(PTB1);
Info 1:bbcba1a79e7b 97 #endif
Info 1:bbcba1a79e7b 98
Info 1:bbcba1a79e7b 99 //sample functions------------------------------------------------------------
Info 1:bbcba1a79e7b 100 void IOSimpleSPI(MCUGear *mcugear); //IO setting for Simple SPI module
Info 1:bbcba1a79e7b 101 void IO12bitDA(MCUGear *mcugear); //IO setting for DA 12bit module
Info 1:bbcba1a79e7b 102 void IOLCD(MCUGear *mcugear); //IO setting for LCD module
Info 1:bbcba1a79e7b 103 void IOSHM(MCUGear *mcugear); //IO setting for Signal Hold module
Info 1:bbcba1a79e7b 104 void IOUni2M(MCUGear *mcugear); //IO setting for 2 Connector Universal module
Info 1:bbcba1a79e7b 105
Info 1:bbcba1a79e7b 106 int read12bitAD(MCUGear *mcugear, char ch); //simple ADC
Info 1:bbcba1a79e7b 107 void write12bitDA(MCUGear *mcugear, int data); //simple DA
Info 1:bbcba1a79e7b 108 int read12bit8chAD(MCUGear *mcugear, char ch); //simple ADC 8ch
Info 1:bbcba1a79e7b 109
Info 1:bbcba1a79e7b 110 #ifdef AD_MODE //for Multifunction Module
Info 1:bbcba1a79e7b 111 int read10bitAD(MCUGear *mcugear, int ch);
Info 1:bbcba1a79e7b 112 #endif
Info 1:bbcba1a79e7b 113
Info 1:bbcba1a79e7b 114 #ifdef PWM_MODE //for Multifunction Module
Info 1:bbcba1a79e7b 115 void initPWM(MCUGear *mcugear, unsigned int Divider, unsigned int friquency, unsigned int duty0, unsigned int duty1, unsigned int duty2);
Info 1:bbcba1a79e7b 116 void PWMfriq(MCUGear *mcugear, unsigned int friquency);
Info 1:bbcba1a79e7b 117 void PWMDuty(MCUGear *mcugear, int ch, unsigned int Duty);
Info 1:bbcba1a79e7b 118 void StopPWM(MCUGear *mcugear);
Info 1:bbcba1a79e7b 119 void StartPWM(MCUGear *mcugear);
Info 1:bbcba1a79e7b 120 #endif
Info 1:bbcba1a79e7b 121 //----------------------------------------------------------------------------
Info 1:bbcba1a79e7b 122
Info 1:bbcba1a79e7b 123
Info 1:bbcba1a79e7b 124 //***************************************************************************************
Info 1:bbcba1a79e7b 125 int main() {
Info 1:bbcba1a79e7b 126
Info 1:bbcba1a79e7b 127 int SW1,SW2;
Info 1:bbcba1a79e7b 128
Info 1:bbcba1a79e7b 129 // pc.printf("hello world!!!");
Info 1:bbcba1a79e7b 130
Info 1:bbcba1a79e7b 131 initBase(); //initialize Baseboard
Info 1:bbcba1a79e7b 132
Info 1:bbcba1a79e7b 133
Info 1:bbcba1a79e7b 134 //Set IO --------------------------------------------------------------
Info 1:bbcba1a79e7b 135
Info 1:bbcba1a79e7b 136 IOSimpleSPI(&AD12M);
Info 1:bbcba1a79e7b 137 IOSimpleSPI(&AD8ch12M);
Info 1:bbcba1a79e7b 138 IO12bitDA(&DA12M);
Info 1:bbcba1a79e7b 139 IOLCD(&LCDM);
Info 1:bbcba1a79e7b 140 IOSHM(&SHM);
Info 1:bbcba1a79e7b 141 IOUni2M(&Uni2M);
Info 1:bbcba1a79e7b 142 IOSimpleSPI(&MFM); //IO setting for Multifunction module
Info 1:bbcba1a79e7b 143
Info 1:bbcba1a79e7b 144 //---------------------------------------------------------------------
Info 1:bbcba1a79e7b 145 wait(1);
Info 1:bbcba1a79e7b 146
Info 1:bbcba1a79e7b 147 LCDM.connectModule();
Info 1:bbcba1a79e7b 148 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 149 TextLCD lcd(p21, p22, p23, p24, p25, p26, TextLCD::LCD16x2); // rs, e, d4-d7
Info 1:bbcba1a79e7b 150 #endif
Info 1:bbcba1a79e7b 151
Info 1:bbcba1a79e7b 152 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 153 TextLCD lcd(PTB0, PTB1, PTD4, PTA12, PTA4, PTA5, TextLCD::LCD16x2); // rs, e, d4-d7
Info 1:bbcba1a79e7b 154 #endif
Info 1:bbcba1a79e7b 155
Info 1:bbcba1a79e7b 156 lcd.cls();
Info 1:bbcba1a79e7b 157 lcd.printf("Hello World!\n");
Info 1:bbcba1a79e7b 158 wait(1);
Info 1:bbcba1a79e7b 159 LCDM.disconnectModule();
Info 1:bbcba1a79e7b 160
Info 1:bbcba1a79e7b 161
Info 1:bbcba1a79e7b 162
Info 1:bbcba1a79e7b 163 int data1[2];
Info 1:bbcba1a79e7b 164 int data2[8];
Info 1:bbcba1a79e7b 165 int data3[3];
Info 1:bbcba1a79e7b 166 uint8_t busData = 0;
Info 1:bbcba1a79e7b 167
Info 1:bbcba1a79e7b 168 #ifdef PWM_MODE
Info 1:bbcba1a79e7b 169
Info 1:bbcba1a79e7b 170 uint32_t PWM_data = 0x7FF;
Info 1:bbcba1a79e7b 171 uint32_t PWM_data_old = 0;
Info 1:bbcba1a79e7b 172
Info 1:bbcba1a79e7b 173 MFM.connectModule(); //connect---
Info 1:bbcba1a79e7b 174 initPWM(&MFM, 24, 40950, 10, 10, 10);// 0-2msec 12bit 20msec for RC servosetting
Info 1:bbcba1a79e7b 175 //initPWM(&MFM, 120, 4095, 20, 50, 80);//Simple 10msec PWM
Info 1:bbcba1a79e7b 176 //initPWM(&MFM, 48, 26, 70, 70, 70);//38kHz 26usec for IR LED
Info 1:bbcba1a79e7b 177 MFM.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 178
Info 1:bbcba1a79e7b 179 #endif
Info 1:bbcba1a79e7b 180
Info 1:bbcba1a79e7b 181 while(1) {
Info 1:bbcba1a79e7b 182 //12bit AD Mobdule-------------------------------------------------
Info 1:bbcba1a79e7b 183
Info 1:bbcba1a79e7b 184 cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 185 AD12M.connectModule(); //connect---
Info 1:bbcba1a79e7b 186 data1[0] = read12bitAD(&AD12M, 0);
Info 1:bbcba1a79e7b 187 data1[1] = read12bitAD(&AD12M, 1);
Info 1:bbcba1a79e7b 188 AD12M.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 189
Info 1:bbcba1a79e7b 190 //12bit 8ch AD Module
Info 1:bbcba1a79e7b 191
Info 1:bbcba1a79e7b 192 cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 193 AD8ch12M.connectModule(); //connect---
Info 1:bbcba1a79e7b 194 data2[0] = read12bit8chAD(&AD8ch12M, 0); //0ch
Info 1:bbcba1a79e7b 195 data2[1] = read12bit8chAD(&AD8ch12M, 1); //1ch
Info 1:bbcba1a79e7b 196 data2[2] = read12bit8chAD(&AD8ch12M, 2); //2ch
Info 1:bbcba1a79e7b 197 data2[3] = read12bit8chAD(&AD8ch12M, 3); //3ch
Info 1:bbcba1a79e7b 198 data2[4] = read12bit8chAD(&AD8ch12M, 4); //4ch
Info 1:bbcba1a79e7b 199 data2[5] = read12bit8chAD(&AD8ch12M, 5); //5ch
Info 1:bbcba1a79e7b 200 data2[6] = read12bit8chAD(&AD8ch12M, 6); //6ch
Info 1:bbcba1a79e7b 201 data2[7] = read12bit8chAD(&AD8ch12M, 7); //7ch
Info 1:bbcba1a79e7b 202 AD8ch12M.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 203
Info 1:bbcba1a79e7b 204 #ifdef AD_MODE //for Multifunction Module
Info 1:bbcba1a79e7b 205 cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 206 MFM.connectModule(); //connect---
Info 1:bbcba1a79e7b 207 data3[0] = read10bitAD(&MFM, 1); //1ch
Info 1:bbcba1a79e7b 208 data3[1] = read10bitAD(&MFM, 2); //2ch
Info 1:bbcba1a79e7b 209 data3[2] = read10bitAD(&MFM, 3); //3ch
Info 1:bbcba1a79e7b 210 MFM.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 211 #endif
Info 1:bbcba1a79e7b 212
Info 1:bbcba1a79e7b 213 #ifdef PWM_MODE //for Multifunction Module
Info 1:bbcba1a79e7b 214
Info 1:bbcba1a79e7b 215 cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 216 MFM.connectModule(); //connect---
Info 1:bbcba1a79e7b 217
Info 1:bbcba1a79e7b 218 //RC Servo and Simple PWM
Info 1:bbcba1a79e7b 219 /* PWMDuty(&MFM, 1, 0x7FF); //duty 50%
Info 1:bbcba1a79e7b 220 PWMDuty(&MFM, 2, 0x7FF);
Info 1:bbcba1a79e7b 221 PWMDuty(&MFM, 3, 0x7FF);
Info 1:bbcba1a79e7b 222 */
Info 1:bbcba1a79e7b 223
Info 1:bbcba1a79e7b 224 if(PWM_data > 0xFFF){
Info 1:bbcba1a79e7b 225 PWM_data = 0x7FF;
Info 1:bbcba1a79e7b 226 }
Info 1:bbcba1a79e7b 227
Info 1:bbcba1a79e7b 228 //RC Servo and Simple PWM
Info 1:bbcba1a79e7b 229 PWMDuty(&MFM, 1, 0x7FF); //duty 50%
Info 1:bbcba1a79e7b 230
Info 1:bbcba1a79e7b 231 if(PWM_data_old != PWM_data){
Info 1:bbcba1a79e7b 232 PWMDuty(&MFM, 2, PWM_data);
Info 1:bbcba1a79e7b 233 PWM_data_old = PWM_data;
Info 1:bbcba1a79e7b 234
Info 1:bbcba1a79e7b 235 }
Info 1:bbcba1a79e7b 236
Info 1:bbcba1a79e7b 237 //PWMDuty(&MFM, 3, PWM_data);
Info 1:bbcba1a79e7b 238 PWMDuty(&MFM, 3, data1[0]+0x7FF);
Info 1:bbcba1a79e7b 239 //mwait01(10000); //If the system is heavy or not, you should adjust the value.
Info 1:bbcba1a79e7b 240
Info 1:bbcba1a79e7b 241 PWM_data = PWM_data + 0x0FF;
Info 1:bbcba1a79e7b 242
Info 1:bbcba1a79e7b 243 //Sample for IR LED
Info 1:bbcba1a79e7b 244 /*
Info 1:bbcba1a79e7b 245 StopPWM(&MFM);
Info 1:bbcba1a79e7b 246 wait_us(10);
Info 1:bbcba1a79e7b 247 StartPWM(&MFM);
Info 1:bbcba1a79e7b 248 wait_us(10);
Info 1:bbcba1a79e7b 249 StopPWM(&MFM);
Info 1:bbcba1a79e7b 250 wait_us(10);
Info 1:bbcba1a79e7b 251 StartPWM(&MFM);
Info 1:bbcba1a79e7b 252 wait_us(10);
Info 1:bbcba1a79e7b 253 StopPWM(&MFM);
Info 1:bbcba1a79e7b 254 */
Info 1:bbcba1a79e7b 255 MFM.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 256
Info 1:bbcba1a79e7b 257 #endif
Info 1:bbcba1a79e7b 258
Info 1:bbcba1a79e7b 259
Info 1:bbcba1a79e7b 260 //LCD Module------------------------------------------------------
Info 1:bbcba1a79e7b 261 LCDM.connectModule(); //connect---
Info 1:bbcba1a79e7b 262 lcd.printf(" "); //set IO as a neutral position
Info 1:bbcba1a79e7b 263 lcd.cls(); //clear LCD
Info 1:bbcba1a79e7b 264 lcd.printf("A%d B%d\nC%d D%d",data1[0],data1[1],data2[0],data2[6]); //write LCD data
Info 1:bbcba1a79e7b 265 wait_ms(10); //delay for view the LCD
Info 1:bbcba1a79e7b 266 LCDM.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 267
Info 1:bbcba1a79e7b 268 //12bit 2ch AD
Info 1:bbcba1a79e7b 269 //pc.printf("0ch%d, 1ch%d, ",data1[0],data1[1]);
Info 1:bbcba1a79e7b 270 //12bit 8ch AD
Info 1:bbcba1a79e7b 271 pc.printf("0ch%d, 1ch%d, 2ch%d, 3ch%d, 4ch%d, 5ch%d, 6ch%d, 7ch%d, ",data2[0],data2[1],data2[2],data2[3],data2[4],data2[5],data2[6],data2[7]);
Info 1:bbcba1a79e7b 272 #ifdef AD_MODE //for Multifunction Module
Info 1:bbcba1a79e7b 273 pc.printf("0ch%d, 1ch%d, 2ch%d",data3[0],data3[1],data3[2]);
Info 1:bbcba1a79e7b 274 #endif
Info 1:bbcba1a79e7b 275 pc.printf("\r\n");
Info 1:bbcba1a79e7b 276
Info 1:bbcba1a79e7b 277
Info 1:bbcba1a79e7b 278 //12bit SPI DA module---------------------------------------------
Info 1:bbcba1a79e7b 279 cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 280 Dout=1; //reset ratch signal
Info 1:bbcba1a79e7b 281 DA12M.connectModule(); //connect---
Info 1:bbcba1a79e7b 282 write12bitDA(&DA12M, data1[0]);
Info 1:bbcba1a79e7b 283 DA12M.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 284
Info 1:bbcba1a79e7b 285
Info 1:bbcba1a79e7b 286 //Signal Hold module (TC74VHCT540AF)------------------------------
Info 1:bbcba1a79e7b 287 Dout = 0; //ratch standby
Info 1:bbcba1a79e7b 288 SHM.connectModule(); //connect---
Info 1:bbcba1a79e7b 289
Info 1:bbcba1a79e7b 290 SignalHold = busData; //set 7bit bus out
Info 1:bbcba1a79e7b 291 Dout = 1; //ratch
Info 1:bbcba1a79e7b 292 Dout = 0; //ratch standby
Info 1:bbcba1a79e7b 293 SHM.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 294
Info 1:bbcba1a79e7b 295 //2 connector universal module ------------------------------
Info 1:bbcba1a79e7b 296
Info 1:bbcba1a79e7b 297 Dout = 1;
Info 1:bbcba1a79e7b 298 Dout1 = 1;
Info 1:bbcba1a79e7b 299 Dout2 = 1;
Info 1:bbcba1a79e7b 300 Dout3 = 1;
Info 1:bbcba1a79e7b 301 Dout4 = 1;
Info 1:bbcba1a79e7b 302 Dout5 = 1;
Info 1:bbcba1a79e7b 303
Info 1:bbcba1a79e7b 304 Uni2M.connectModule(); //connect---
Info 1:bbcba1a79e7b 305
Info 1:bbcba1a79e7b 306 SW1 = Din1.read();
Info 1:bbcba1a79e7b 307 SW2 = Din2.read();
Info 1:bbcba1a79e7b 308
Info 1:bbcba1a79e7b 309 if(SW1 == 1){
Info 1:bbcba1a79e7b 310 Dout = 1;
Info 1:bbcba1a79e7b 311 Dout2 = 1;
Info 1:bbcba1a79e7b 312 Dout3 = 1;
Info 1:bbcba1a79e7b 313 }else{
Info 1:bbcba1a79e7b 314 Dout = 0;
Info 1:bbcba1a79e7b 315 Dout2 = 0;
Info 1:bbcba1a79e7b 316 Dout3 = 0;
Info 1:bbcba1a79e7b 317 }
Info 1:bbcba1a79e7b 318 if(SW2 == 1){
Info 1:bbcba1a79e7b 319 Dout1 = 1;
Info 1:bbcba1a79e7b 320 Dout4 = 1;
Info 1:bbcba1a79e7b 321 Dout5 = 1;
Info 1:bbcba1a79e7b 322 }else{
Info 1:bbcba1a79e7b 323 Dout1 = 0;
Info 1:bbcba1a79e7b 324 Dout4 = 0;
Info 1:bbcba1a79e7b 325 Dout5 = 0;
Info 1:bbcba1a79e7b 326 }
Info 1:bbcba1a79e7b 327
Info 1:bbcba1a79e7b 328 Uni2M.disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 329
Info 1:bbcba1a79e7b 330 /*++busData;
Info 1:bbcba1a79e7b 331 if(busData >= 0x80)
Info 1:bbcba1a79e7b 332 busData = 0x00;
Info 1:bbcba1a79e7b 333 */
Info 1:bbcba1a79e7b 334
Info 1:bbcba1a79e7b 335 if(busData == 0x00)
Info 1:bbcba1a79e7b 336 busData = 0x7F;
Info 1:bbcba1a79e7b 337
Info 1:bbcba1a79e7b 338 --busData;
Info 1:bbcba1a79e7b 339 }
Info 1:bbcba1a79e7b 340 }
Info 1:bbcba1a79e7b 341 //***************************************************************************************
Info 1:bbcba1a79e7b 342
Info 1:bbcba1a79e7b 343
Info 1:bbcba1a79e7b 344 //Smple functions
Info 1:bbcba1a79e7b 345 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 346 //Simple read 12bit 2ch AD module
Info 1:bbcba1a79e7b 347 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 348 int read12bitAD(MCUGear *mcugear, char ch){
Info 1:bbcba1a79e7b 349
Info 1:bbcba1a79e7b 350 char sendData;
Info 1:bbcba1a79e7b 351 int whoami[3];
Info 1:bbcba1a79e7b 352
Info 1:bbcba1a79e7b 353 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 354 spi.frequency(1000000);//1MHz
Info 1:bbcba1a79e7b 355 if(ch == 0){
Info 1:bbcba1a79e7b 356 sendData = 0x06;
Info 1:bbcba1a79e7b 357 }else if(ch == 1){
Info 1:bbcba1a79e7b 358 sendData = 0x07;
Info 1:bbcba1a79e7b 359 }else{
Info 1:bbcba1a79e7b 360 return -1;
Info 1:bbcba1a79e7b 361 }
Info 1:bbcba1a79e7b 362 //12bit AD Mobdule----------------
Info 1:bbcba1a79e7b 363 // cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 364 // mcugear->connectModule(); //connect---
Info 1:bbcba1a79e7b 365 spi.format(14,0); //Change SPI format mbed only
Info 1:bbcba1a79e7b 366 cs = 0;
Info 1:bbcba1a79e7b 367 spi.write(sendData);
Info 1:bbcba1a79e7b 368 wait_us(1);
Info 1:bbcba1a79e7b 369 whoami[0] = spi.write(0x2000)-0x2000; //get data from AD device
Info 1:bbcba1a79e7b 370 cs = 1;
Info 1:bbcba1a79e7b 371 // mcugear->disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 372 return whoami[0];
Info 1:bbcba1a79e7b 373 #endif
Info 1:bbcba1a79e7b 374
Info 1:bbcba1a79e7b 375 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 376 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 377 if(ch == 0){
Info 1:bbcba1a79e7b 378 sendData = 0x80;
Info 1:bbcba1a79e7b 379 }else if(ch == 1){
Info 1:bbcba1a79e7b 380 sendData = 0xC0;
Info 1:bbcba1a79e7b 381 }else{
Info 1:bbcba1a79e7b 382 return -1;
Info 1:bbcba1a79e7b 383 }
Info 1:bbcba1a79e7b 384
Info 1:bbcba1a79e7b 385 //12bit AD Mobdule----------------
Info 1:bbcba1a79e7b 386 // cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 387 // mcugear->connectModule(); //connect---
Info 1:bbcba1a79e7b 388
Info 1:bbcba1a79e7b 389 cs = 0;
Info 1:bbcba1a79e7b 390 //FRDM KL25Z is 8-bit format.
Info 1:bbcba1a79e7b 391 whoami[2] = spi.write(0x01);//0000 0001
Info 1:bbcba1a79e7b 392 whoami[2] = spi.write(sendData);
Info 1:bbcba1a79e7b 393 whoami[0] = whoami[2]<<8;
Info 1:bbcba1a79e7b 394 whoami[0] = whoami[0] + spi.write(0x00) - 0xE000;//0000 0000
Info 1:bbcba1a79e7b 395 // whoami[2] = 0;//clear buffer
Info 1:bbcba1a79e7b 396 cs = 1;
Info 1:bbcba1a79e7b 397 // mcugear->disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 398 return whoami[0];
Info 1:bbcba1a79e7b 399 #endif
Info 1:bbcba1a79e7b 400 }
Info 1:bbcba1a79e7b 401
Info 1:bbcba1a79e7b 402 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 403 //IO setting for LCD module
Info 1:bbcba1a79e7b 404 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 405 void IOLCD(MCUGear *mcugear){
Info 1:bbcba1a79e7b 406 uint8_t fio[12];
Info 1:bbcba1a79e7b 407 mcugear->detect_module(fio); // detect LCDM
Info 1:bbcba1a79e7b 408
Info 1:bbcba1a79e7b 409 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 410 mcugear->savePinSetting(0, IO_MBED_P21, IO_REG_OUT_DIR, fio[0]);
Info 1:bbcba1a79e7b 411 mcugear->savePinSetting(1, IO_MBED_P22, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 412 mcugear->savePinSetting(2, IO_MBED_P23, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 413 mcugear->savePinSetting(3, IO_MBED_P24, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 414 mcugear->savePinSetting(4, IO_MBED_P25, IO_REG_OUT_DIR, fio[4]);
Info 1:bbcba1a79e7b 415 mcugear->savePinSetting(5, IO_MBED_P26, IO_REG_OUT_DIR, fio[5]);
Info 1:bbcba1a79e7b 416 #endif
Info 1:bbcba1a79e7b 417
Info 1:bbcba1a79e7b 418 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 419 mcugear->savePinSetting(0, IO_MBED_PTB0, IO_REG_OUT_DIR, fio[0]);
Info 1:bbcba1a79e7b 420 mcugear->savePinSetting(1, IO_MBED_PTB1, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 421 mcugear->savePinSetting(2, IO_MBED_PTD4, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 422 mcugear->savePinSetting(3, IO_MBED_PTA12, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 423 mcugear->savePinSetting(4, IO_MBED_PTA4, IO_REG_OUT_DIR, fio[4]);
Info 1:bbcba1a79e7b 424 mcugear->savePinSetting(5, IO_MBED_PTA5, IO_REG_OUT_DIR, fio[5]);
Info 1:bbcba1a79e7b 425 #endif
Info 1:bbcba1a79e7b 426
Info 1:bbcba1a79e7b 427 #ifdef BOOST_MODE
Info 1:bbcba1a79e7b 428 mcugear->makeCircuit();
Info 1:bbcba1a79e7b 429 #endif
Info 1:bbcba1a79e7b 430 }
Info 1:bbcba1a79e7b 431
Info 1:bbcba1a79e7b 432
Info 1:bbcba1a79e7b 433 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 434 //IO setting for 12bit DA module
Info 1:bbcba1a79e7b 435 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 436 void IO12bitDA(MCUGear *mcugear){
Info 1:bbcba1a79e7b 437 uint8_t fio[12];
Info 1:bbcba1a79e7b 438 //---------------------
Info 1:bbcba1a79e7b 439 mcugear->detect_module(fio);
Info 1:bbcba1a79e7b 440 //Dout(p15),mosi(p5),sck(p7),cs(p8)
Info 1:bbcba1a79e7b 441 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 442 mcugear->savePinSetting(0, IO_MBED_P15, IO_REG_OUT_DIR, fio[0]);
Info 1:bbcba1a79e7b 443 mcugear->savePinSetting(1, IO_MBED_P5, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 444 mcugear->savePinSetting(2, IO_MBED_P7, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 445 mcugear->savePinSetting(3, IO_MBED_P8, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 446 #endif
Info 1:bbcba1a79e7b 447
Info 1:bbcba1a79e7b 448 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 449 //Dout(PTA13),mosi(PTD2),sck(PTD1),cs(PTD0)
Info 1:bbcba1a79e7b 450 mcugear->savePinSetting(0, IO_MBED_PTA13, IO_REG_OUT_DIR, fio[0]);
Info 1:bbcba1a79e7b 451 mcugear->savePinSetting(1, IO_MBED_PTD2, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 452 mcugear->savePinSetting(2, IO_MBED_PTD1, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 453 mcugear->savePinSetting(3, IO_MBED_PTD0, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 454 #endif
Info 1:bbcba1a79e7b 455
Info 1:bbcba1a79e7b 456 #ifdef BOOST_MODE
Info 1:bbcba1a79e7b 457 mcugear->makeCircuit();
Info 1:bbcba1a79e7b 458 #endif
Info 1:bbcba1a79e7b 459 }
Info 1:bbcba1a79e7b 460
Info 1:bbcba1a79e7b 461 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 462 //Simple write for 12bit DA module
Info 1:bbcba1a79e7b 463 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 464 void write12bitDA(MCUGear *mcugear, int data){
Info 1:bbcba1a79e7b 465
Info 1:bbcba1a79e7b 466 //12bit SPI DA module----------------
Info 1:bbcba1a79e7b 467
Info 1:bbcba1a79e7b 468 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 469 // spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 470 spi.frequency(20000000); //20MHz
Info 1:bbcba1a79e7b 471 spi.format(16,0); //Change SPI format
Info 1:bbcba1a79e7b 472 // mcugear->connectModule(); //connect---
Info 1:bbcba1a79e7b 473 cs = 0;
Info 1:bbcba1a79e7b 474 spi.write((0x3000)+(data)); //write 0011 1000 0000 0000
Info 1:bbcba1a79e7b 475 #endif
Info 1:bbcba1a79e7b 476
Info 1:bbcba1a79e7b 477 //12bit SPI DA module----------------
Info 1:bbcba1a79e7b 478 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 479 //spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 480 spi.frequency(20000000); //10MHz
Info 1:bbcba1a79e7b 481 //connection
Info 1:bbcba1a79e7b 482 // mcugear->connectModule(); //connect---
Info 1:bbcba1a79e7b 483 cs = 0;
Info 1:bbcba1a79e7b 484 spi.write((0x30)+((data>>8)&0x0F));//write 0011 0000
Info 1:bbcba1a79e7b 485 spi.write(data&0xFF);//write 0011 1000 0000 0000
Info 1:bbcba1a79e7b 486 #endif
Info 1:bbcba1a79e7b 487
Info 1:bbcba1a79e7b 488 wait_us(1); //over 15nsec
Info 1:bbcba1a79e7b 489 cs = 1; //CS high
Info 1:bbcba1a79e7b 490 wait_us(1); //over 40nsec
Info 1:bbcba1a79e7b 491 Dout=0; //ratch for DA out enable
Info 1:bbcba1a79e7b 492 wait_us(1); //over 100nsec
Info 1:bbcba1a79e7b 493 Dout=1; //reset ratch signal
Info 1:bbcba1a79e7b 494 // mcugear->disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 495 // wait_us(1); //wait after disconnect
Info 1:bbcba1a79e7b 496 }
Info 1:bbcba1a79e7b 497
Info 1:bbcba1a79e7b 498 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 499 //Simple write for 12bit 8ch AD module
Info 1:bbcba1a79e7b 500 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 501 int read12bit8chAD(MCUGear *mcugear, char ch){
Info 1:bbcba1a79e7b 502
Info 1:bbcba1a79e7b 503 char sendData;
Info 1:bbcba1a79e7b 504 int whoami[3];
Info 1:bbcba1a79e7b 505
Info 1:bbcba1a79e7b 506 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 507 // if((ch >= 0 )&&(ch < 8)){
Info 1:bbcba1a79e7b 508 if(ch < 8){
Info 1:bbcba1a79e7b 509 sendData = 0x18+ch; //0001 1000
Info 1:bbcba1a79e7b 510 }else{
Info 1:bbcba1a79e7b 511 return -1;
Info 1:bbcba1a79e7b 512 }
Info 1:bbcba1a79e7b 513
Info 1:bbcba1a79e7b 514 //12bit AD Mobdule----------------
Info 1:bbcba1a79e7b 515 spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 516 // cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 517 // mcugear->connectModule(); //connect---
Info 1:bbcba1a79e7b 518 spi.format(14,0); //Change SPI format mbed only
Info 1:bbcba1a79e7b 519 cs = 0;
Info 1:bbcba1a79e7b 520 spi.write(sendData);
Info 1:bbcba1a79e7b 521 whoami[0] = spi.write(0x0000)-0x2000; //get data from AD device
Info 1:bbcba1a79e7b 522 cs = 1;
Info 1:bbcba1a79e7b 523 // mcugear->disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 524 return whoami[0];
Info 1:bbcba1a79e7b 525 #endif
Info 1:bbcba1a79e7b 526
Info 1:bbcba1a79e7b 527 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 528 char sendData2;
Info 1:bbcba1a79e7b 529 //0000 0000 0110 00 00 [0000 0000 0000]
Info 1:bbcba1a79e7b 530 // if((ch >= 0 )&&(ch < 8)){
Info 1:bbcba1a79e7b 531 if(ch < 8){
Info 1:bbcba1a79e7b 532 sendData = 0x18+ch; //0001 1000
Info 1:bbcba1a79e7b 533 sendData2 = sendData >> 2;
Info 1:bbcba1a79e7b 534 sendData = sendData << 6;
Info 1:bbcba1a79e7b 535
Info 1:bbcba1a79e7b 536 }else{
Info 1:bbcba1a79e7b 537 return -1;
Info 1:bbcba1a79e7b 538 }
Info 1:bbcba1a79e7b 539
Info 1:bbcba1a79e7b 540 //12bit AD Mobdule----------------
Info 1:bbcba1a79e7b 541 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 542 // cs = 1; //reset CS pin
Info 1:bbcba1a79e7b 543 // mcugear->connectModule(); //connect---
Info 1:bbcba1a79e7b 544 cs = 0;
Info 1:bbcba1a79e7b 545 spi.write(sendData2);
Info 1:bbcba1a79e7b 546 whoami[2] = spi.write(sendData);
Info 1:bbcba1a79e7b 547 whoami[0] = whoami[2]<<8;
Info 1:bbcba1a79e7b 548 whoami[0] = whoami[0] + spi.write(0x00)-0xE000; //get data from AD device
Info 1:bbcba1a79e7b 549 cs = 1;
Info 1:bbcba1a79e7b 550 // mcugear->disconnectModule(); //disconnect---
Info 1:bbcba1a79e7b 551 return whoami[0];
Info 1:bbcba1a79e7b 552
Info 1:bbcba1a79e7b 553
Info 1:bbcba1a79e7b 554 #endif
Info 1:bbcba1a79e7b 555 }
Info 1:bbcba1a79e7b 556
Info 1:bbcba1a79e7b 557
Info 1:bbcba1a79e7b 558 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 559 //Simple universal module
Info 1:bbcba1a79e7b 560 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 561 void IOSHM(MCUGear *mcugear){
Info 1:bbcba1a79e7b 562
Info 1:bbcba1a79e7b 563 uint8_t fio[12];
Info 1:bbcba1a79e7b 564 // detect SHM
Info 1:bbcba1a79e7b 565 mcugear->detect_module(fio);
Info 1:bbcba1a79e7b 566 //CLK for ratch(1), DigialOut(2-8)
Info 1:bbcba1a79e7b 567
Info 1:bbcba1a79e7b 568 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 569 mcugear->savePinSetting(0, IO_MBED_P15, IO_REG_OUT_DIR, fio[0]);
Info 1:bbcba1a79e7b 570 mcugear->savePinSetting(1, IO_MBED_P16, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 571 mcugear->savePinSetting(2, IO_MBED_P21, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 572 mcugear->savePinSetting(3, IO_MBED_P22, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 573 mcugear->savePinSetting(4, IO_MBED_P23, IO_REG_OUT_DIR, fio[4]);
Info 1:bbcba1a79e7b 574 mcugear->savePinSetting(5, IO_MBED_P24, IO_REG_OUT_DIR, fio[5]);
Info 1:bbcba1a79e7b 575 mcugear->savePinSetting(6, IO_MBED_P25, IO_REG_OUT_DIR, fio[6]);
Info 1:bbcba1a79e7b 576 mcugear->savePinSetting(7, IO_MBED_P26, IO_REG_OUT_DIR, fio[7]);
Info 1:bbcba1a79e7b 577 #endif
Info 1:bbcba1a79e7b 578
Info 1:bbcba1a79e7b 579 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 580 //PTA1, PTA2, PTD4, PTA12, PTA4, PTA5, PTC8
Info 1:bbcba1a79e7b 581 mcugear->savePinSetting(0, IO_MBED_PTA13, IO_REG_OUT_DIR, fio[0]);
Info 1:bbcba1a79e7b 582 mcugear->savePinSetting(1, IO_MBED_PTA1, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 583 mcugear->savePinSetting(2, IO_MBED_PTA2, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 584 mcugear->savePinSetting(3, IO_MBED_PTD4, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 585 mcugear->savePinSetting(4, IO_MBED_PTA12, IO_REG_OUT_DIR, fio[4]);
Info 1:bbcba1a79e7b 586 mcugear->savePinSetting(5, IO_MBED_PTA4, IO_REG_OUT_DIR, fio[5]);
Info 1:bbcba1a79e7b 587 mcugear->savePinSetting(6, IO_MBED_PTA5, IO_REG_OUT_DIR, fio[6]);
Info 1:bbcba1a79e7b 588 mcugear->savePinSetting(7, IO_MBED_PTC8, IO_REG_OUT_DIR, fio[7]);
Info 1:bbcba1a79e7b 589 #endif
Info 1:bbcba1a79e7b 590
Info 1:bbcba1a79e7b 591 #ifdef BOOST_MODE
Info 1:bbcba1a79e7b 592 mcugear->makeCircuit();
Info 1:bbcba1a79e7b 593 #endif
Info 1:bbcba1a79e7b 594
Info 1:bbcba1a79e7b 595 }
Info 1:bbcba1a79e7b 596
Info 1:bbcba1a79e7b 597 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 598 //Simple universal module
Info 1:bbcba1a79e7b 599 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 600 void IOUni2M(MCUGear *mcugear){
Info 1:bbcba1a79e7b 601
Info 1:bbcba1a79e7b 602 uint8_t fio[12];
Info 1:bbcba1a79e7b 603 // detect SHM
Info 1:bbcba1a79e7b 604 mcugear->detect_module(fio);
Info 1:bbcba1a79e7b 605 //CLK for ratch(1), DigialOut(2-8)
Info 1:bbcba1a79e7b 606
Info 1:bbcba1a79e7b 607 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 608 mcugear->savePinSetting(0, IO_MBED_P9, IO_REG_IN_DIR, fio[0]); //input
Info 1:bbcba1a79e7b 609 mcugear->savePinSetting(1, IO_MBED_P10, IO_REG_IN_DIR, fio[1]); //input
Info 1:bbcba1a79e7b 610 mcugear->savePinSetting(2, IO_MBED_P15, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 611 mcugear->savePinSetting(3, IO_MBED_P16, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 612 mcugear->savePinSetting(4, IO_MBED_P21, IO_REG_OUT_DIR, fio[4]);
Info 1:bbcba1a79e7b 613 mcugear->savePinSetting(5, IO_MBED_P22, IO_REG_OUT_DIR, fio[5]);
Info 1:bbcba1a79e7b 614 mcugear->savePinSetting(6, IO_MBED_P23, IO_REG_OUT_DIR, fio[6]);
Info 1:bbcba1a79e7b 615 mcugear->savePinSetting(7, IO_MBED_P24, IO_REG_OUT_DIR, fio[7]);
Info 1:bbcba1a79e7b 616
Info 1:bbcba1a79e7b 617 #endif
Info 1:bbcba1a79e7b 618
Info 1:bbcba1a79e7b 619 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 620 //PTA1, PTA2, PTD4, PTA12, PTA4, PTA5, PTC8
Info 1:bbcba1a79e7b 621 mcugear->savePinSetting(0, IO_MBED_PTB0, IO_REG_IN_DIR, fio[0]);
Info 1:bbcba1a79e7b 622 mcugear->savePinSetting(1, IO_MBED_PTB1, IO_REG_IN_DIR, fio[1]);
Info 1:bbcba1a79e7b 623 mcugear->savePinSetting(2, IO_MBED_PTA13, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 624 mcugear->savePinSetting(3, IO_MBED_PTA1, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 625 mcugear->savePinSetting(4, IO_MBED_PTA2, IO_REG_OUT_DIR, fio[4]);
Info 1:bbcba1a79e7b 626 mcugear->savePinSetting(5, IO_MBED_PTD4, IO_REG_OUT_DIR, fio[5]);
Info 1:bbcba1a79e7b 627 mcugear->savePinSetting(6, IO_MBED_PTA12, IO_REG_OUT_DIR, fio[6]);
Info 1:bbcba1a79e7b 628 mcugear->savePinSetting(7, IO_MBED_PTA4, IO_REG_OUT_DIR, fio[7]);
Info 1:bbcba1a79e7b 629
Info 1:bbcba1a79e7b 630 #endif
Info 1:bbcba1a79e7b 631
Info 1:bbcba1a79e7b 632 #ifdef BOOST_MODE
Info 1:bbcba1a79e7b 633 mcugear->makeCircuit();
Info 1:bbcba1a79e7b 634 #endif
Info 1:bbcba1a79e7b 635
Info 1:bbcba1a79e7b 636 }
Info 1:bbcba1a79e7b 637
Info 1:bbcba1a79e7b 638
Info 1:bbcba1a79e7b 639
Info 1:bbcba1a79e7b 640 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 641 //Read from Multifunction module for 10bit AD mode
Info 1:bbcba1a79e7b 642 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 643 int read10bitAD(MCUGear *mcugear, int ch){
Info 1:bbcba1a79e7b 644 //Multi-function module
Info 1:bbcba1a79e7b 645 int setCh = 0;
Info 1:bbcba1a79e7b 646 int getData;
Info 1:bbcba1a79e7b 647
Info 1:bbcba1a79e7b 648 // mcugear->connectModule();
Info 1:bbcba1a79e7b 649
Info 1:bbcba1a79e7b 650 switch(ch){
Info 1:bbcba1a79e7b 651 case 1:
Info 1:bbcba1a79e7b 652 setCh = 3;
Info 1:bbcba1a79e7b 653 break;
Info 1:bbcba1a79e7b 654 case 2:
Info 1:bbcba1a79e7b 655 setCh = 1;
Info 1:bbcba1a79e7b 656 break;
Info 1:bbcba1a79e7b 657 case 3:
Info 1:bbcba1a79e7b 658 setCh = 2;
Info 1:bbcba1a79e7b 659 break;
Info 1:bbcba1a79e7b 660
Info 1:bbcba1a79e7b 661 default:
Info 1:bbcba1a79e7b 662 return -1;
Info 1:bbcba1a79e7b 663 }
Info 1:bbcba1a79e7b 664
Info 1:bbcba1a79e7b 665 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 666 spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 667 spi.format(16,0);
Info 1:bbcba1a79e7b 668 cs = 0;
Info 1:bbcba1a79e7b 669 spi.write(setCh);
Info 1:bbcba1a79e7b 670 cs = 1;
Info 1:bbcba1a79e7b 671 wait_us(1);
Info 1:bbcba1a79e7b 672 cs = 0;
Info 1:bbcba1a79e7b 673 getData = spi.write(0);
Info 1:bbcba1a79e7b 674 cs = 1;
Info 1:bbcba1a79e7b 675 wait_us(1);
Info 1:bbcba1a79e7b 676 #endif
Info 1:bbcba1a79e7b 677
Info 1:bbcba1a79e7b 678 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 679 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 680 cs = 0;
Info 1:bbcba1a79e7b 681 spi.write(0x00);
Info 1:bbcba1a79e7b 682 spi.write(setCh);
Info 1:bbcba1a79e7b 683 cs = 1;
Info 1:bbcba1a79e7b 684 wait_us(1);
Info 1:bbcba1a79e7b 685 cs = 0;
Info 1:bbcba1a79e7b 686 getData = spi.write(0);
Info 1:bbcba1a79e7b 687 getData = (getData<<8)+spi.write(0);
Info 1:bbcba1a79e7b 688 cs = 1;
Info 1:bbcba1a79e7b 689 wait_us(1);
Info 1:bbcba1a79e7b 690 #endif
Info 1:bbcba1a79e7b 691
Info 1:bbcba1a79e7b 692
Info 1:bbcba1a79e7b 693 // mcugear->disconnectModule();
Info 1:bbcba1a79e7b 694 // wait_ms(1);
Info 1:bbcba1a79e7b 695 return getData;
Info 1:bbcba1a79e7b 696 }
Info 1:bbcba1a79e7b 697
Info 1:bbcba1a79e7b 698 #ifdef PWM_MODE
Info 1:bbcba1a79e7b 699 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 700 // Initialize PWM
Info 1:bbcba1a79e7b 701 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 702 void initPWM(MCUGear *mcugear, unsigned int Divider, unsigned int friquency, unsigned int duty0, unsigned int duty1, unsigned int duty2){
Info 1:bbcba1a79e7b 703
Info 1:bbcba1a79e7b 704 // mcugear->connectModule();
Info 1:bbcba1a79e7b 705
Info 1:bbcba1a79e7b 706 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 707 spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 708 spi.format(16,0);
Info 1:bbcba1a79e7b 709 cs = 0;
Info 1:bbcba1a79e7b 710 //spi.write(4800);//Divider
Info 1:bbcba1a79e7b 711 spi.write(Divider);//Divider
Info 1:bbcba1a79e7b 712 cs = 1;
Info 1:bbcba1a79e7b 713 wait_us(1);
Info 1:bbcba1a79e7b 714
Info 1:bbcba1a79e7b 715 cs = 0;
Info 1:bbcba1a79e7b 716 //spi.write(100);//friquency
Info 1:bbcba1a79e7b 717 spi.write(friquency);//friquency
Info 1:bbcba1a79e7b 718 cs = 1;
Info 1:bbcba1a79e7b 719 wait_us(1);
Info 1:bbcba1a79e7b 720
Info 1:bbcba1a79e7b 721 cs = 0;
Info 1:bbcba1a79e7b 722 spi.write(duty0);//Duty0
Info 1:bbcba1a79e7b 723 cs = 1;
Info 1:bbcba1a79e7b 724 wait_us(1);
Info 1:bbcba1a79e7b 725
Info 1:bbcba1a79e7b 726 cs = 0;
Info 1:bbcba1a79e7b 727 spi.write(duty1);//Duty1
Info 1:bbcba1a79e7b 728 cs = 1;
Info 1:bbcba1a79e7b 729 wait_us(1);
Info 1:bbcba1a79e7b 730
Info 1:bbcba1a79e7b 731 cs = 0;
Info 1:bbcba1a79e7b 732 spi.write(duty2);//Duty2
Info 1:bbcba1a79e7b 733 cs = 1;
Info 1:bbcba1a79e7b 734 wait_us(1);
Info 1:bbcba1a79e7b 735 #endif
Info 1:bbcba1a79e7b 736
Info 1:bbcba1a79e7b 737
Info 1:bbcba1a79e7b 738 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 739 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 740 cs = 0;
Info 1:bbcba1a79e7b 741 spi.write(Divider >> 8);//Divider
Info 1:bbcba1a79e7b 742 spi.write(0x00FF & Divider);//Divider
Info 1:bbcba1a79e7b 743 cs = 1;
Info 1:bbcba1a79e7b 744 wait_us(1);
Info 1:bbcba1a79e7b 745
Info 1:bbcba1a79e7b 746 cs = 0;
Info 1:bbcba1a79e7b 747 spi.write(friquency >> 8);//friquency
Info 1:bbcba1a79e7b 748 spi.write(0x00FF & friquency);//friquency
Info 1:bbcba1a79e7b 749 cs = 1;
Info 1:bbcba1a79e7b 750 wait_us(1);
Info 1:bbcba1a79e7b 751
Info 1:bbcba1a79e7b 752 cs = 0;
Info 1:bbcba1a79e7b 753 spi.write(duty0 >> 8);//Duty0
Info 1:bbcba1a79e7b 754 spi.write(0x00FF & duty0);//Duty0
Info 1:bbcba1a79e7b 755 cs = 1;
Info 1:bbcba1a79e7b 756 wait_us(1);
Info 1:bbcba1a79e7b 757
Info 1:bbcba1a79e7b 758 cs = 0;
Info 1:bbcba1a79e7b 759 spi.write(duty1 >> 8);//Duty1
Info 1:bbcba1a79e7b 760 spi.write(0x00FF & duty1);//Duty1
Info 1:bbcba1a79e7b 761 cs = 1;
Info 1:bbcba1a79e7b 762 wait_us(1);
Info 1:bbcba1a79e7b 763
Info 1:bbcba1a79e7b 764 cs = 0;
Info 1:bbcba1a79e7b 765 spi.write(duty2 >> 8);//Duty2
Info 1:bbcba1a79e7b 766 spi.write(0x00FF & duty2);//Duty2
Info 1:bbcba1a79e7b 767 cs = 1;
Info 1:bbcba1a79e7b 768 wait_us(1);
Info 1:bbcba1a79e7b 769 #endif
Info 1:bbcba1a79e7b 770
Info 1:bbcba1a79e7b 771 // mcugear->disconnectModule();
Info 1:bbcba1a79e7b 772 }
Info 1:bbcba1a79e7b 773
Info 1:bbcba1a79e7b 774 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 775 // changing PWM friquency
Info 1:bbcba1a79e7b 776 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 777 void PWMfriq(MCUGear *mcugear, unsigned int friquency){
Info 1:bbcba1a79e7b 778
Info 1:bbcba1a79e7b 779 // mcugear->connectModule();
Info 1:bbcba1a79e7b 780 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 781 spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 782 spi.format(16,0);
Info 1:bbcba1a79e7b 783 cs = 0;
Info 1:bbcba1a79e7b 784 spi.write(friquency);//friquency
Info 1:bbcba1a79e7b 785 cs = 1;
Info 1:bbcba1a79e7b 786 wait_us(1);
Info 1:bbcba1a79e7b 787 #endif
Info 1:bbcba1a79e7b 788
Info 1:bbcba1a79e7b 789 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 790 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 791 cs = 0;
Info 1:bbcba1a79e7b 792 spi.write(friquency >> 8);//Divider
Info 1:bbcba1a79e7b 793 spi.write(0x00FF & friquency);//Divider
Info 1:bbcba1a79e7b 794 cs = 1;
Info 1:bbcba1a79e7b 795 wait_us(1);
Info 1:bbcba1a79e7b 796 #endif
Info 1:bbcba1a79e7b 797
Info 1:bbcba1a79e7b 798 // mcugear->disconnectModule();
Info 1:bbcba1a79e7b 799 }
Info 1:bbcba1a79e7b 800
Info 1:bbcba1a79e7b 801 void PWMDuty(MCUGear *mcugear, int ch, unsigned int Duty){
Info 1:bbcba1a79e7b 802
Info 1:bbcba1a79e7b 803 //data format
Info 1:bbcba1a79e7b 804 //15-12:setting(Header)
Info 1:bbcba1a79e7b 805 // 0 :stop PWM out
Info 1:bbcba1a79e7b 806 // 1 :start PWM out
Info 1:bbcba1a79e7b 807 // 2 :Frequency setting
Info 1:bbcba1a79e7b 808 // 3 :Duty0 setting
Info 1:bbcba1a79e7b 809 // 4 :Duty1 setting
Info 1:bbcba1a79e7b 810 // 5 :Duty2 setting
Info 1:bbcba1a79e7b 811 // other :stop PWM out
Info 1:bbcba1a79e7b 812 //11-0:Data
Info 1:bbcba1a79e7b 813
Info 1:bbcba1a79e7b 814 // mcugear->connectModule();
Info 1:bbcba1a79e7b 815
Info 1:bbcba1a79e7b 816 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 817 spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 818 spi.format(16,0);
Info 1:bbcba1a79e7b 819 cs = 0;
Info 1:bbcba1a79e7b 820 switch (ch){
Info 1:bbcba1a79e7b 821 case 1:
Info 1:bbcba1a79e7b 822 spi.write(0x3000 + Duty); //Duty0
Info 1:bbcba1a79e7b 823 case 2:
Info 1:bbcba1a79e7b 824 spi.write(0x4000 + Duty); //Duty0
Info 1:bbcba1a79e7b 825 case 3:
Info 1:bbcba1a79e7b 826 spi.write(0x5000 + Duty); //Duty0
Info 1:bbcba1a79e7b 827 default:
Info 1:bbcba1a79e7b 828 break;
Info 1:bbcba1a79e7b 829 }
Info 1:bbcba1a79e7b 830
Info 1:bbcba1a79e7b 831 cs = 1;
Info 1:bbcba1a79e7b 832 #endif
Info 1:bbcba1a79e7b 833
Info 1:bbcba1a79e7b 834 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 835 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 836 cs = 0;
Info 1:bbcba1a79e7b 837 switch (ch){
Info 1:bbcba1a79e7b 838 case 1:
Info 1:bbcba1a79e7b 839 spi.write((0x3000 + Duty) >> 8);//Divider
Info 1:bbcba1a79e7b 840 spi.write(0x00FF & (0x3000 + Duty));//Divider
Info 1:bbcba1a79e7b 841 case 2:
Info 1:bbcba1a79e7b 842 spi.write((0x4000 + Duty) >> 8);//Divider
Info 1:bbcba1a79e7b 843 spi.write(0x00FF & (0x4000 + Duty));//Divider
Info 1:bbcba1a79e7b 844 case 3:
Info 1:bbcba1a79e7b 845 spi.write((0x5000 + Duty) >> 8);//Divider
Info 1:bbcba1a79e7b 846 spi.write(0x00FF & (0x5000 + Duty));//Divider
Info 1:bbcba1a79e7b 847 default:
Info 1:bbcba1a79e7b 848 break;
Info 1:bbcba1a79e7b 849 }
Info 1:bbcba1a79e7b 850
Info 1:bbcba1a79e7b 851 cs = 1;
Info 1:bbcba1a79e7b 852 #endif
Info 1:bbcba1a79e7b 853
Info 1:bbcba1a79e7b 854 // mcugear->disconnectModule();
Info 1:bbcba1a79e7b 855
Info 1:bbcba1a79e7b 856 }
Info 1:bbcba1a79e7b 857
Info 1:bbcba1a79e7b 858
Info 1:bbcba1a79e7b 859 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 860 // Stop PWM
Info 1:bbcba1a79e7b 861 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 862 void StopPWM(MCUGear *mcugear){
Info 1:bbcba1a79e7b 863
Info 1:bbcba1a79e7b 864 // mcugear->connectModule();
Info 1:bbcba1a79e7b 865
Info 1:bbcba1a79e7b 866 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 867 spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 868 spi.format(16,0);
Info 1:bbcba1a79e7b 869 cs = 0;
Info 1:bbcba1a79e7b 870 spi.write(0x1000);//stop
Info 1:bbcba1a79e7b 871 cs = 1;
Info 1:bbcba1a79e7b 872 #endif
Info 1:bbcba1a79e7b 873
Info 1:bbcba1a79e7b 874 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 875 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 876 cs = 0;
Info 1:bbcba1a79e7b 877 spi.write(0x10);//Duty1
Info 1:bbcba1a79e7b 878 spi.write(0x00);//Duty1
Info 1:bbcba1a79e7b 879 cs = 1;
Info 1:bbcba1a79e7b 880 #endif
Info 1:bbcba1a79e7b 881
Info 1:bbcba1a79e7b 882 // mcugear->disconnectModule();
Info 1:bbcba1a79e7b 883 }
Info 1:bbcba1a79e7b 884
Info 1:bbcba1a79e7b 885 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 886 // Start PWM
Info 1:bbcba1a79e7b 887 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 888 void StartPWM(MCUGear *mcugear){
Info 1:bbcba1a79e7b 889
Info 1:bbcba1a79e7b 890 // mcugear->connectModule();
Info 1:bbcba1a79e7b 891
Info 1:bbcba1a79e7b 892 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 893 spi.frequency(1000000); //1MHz
Info 1:bbcba1a79e7b 894 spi.format(16,0);
Info 1:bbcba1a79e7b 895 cs = 0;
Info 1:bbcba1a79e7b 896 spi.write(0x6000);//start
Info 1:bbcba1a79e7b 897 cs = 1;
Info 1:bbcba1a79e7b 898 #endif
Info 1:bbcba1a79e7b 899
Info 1:bbcba1a79e7b 900 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 901 spi.frequency(2000000); //1MHz for KL25Z
Info 1:bbcba1a79e7b 902 cs = 0;
Info 1:bbcba1a79e7b 903 spi.write(0x60);//start
Info 1:bbcba1a79e7b 904 spi.write(0x00);//start
Info 1:bbcba1a79e7b 905 cs = 1;
Info 1:bbcba1a79e7b 906 #endif
Info 1:bbcba1a79e7b 907
Info 1:bbcba1a79e7b 908 // mcugear->disconnectModule();
Info 1:bbcba1a79e7b 909 }
Info 1:bbcba1a79e7b 910
Info 1:bbcba1a79e7b 911
Info 1:bbcba1a79e7b 912 #endif
Info 1:bbcba1a79e7b 913
Info 1:bbcba1a79e7b 914 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 915 //IO setting for Multifunction module
Info 1:bbcba1a79e7b 916 //----------------------------------------------------------------------------------
Info 1:bbcba1a79e7b 917 void IOSimpleSPI(MCUGear *mcugear){
Info 1:bbcba1a79e7b 918 uint8_t fio[12];
Info 1:bbcba1a79e7b 919 mcugear->detect_module(fio);
Info 1:bbcba1a79e7b 920
Info 1:bbcba1a79e7b 921 #ifdef LPC1768_mbed
Info 1:bbcba1a79e7b 922 //miso(p6),mosi(p5),sck(p7),cs(p8)
Info 1:bbcba1a79e7b 923 mcugear->savePinSetting(0, IO_MBED_P6, IO_REG_IN_DIR, fio[0]);
Info 1:bbcba1a79e7b 924 mcugear->savePinSetting(1, IO_MBED_P5, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 925 mcugear->savePinSetting(2, IO_MBED_P7, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 926 mcugear->savePinSetting(3, IO_MBED_P8, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 927 #endif
Info 1:bbcba1a79e7b 928
Info 1:bbcba1a79e7b 929 #ifdef FS_KL25Z
Info 1:bbcba1a79e7b 930 //miso(PTD3),mosi(PTD2),sck(PTD1),cs(PTD0)
Info 1:bbcba1a79e7b 931 mcugear->savePinSetting(0, IO_MBED_PTD3, IO_REG_IN_DIR, fio[0]);
Info 1:bbcba1a79e7b 932 mcugear->savePinSetting(1, IO_MBED_PTD2, IO_REG_OUT_DIR, fio[1]);
Info 1:bbcba1a79e7b 933 mcugear->savePinSetting(2, IO_MBED_PTD1, IO_REG_OUT_DIR, fio[2]);
Info 1:bbcba1a79e7b 934 mcugear->savePinSetting(3, IO_MBED_PTD0, IO_REG_OUT_DIR, fio[3]);
Info 1:bbcba1a79e7b 935 #endif
Info 1:bbcba1a79e7b 936
Info 1:bbcba1a79e7b 937 #ifdef BOOST_MODE
Info 1:bbcba1a79e7b 938 mcugear->makeCircuit();
Info 1:bbcba1a79e7b 939 #endif
Info 1:bbcba1a79e7b 940 }
Info 1:bbcba1a79e7b 941
Info 1:bbcba1a79e7b 942 //end of sample functions----------------------------------------------------
Info 1:bbcba1a79e7b 943
Info 1:bbcba1a79e7b 944