Davi Cussan / Mbed 2 deprecated pc052c_configurator_original

Dependencies:   mbed

Committer:
sagara17
Date:
Thu Jun 29 10:38:23 2017 +0000
Revision:
4:dd76f4ee29fd
Parent:
3:8e29c3da6961
Child:
5:8eefbd5f77aa
update 29th June 2017

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sagara17 3:8e29c3da6961 1 //pc052c_configurator
sagara17 3:8e29c3da6961 2 //S.V. Addepalli & P. Baesso - sagar.addepalli@iitb.ac.in
sagara17 3:8e29c3da6961 3 //This firmware can be installed on a KL25Z board and provides
sagara17 3:8e29c3da6961 4 //a serial interface to configure the pc052c board.
sagara17 3:8e29c3da6961 5 //The communication between KL25Z and pc052c uses the SPI interface.
sagara17 3:8e29c3da6961 6
sagara17 3:8e29c3da6961 7 #include "mbed.h"
sagara17 3:8e29c3da6961 8 #include <led_options.h>
sagara17 3:8e29c3da6961 9 #include <spi_functions.h>
sagara17 3:8e29c3da6961 10 #include <vector>
sagara17 3:8e29c3da6961 11 #include <string>
sagara17 3:8e29c3da6961 12
sagara17 3:8e29c3da6961 13 std::vector<std::string> tokenize(const std::string& str, const std::string& delim);
sagara17 3:8e29c3da6961 14 void doCommands(std::vector<std::string>& tokens);
sagara17 3:8e29c3da6961 15 using namespace std;
sagara17 3:8e29c3da6961 16
sagara17 3:8e29c3da6961 17 // DEFINE SERIAL INTERFACE AND PINS USED BY THE SPI PROTOCOL
sagara17 3:8e29c3da6961 18 //Serial pc(USccBTX, USBRX);
sagara17 3:8e29c3da6961 19 Serial pc(USBTX, USBRX); // tx, rx
sagara17 3:8e29c3da6961 20 DigitalOut myled(LED1);
sagara17 3:8e29c3da6961 21 SPI dac_port1(PTD2, PTD3, PTD1); //mosi, miso, sclk //SPI0
sagara17 3:8e29c3da6961 22 SPI dac_port2(PTD2, PTC6, PTD1); //SPI0
sagara17 3:8e29c3da6961 23 SPI dac_port3(PTD2, PTC7, PTD1); //SPI0
sagara17 3:8e29c3da6961 24 SPI dac_port4(PTD2, PTA16, PTD1); //SPI0
sagara17 3:8e29c3da6961 25 SPI dac_port5(PTD2, PTA17, PTD1); //SPI0
sagara17 3:8e29c3da6961 26 SPI dac_port6(PTE3, PTD7, PTE2); //SPI1
sagara17 3:8e29c3da6961 27 SPI dac_port7(PTE3, PTE1, PTE2); //SPI1
sagara17 3:8e29c3da6961 28 SPI dac_port8(PTE3, PTD6, PTE2); //SPI1
sagara17 3:8e29c3da6961 29 DigitalOut sync1(PTD5, 1);// Board 1 slave select. Initialize to high
sagara17 3:8e29c3da6961 30 DigitalOut sync2(PTD0, 1); // Board 2 slave select. Initialize to high good to go
sagara17 3:8e29c3da6961 31 DigitalOut sync3(PTE4, 1); // Board 3 slave select. Initialize to high GOOD TO GO
sagara17 4:dd76f4ee29fd 32 DigitalOut sync4(PTC5, 1);// Board 4 slave select. Initialize to high GOOD TO GO
sagara17 3:8e29c3da6961 33 DigitalOut sync5(PTB10, 1); // Board 5 slave select. Initialize to high good to go
sagara17 4:dd76f4ee29fd 34 DigitalOut sync6(PTB11, 1);// Board 6 slave select. Initialize to high
sagara17 3:8e29c3da6961 35 DigitalOut sync7(PTD4, 1);// Board 7 slave select. Initialize to high good to go
sagara17 3:8e29c3da6961 36 DigitalOut sync8(PTC4, 1); // Board 8 slave select. Initialize to high good to go
sagara17 3:8e29c3da6961 37 //DigitalOut ldac(PTD7);
sagara17 3:8e29c3da6961 38
sagara17 3:8e29c3da6961 39 unsigned short myData;
sagara17 3:8e29c3da6961 40 int i, j;
sagara17 3:8e29c3da6961 41 int runFlag=1;
sagara17 3:8e29c3da6961 42 string myCommand;
sagara17 3:8e29c3da6961 43
sagara17 3:8e29c3da6961 44 int main()
sagara17 3:8e29c3da6961 45 {
sagara17 3:8e29c3da6961 46 pc.printf("\nStarting interface.\n");
sagara17 3:8e29c3da6961 47 pc.printf("Enter commands and press TAB to send.\n");
sagara17 3:8e29c3da6961 48 pc.printf("Type 'help'+TAB for a list of commands.\n");
sagara17 3:8e29c3da6961 49 flashLED( myled);
sagara17 3:8e29c3da6961 50 dac_port1.format(8,0); //SPI setup for dac chips 8 bit data, mode 1 (falling edge), mode 0 (rising edge, active clock is 1). Max7301A requires rising edge.
sagara17 3:8e29c3da6961 51 dac_port2.format(8,0);
sagara17 3:8e29c3da6961 52 dac_port3.format(8,0);
sagara17 3:8e29c3da6961 53 dac_port4.format(8,0);
sagara17 3:8e29c3da6961 54 dac_port5.format(8,0);
sagara17 3:8e29c3da6961 55 dac_port6.format(8,0);
sagara17 3:8e29c3da6961 56 dac_port7.format(8,0);
sagara17 3:8e29c3da6961 57 dac_port8.format(8,0);
sagara17 3:8e29c3da6961 58 dac_port1.frequency(100000);
sagara17 3:8e29c3da6961 59 dac_port2.frequency(100000);
sagara17 3:8e29c3da6961 60 dac_port3.frequency(100000);
sagara17 3:8e29c3da6961 61 dac_port4.frequency(100000);
sagara17 3:8e29c3da6961 62 dac_port5.frequency(100000);
sagara17 3:8e29c3da6961 63 dac_port6.frequency(100000);
sagara17 3:8e29c3da6961 64 dac_port7.frequency(100000);
sagara17 3:8e29c3da6961 65 dac_port8.frequency(100000);
sagara17 3:8e29c3da6961 66
sagara17 3:8e29c3da6961 67
sagara17 3:8e29c3da6961 68 //Initialize variable used to select cases
sagara17 3:8e29c3da6961 69 char cUser;
sagara17 3:8e29c3da6961 70 while(runFlag)
sagara17 3:8e29c3da6961 71 {
sagara17 3:8e29c3da6961 72 if(pc.readable())
sagara17 3:8e29c3da6961 73 {
sagara17 3:8e29c3da6961 74 pc.printf("Entering reading condition");
sagara17 3:8e29c3da6961 75 cUser = pc.getc();
sagara17 3:8e29c3da6961 76 wait(0.02f); //
sagara17 3:8e29c3da6961 77 if (cUser== '\t')// \n"
sagara17 3:8e29c3da6961 78 {
sagara17 3:8e29c3da6961 79 pc.printf("End of line detected. Parsing command.\n", myCommand.c_str());
sagara17 3:8e29c3da6961 80
sagara17 3:8e29c3da6961 81 //PARSE COMMANDS
sagara17 3:8e29c3da6961 82 string delim= " ";
sagara17 3:8e29c3da6961 83 vector<string> myTokens = tokenize(myCommand, delim);
sagara17 3:8e29c3da6961 84
sagara17 3:8e29c3da6961 85 pc.printf("%d TOKENS FOUND.\n", myTokens.size());
sagara17 3:8e29c3da6961 86 pc.printf("TOKENS= ");
sagara17 3:8e29c3da6961 87 for (int iTk=0; iTk <myTokens.size(); iTk++)
sagara17 3:8e29c3da6961 88 {
sagara17 3:8e29c3da6961 89 pc.printf("%s - ", myTokens.at(iTk).c_str());
sagara17 3:8e29c3da6961 90 }
sagara17 3:8e29c3da6961 91 pc.printf("\n");
sagara17 3:8e29c3da6961 92 doCommands(myTokens);
sagara17 3:8e29c3da6961 93
sagara17 3:8e29c3da6961 94
sagara17 3:8e29c3da6961 95 //RESET WORD
sagara17 3:8e29c3da6961 96 myCommand= "";
sagara17 3:8e29c3da6961 97 }
sagara17 3:8e29c3da6961 98 else
sagara17 3:8e29c3da6961 99 {
sagara17 3:8e29c3da6961 100 myCommand= myCommand+ cUser;
sagara17 3:8e29c3da6961 101 pc.printf("So far I got: %s\r", myCommand.c_str());
sagara17 3:8e29c3da6961 102 }
sagara17 3:8e29c3da6961 103 }
sagara17 3:8e29c3da6961 104
sagara17 3:8e29c3da6961 105
sagara17 3:8e29c3da6961 106 }
sagara17 3:8e29c3da6961 107 pc.printf("Interface stopped. Press the reset button to start again.\n");
sagara17 3:8e29c3da6961 108 wait(1.0f);
sagara17 3:8e29c3da6961 109
sagara17 3:8e29c3da6961 110 }
sagara17 3:8e29c3da6961 111
sagara17 3:8e29c3da6961 112
sagara17 3:8e29c3da6961 113 //////////////////////////////////////////
sagara17 3:8e29c3da6961 114 std::vector<std::string> tokenize(const std::string& str, const std::string& delim)
sagara17 3:8e29c3da6961 115 {
sagara17 3:8e29c3da6961 116 std::vector<std::string> tokens;
sagara17 3:8e29c3da6961 117
sagara17 3:8e29c3da6961 118 size_t pos = 0;
sagara17 3:8e29c3da6961 119 size_t loc = str.find_first_of(delim, pos);
sagara17 3:8e29c3da6961 120
sagara17 3:8e29c3da6961 121 if (loc == std::string::npos)
sagara17 3:8e29c3da6961 122 {
sagara17 3:8e29c3da6961 123 tokens.push_back(str);
sagara17 3:8e29c3da6961 124 }
sagara17 3:8e29c3da6961 125 else
sagara17 3:8e29c3da6961 126 {
sagara17 3:8e29c3da6961 127 while (pos != std::string::npos)
sagara17 3:8e29c3da6961 128 {
sagara17 3:8e29c3da6961 129 tokens.push_back(str.substr(pos, loc - pos));
sagara17 3:8e29c3da6961 130
sagara17 3:8e29c3da6961 131 pos = (loc == std::string::npos ? loc : loc + 1);
sagara17 3:8e29c3da6961 132 loc = str.find_first_of(delim, pos);
sagara17 3:8e29c3da6961 133 }
sagara17 3:8e29c3da6961 134 }
sagara17 3:8e29c3da6961 135 return tokens;
sagara17 3:8e29c3da6961 136 }
sagara17 3:8e29c3da6961 137
sagara17 3:8e29c3da6961 138 //////////////////////////////////////////
sagara17 3:8e29c3da6961 139 void doCommands(std::vector<std::string>& tokens)
sagara17 3:8e29c3da6961 140 {
sagara17 3:8e29c3da6961 141 // Parse the command tokens
sagara17 3:8e29c3da6961 142 string firstTk= tokens.at(0);
sagara17 3:8e29c3da6961 143 if(firstTk == "exit") //Exit condition
sagara17 3:8e29c3da6961 144 {
sagara17 3:8e29c3da6961 145 pc.printf("Stopping interface.\n");
sagara17 3:8e29c3da6961 146 runFlag=0;
sagara17 3:8e29c3da6961 147 }
sagara17 3:8e29c3da6961 148 else if(firstTk == "help") //Help
sagara17 3:8e29c3da6961 149 {
sagara17 3:8e29c3da6961 150 pc.printf("Type commands and press TAB to execute them.\n Valid commands are:\n'exit'\n'help'\n'powermode'\n'configure'\n'setport'\n'send'\n'pullallup'\n'pullalldown'\n'pulldown'\n'pullup'");
sagara17 3:8e29c3da6961 151 }
sagara17 3:8e29c3da6961 152 else if(firstTk == "configure")//Send configuration
sagara17 3:8e29c3da6961 153 {
sagara17 3:8e29c3da6961 154 pc.printf("Configuring all ports as outputs (low).\n");
sagara17 3:8e29c3da6961 155 sendConfiguration(pc, dac_port1, sync1);
sagara17 3:8e29c3da6961 156 sendConfiguration(pc, dac_port2, sync2);
sagara17 3:8e29c3da6961 157 sendConfiguration(pc, dac_port3, sync3);
sagara17 3:8e29c3da6961 158 sendConfiguration(pc, dac_port4, sync4);
sagara17 3:8e29c3da6961 159 sendConfiguration(pc, dac_port5, sync5);
sagara17 3:8e29c3da6961 160 sendConfiguration(pc, dac_port6, sync6);
sagara17 3:8e29c3da6961 161 sendConfiguration(pc, dac_port7, sync7);
sagara17 3:8e29c3da6961 162 sendConfiguration(pc, dac_port8, sync8);
sagara17 3:8e29c3da6961 163 pc.printf("Configuration done.\n");
sagara17 3:8e29c3da6961 164 }
sagara17 3:8e29c3da6961 165 else if(firstTk == "powermode")//Set the specific board's power mode (shutdown or active)
sagara17 3:8e29c3da6961 166 {
sagara17 3:8e29c3da6961 167
sagara17 3:8e29c3da6961 168 if (tokens.size() ==3)
sagara17 3:8e29c3da6961 169 {
sagara17 3:8e29c3da6961 170 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 171 int pMode = atoi(tokens.at(2).c_str());
sagara17 3:8e29c3da6961 172 if ((pMode==0) || (pMode==1))
sagara17 3:8e29c3da6961 173 {
sagara17 3:8e29c3da6961 174 if(brd==1)
sagara17 3:8e29c3da6961 175 {
sagara17 3:8e29c3da6961 176 powerMode(dac_port1, sync1, pMode);
sagara17 3:8e29c3da6961 177 pc.printf("Power mode for board 1 = %d.\n", pMode);
sagara17 3:8e29c3da6961 178 }
sagara17 3:8e29c3da6961 179 else if(brd==2)
sagara17 3:8e29c3da6961 180 {
sagara17 3:8e29c3da6961 181 powerMode(dac_port2, sync2, pMode);
sagara17 3:8e29c3da6961 182 pc.printf("Power mode for board 2 = %d.\n", pMode);
sagara17 3:8e29c3da6961 183 }
sagara17 3:8e29c3da6961 184 else if(brd==3)
sagara17 3:8e29c3da6961 185 {
sagara17 3:8e29c3da6961 186 powerMode(dac_port3, sync3, pMode);
sagara17 3:8e29c3da6961 187 pc.printf("Power mode for board 3 = %d.\n", pMode);
sagara17 3:8e29c3da6961 188 }
sagara17 3:8e29c3da6961 189 else if(brd==4)
sagara17 3:8e29c3da6961 190 {
sagara17 3:8e29c3da6961 191 powerMode(dac_port4, sync4, pMode);
sagara17 3:8e29c3da6961 192 pc.printf("Power mode for board 4 = %d.\n", pMode);
sagara17 3:8e29c3da6961 193 }
sagara17 3:8e29c3da6961 194 else if(brd==5)
sagara17 3:8e29c3da6961 195 {
sagara17 3:8e29c3da6961 196 powerMode(dac_port5, sync5, pMode);
sagara17 3:8e29c3da6961 197 pc.printf("Power mode for board 5 = %d.\n", pMode);
sagara17 3:8e29c3da6961 198 }
sagara17 3:8e29c3da6961 199 else if(brd==6)
sagara17 3:8e29c3da6961 200 {
sagara17 3:8e29c3da6961 201 powerMode(dac_port6, sync6, pMode);
sagara17 3:8e29c3da6961 202 pc.printf("Power mode for board 6 = %d.\n", pMode);
sagara17 3:8e29c3da6961 203 }
sagara17 3:8e29c3da6961 204 else if(brd==7)
sagara17 3:8e29c3da6961 205 {
sagara17 3:8e29c3da6961 206 powerMode(dac_port7, sync7, pMode);
sagara17 3:8e29c3da6961 207 pc.printf("Power mode for board 7 = %d.\n", pMode);
sagara17 3:8e29c3da6961 208 }
sagara17 3:8e29c3da6961 209 else if(brd==8)
sagara17 3:8e29c3da6961 210 {
sagara17 3:8e29c3da6961 211 powerMode(dac_port8, sync8, pMode);
sagara17 3:8e29c3da6961 212 pc.printf("Power mode for board 8 = %d.\n", pMode);
sagara17 3:8e29c3da6961 213 }
sagara17 3:8e29c3da6961 214 else
sagara17 3:8e29c3da6961 215 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 216 }
sagara17 3:8e29c3da6961 217 else
sagara17 3:8e29c3da6961 218 {
sagara17 3:8e29c3da6961 219 pc.printf("This function can only accept 0 or 1. You typed %d.\n");
sagara17 3:8e29c3da6961 220 }
sagara17 3:8e29c3da6961 221 }
sagara17 3:8e29c3da6961 222 else
sagara17 3:8e29c3da6961 223 {
sagara17 3:8e29c3da6961 224 pc.printf("Powermode command requires 2 parameters:\ntype 'powermode brdno 1' to power up the MAX6956\ntype 'powermode brdno 0' to shut it down.\n");
sagara17 3:8e29c3da6961 225 }
sagara17 3:8e29c3da6961 226 }
sagara17 3:8e29c3da6961 227 else if(firstTk == "setport")//Set power mode (shutdown or active)
sagara17 3:8e29c3da6961 228 {
sagara17 3:8e29c3da6961 229 if (tokens.size() ==4)
sagara17 3:8e29c3da6961 230 {
sagara17 3:8e29c3da6961 231 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 232 int portN = atoi(tokens.at(2).c_str());
sagara17 3:8e29c3da6961 233 int portState = atoi(tokens.at(3).c_str());
sagara17 3:8e29c3da6961 234 //int toWrite=0;
sagara17 3:8e29c3da6961 235 if (((portN > 11)&&(portN < 32))&&((portState==0) || (portState==1)))
sagara17 3:8e29c3da6961 236 {
sagara17 3:8e29c3da6961 237 if(brd==1)
sagara17 3:8e29c3da6961 238 {
sagara17 3:8e29c3da6961 239 pc.printf("Setting port %d to %d for board 1.\n", portN, portState);
sagara17 3:8e29c3da6961 240 setPort(dac_port1, sync1, portN, portState);
sagara17 3:8e29c3da6961 241 }
sagara17 3:8e29c3da6961 242 else if(brd==2)
sagara17 3:8e29c3da6961 243 {
sagara17 3:8e29c3da6961 244 pc.printf("Setting port %d to %d for board 2.\n", portN, portState);
sagara17 3:8e29c3da6961 245 setPort(dac_port2, sync2, portN, portState);
sagara17 3:8e29c3da6961 246 }
sagara17 3:8e29c3da6961 247 else if(brd==3)
sagara17 3:8e29c3da6961 248 {
sagara17 3:8e29c3da6961 249 pc.printf("Setting port %d to %d for board 3.\n", portN, portState);
sagara17 3:8e29c3da6961 250 setPort(dac_port3, sync3, portN, portState);
sagara17 3:8e29c3da6961 251 }
sagara17 3:8e29c3da6961 252 else if(brd==4)
sagara17 3:8e29c3da6961 253 {
sagara17 3:8e29c3da6961 254 pc.printf("Setting port %d to %d for board 4.\n", portN, portState);
sagara17 3:8e29c3da6961 255 setPort(dac_port4, sync4, portN, portState);
sagara17 3:8e29c3da6961 256 }
sagara17 3:8e29c3da6961 257 else if(brd==5)
sagara17 3:8e29c3da6961 258 {
sagara17 3:8e29c3da6961 259 pc.printf("Setting port %d to %d for board 5.\n", portN, portState);
sagara17 3:8e29c3da6961 260 setPort(dac_port5, sync5, portN, portState);
sagara17 3:8e29c3da6961 261 }
sagara17 3:8e29c3da6961 262 else if(brd==6)
sagara17 3:8e29c3da6961 263 {
sagara17 3:8e29c3da6961 264 pc.printf("Setting port %d to %d for board 6.\n", portN, portState);
sagara17 3:8e29c3da6961 265 setPort(dac_port6, sync6, portN, portState);
sagara17 3:8e29c3da6961 266 }
sagara17 3:8e29c3da6961 267 else if(brd==7)
sagara17 3:8e29c3da6961 268 {
sagara17 3:8e29c3da6961 269 pc.printf("Setting port %d to %d for board 7.\n", portN, portState);
sagara17 3:8e29c3da6961 270 setPort(dac_port7, sync7, portN, portState);
sagara17 3:8e29c3da6961 271 }
sagara17 3:8e29c3da6961 272 else if(brd==8)
sagara17 3:8e29c3da6961 273 {
sagara17 3:8e29c3da6961 274 pc.printf("Setting port %d to %d for board 8.\n", portN, portState);
sagara17 3:8e29c3da6961 275 setPort(dac_port8, sync8, portN, portState);
sagara17 3:8e29c3da6961 276 }
sagara17 3:8e29c3da6961 277 else
sagara17 3:8e29c3da6961 278 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 279 //toWrite=(portN + 0x0020)*0x0100 + portState;
sagara17 3:8e29c3da6961 280 //pc.printf("WORD %d (0x%04x)\n", toWrite, toWrite);
sagara17 3:8e29c3da6961 281 }
sagara17 3:8e29c3da6961 282 else
sagara17 3:8e29c3da6961 283 {
sagara17 3:8e29c3da6961 284 pc.printf("Valid ports number: 12 - 31. Valid status: 0 - 1. You typed port %d state %d.\n", portN, portState);
sagara17 3:8e29c3da6961 285 }
sagara17 3:8e29c3da6961 286
sagara17 3:8e29c3da6961 287 }
sagara17 3:8e29c3da6961 288 else
sagara17 3:8e29c3da6961 289 {
sagara17 3:8e29c3da6961 290 pc.printf("Setport requires 3 parameters:\ntype 'setport 5 21 1' to set port 21 on board 5 as 'high'\ntype 'setport 5 21 0' to set it 'low'.\nThis command assumes that the port is already configured as output.\n");
sagara17 3:8e29c3da6961 291 }
sagara17 3:8e29c3da6961 292 }
sagara17 3:8e29c3da6961 293 else if(firstTk=="pullallup")
sagara17 3:8e29c3da6961 294 {
sagara17 3:8e29c3da6961 295 if (tokens.size() ==1)
sagara17 3:8e29c3da6961 296 {
sagara17 3:8e29c3da6961 297 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 298 {
sagara17 3:8e29c3da6961 299 setPort(dac_port1, sync1, a, 1);
sagara17 3:8e29c3da6961 300 setPort(dac_port2, sync2, a, 1);
sagara17 3:8e29c3da6961 301 setPort(dac_port3, sync3, a, 1);
sagara17 3:8e29c3da6961 302 setPort(dac_port4, sync4, a, 1);
sagara17 3:8e29c3da6961 303 setPort(dac_port5, sync5, a, 1);
sagara17 3:8e29c3da6961 304 setPort(dac_port6, sync6, a, 1);
sagara17 3:8e29c3da6961 305 setPort(dac_port7, sync7, a, 1);
sagara17 3:8e29c3da6961 306 setPort(dac_port8, sync8, a, 1);
sagara17 3:8e29c3da6961 307 }
sagara17 3:8e29c3da6961 308 pc.printf("Pulling all ports up in boards 1 to 8.\n");
sagara17 3:8e29c3da6961 309 }
sagara17 3:8e29c3da6961 310 else
sagara17 3:8e29c3da6961 311 pc.printf("pullallup does not take any arguments. It pulls all ports up in all the boards.\n");
sagara17 3:8e29c3da6961 312 }
sagara17 3:8e29c3da6961 313 else if(firstTk=="pullup")
sagara17 3:8e29c3da6961 314 {
sagara17 3:8e29c3da6961 315 if(tokens.size() ==2)
sagara17 3:8e29c3da6961 316 {
sagara17 3:8e29c3da6961 317 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 318 if(brd==1)
sagara17 3:8e29c3da6961 319 {
sagara17 3:8e29c3da6961 320 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 321 setPort(dac_port1, sync1, a, 1);
sagara17 3:8e29c3da6961 322 pc.printf("Pulling all ports up in board 1.\n");
sagara17 3:8e29c3da6961 323 }
sagara17 3:8e29c3da6961 324 else if(brd==2)
sagara17 3:8e29c3da6961 325 {
sagara17 3:8e29c3da6961 326 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 327 setPort(dac_port2, sync2, a, 1);
sagara17 3:8e29c3da6961 328 pc.printf("Pulling all ports up in board 2.\n");
sagara17 3:8e29c3da6961 329 }
sagara17 3:8e29c3da6961 330 else if(brd==3)
sagara17 3:8e29c3da6961 331 {
sagara17 3:8e29c3da6961 332 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 333 setPort(dac_port3, sync3, a, 1);
sagara17 3:8e29c3da6961 334 pc.printf("Pulling all ports up in board 3.\n");
sagara17 3:8e29c3da6961 335 }
sagara17 3:8e29c3da6961 336 else if(brd==4)
sagara17 3:8e29c3da6961 337 {
sagara17 3:8e29c3da6961 338 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 339 setPort(dac_port4, sync4, a, 1);
sagara17 3:8e29c3da6961 340 pc.printf("Pulling all ports up in board 4.\n");
sagara17 3:8e29c3da6961 341 }
sagara17 3:8e29c3da6961 342 else if(brd==5)
sagara17 3:8e29c3da6961 343 {
sagara17 3:8e29c3da6961 344 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 345 setPort(dac_port5, sync5, a, 1);
sagara17 3:8e29c3da6961 346 pc.printf("Pulling all ports up in board 5.\n");
sagara17 3:8e29c3da6961 347 }
sagara17 3:8e29c3da6961 348 else if(brd==6)
sagara17 3:8e29c3da6961 349 {
sagara17 3:8e29c3da6961 350 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 351 setPort(dac_port6, sync6, a, 1);
sagara17 3:8e29c3da6961 352 pc.printf("Pulling all ports up in board 6.\n");
sagara17 3:8e29c3da6961 353 }
sagara17 3:8e29c3da6961 354 else if(brd==7)
sagara17 3:8e29c3da6961 355 {
sagara17 3:8e29c3da6961 356 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 357 setPort(dac_port7, sync7, a, 1);
sagara17 3:8e29c3da6961 358 pc.printf("Pulling all ports up in board 7.\n");
sagara17 3:8e29c3da6961 359 }
sagara17 3:8e29c3da6961 360 else if(brd==8)
sagara17 3:8e29c3da6961 361 {
sagara17 3:8e29c3da6961 362 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 363 setPort(dac_port8, sync8, a, 1);
sagara17 3:8e29c3da6961 364 pc.printf("Pulling all ports up in board 8.\n");
sagara17 3:8e29c3da6961 365 }
sagara17 3:8e29c3da6961 366 else
sagara17 3:8e29c3da6961 367 pc.printf("The board number has to be between 1 and 8.\n");
sagara17 3:8e29c3da6961 368 }
sagara17 3:8e29c3da6961 369 else
sagara17 3:8e29c3da6961 370 pc.printf("pulldown can take only 1 argument. pullup 6 pulls all ports up in board 6.\n");
sagara17 3:8e29c3da6961 371 }
sagara17 3:8e29c3da6961 372 else if(firstTk=="pullalldown")
sagara17 3:8e29c3da6961 373 {
sagara17 3:8e29c3da6961 374 if (tokens.size() ==1)
sagara17 3:8e29c3da6961 375 {
sagara17 3:8e29c3da6961 376 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 377 {
sagara17 3:8e29c3da6961 378 setPort(dac_port1, sync1, a, 0);
sagara17 3:8e29c3da6961 379 setPort(dac_port2, sync2, a, 0);
sagara17 3:8e29c3da6961 380 setPort(dac_port3, sync3, a, 0);
sagara17 3:8e29c3da6961 381 setPort(dac_port4, sync4, a, 0);
sagara17 3:8e29c3da6961 382 setPort(dac_port5, sync5, a, 0);
sagara17 3:8e29c3da6961 383 setPort(dac_port6, sync6, a, 0);
sagara17 3:8e29c3da6961 384 setPort(dac_port7, sync7, a, 0);
sagara17 3:8e29c3da6961 385 setPort(dac_port8, sync8, a, 0);
sagara17 3:8e29c3da6961 386 }
sagara17 3:8e29c3da6961 387 pc.printf("Pulling all ports down in boards 1 to 8.\n");
sagara17 3:8e29c3da6961 388 }
sagara17 3:8e29c3da6961 389 else
sagara17 3:8e29c3da6961 390 pc.printf("pullalldown does not take any arguments. It pulls all ports down in all the boards.\n");
sagara17 3:8e29c3da6961 391 }
sagara17 3:8e29c3da6961 392 else if(firstTk=="pulldown")
sagara17 3:8e29c3da6961 393 {
sagara17 3:8e29c3da6961 394 if(tokens.size() ==2)
sagara17 3:8e29c3da6961 395 {
sagara17 3:8e29c3da6961 396 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 397 if(brd==1)
sagara17 3:8e29c3da6961 398 {
sagara17 3:8e29c3da6961 399 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 400 setPort(dac_port1, sync1, a, 0);
sagara17 3:8e29c3da6961 401 pc.printf("Pulling all ports down in board 1.\n");
sagara17 3:8e29c3da6961 402 }
sagara17 3:8e29c3da6961 403 else if(brd==2)
sagara17 3:8e29c3da6961 404 {
sagara17 3:8e29c3da6961 405 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 406 setPort(dac_port2, sync2, a, 0);
sagara17 3:8e29c3da6961 407 pc.printf("Pulling all ports down in board 2.\n");
sagara17 3:8e29c3da6961 408 }
sagara17 3:8e29c3da6961 409 else if(brd==3)
sagara17 3:8e29c3da6961 410 {
sagara17 3:8e29c3da6961 411 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 412 setPort(dac_port3, sync3, a, 0);
sagara17 3:8e29c3da6961 413 pc.printf("Pulling all ports down in board 3.\n");
sagara17 3:8e29c3da6961 414 }
sagara17 3:8e29c3da6961 415 else if(brd==4)
sagara17 3:8e29c3da6961 416 {
sagara17 3:8e29c3da6961 417 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 418 setPort(dac_port4, sync4, a, 0);
sagara17 3:8e29c3da6961 419 pc.printf("Pulling all ports down in board 4.\n");
sagara17 3:8e29c3da6961 420 }
sagara17 3:8e29c3da6961 421 else if(brd==5)
sagara17 3:8e29c3da6961 422 {
sagara17 3:8e29c3da6961 423 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 424 setPort(dac_port5, sync5, a, 0);
sagara17 3:8e29c3da6961 425 pc.printf("Pulling all ports down in board 5.\n");
sagara17 3:8e29c3da6961 426 }
sagara17 3:8e29c3da6961 427 else if(brd==6)
sagara17 3:8e29c3da6961 428 {
sagara17 3:8e29c3da6961 429 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 430 setPort(dac_port6, sync6, a, 0);
sagara17 3:8e29c3da6961 431 pc.printf("Pulling all ports down in board 6.\n");
sagara17 3:8e29c3da6961 432 }
sagara17 3:8e29c3da6961 433 else if(brd==7)
sagara17 3:8e29c3da6961 434 {
sagara17 3:8e29c3da6961 435 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 436 setPort(dac_port7, sync7, a, 0);
sagara17 3:8e29c3da6961 437 pc.printf("Pulling all ports down in board 7.\n");
sagara17 3:8e29c3da6961 438 }
sagara17 3:8e29c3da6961 439 else if(brd==8)
sagara17 3:8e29c3da6961 440 {
sagara17 3:8e29c3da6961 441 for(int a=12;a<=31;a++)
sagara17 3:8e29c3da6961 442 setPort(dac_port8, sync8, a, 0);
sagara17 3:8e29c3da6961 443 pc.printf("Pulling all ports down in board 8.\n");
sagara17 3:8e29c3da6961 444 }
sagara17 3:8e29c3da6961 445 else
sagara17 3:8e29c3da6961 446 pc.printf("The board number has to be between 1 and 8.\n");
sagara17 3:8e29c3da6961 447 }
sagara17 3:8e29c3da6961 448 else
sagara17 3:8e29c3da6961 449 pc.printf("pulldown can take only 1 argument. pulldown 6 pulls all ports down in board 6.\n\n");
sagara17 3:8e29c3da6961 450 }
sagara17 3:8e29c3da6961 451 else if(firstTk == "send")
sagara17 3:8e29c3da6961 452 {
sagara17 3:8e29c3da6961 453 if (tokens.size() ==3)
sagara17 3:8e29c3da6961 454 {
sagara17 3:8e29c3da6961 455 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 456 int myWord=0;
sagara17 3:8e29c3da6961 457 myWord= strtol(tokens.at(2).c_str(), NULL, 16);
sagara17 3:8e29c3da6961 458 pc.printf("WORD %d (0x%04x)\n", myWord, myWord);
sagara17 3:8e29c3da6961 459 if(brd==1)
sagara17 3:8e29c3da6961 460 {
sagara17 3:8e29c3da6961 461 mySPISend(myWord, dac_port1, sync1);
sagara17 3:8e29c3da6961 462 }
sagara17 3:8e29c3da6961 463 else if(brd==2)
sagara17 3:8e29c3da6961 464 {
sagara17 3:8e29c3da6961 465 mySPISend(myWord, dac_port2, sync2);
sagara17 3:8e29c3da6961 466 }
sagara17 3:8e29c3da6961 467 else if(brd==3)
sagara17 3:8e29c3da6961 468 {
sagara17 3:8e29c3da6961 469 mySPISend(myWord, dac_port3, sync3);
sagara17 3:8e29c3da6961 470 }
sagara17 3:8e29c3da6961 471 else if(brd==4)
sagara17 3:8e29c3da6961 472 {
sagara17 3:8e29c3da6961 473 mySPISend(myWord, dac_port4, sync4);
sagara17 3:8e29c3da6961 474 }
sagara17 3:8e29c3da6961 475 else if(brd==5)
sagara17 3:8e29c3da6961 476 {
sagara17 3:8e29c3da6961 477 mySPISend(myWord, dac_port5, sync5);
sagara17 3:8e29c3da6961 478 }
sagara17 3:8e29c3da6961 479 else if(brd==6)
sagara17 3:8e29c3da6961 480 {
sagara17 3:8e29c3da6961 481 mySPISend(myWord, dac_port6, sync6);
sagara17 3:8e29c3da6961 482 }
sagara17 3:8e29c3da6961 483 else if(brd==7)
sagara17 3:8e29c3da6961 484 {
sagara17 3:8e29c3da6961 485 mySPISend(myWord, dac_port7, sync7);
sagara17 3:8e29c3da6961 486 }
sagara17 3:8e29c3da6961 487 else if(brd==8)
sagara17 3:8e29c3da6961 488 {
sagara17 3:8e29c3da6961 489 mySPISend(myWord, dac_port8, sync8);
sagara17 3:8e29c3da6961 490 }
sagara17 3:8e29c3da6961 491 else
sagara17 3:8e29c3da6961 492 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 493 }
sagara17 3:8e29c3da6961 494 else
sagara17 3:8e29c3da6961 495 {
sagara17 3:8e29c3da6961 496 pc.printf("Send requires a board number and a hex word parameter.\ntype 'send 3 XXXX' to send the word (x must be a hex value) to board 3.\n");
sagara17 3:8e29c3da6961 497 }
sagara17 3:8e29c3da6961 498 }
sagara17 3:8e29c3da6961 499 else if(firstTk == "read")
sagara17 3:8e29c3da6961 500 {
sagara17 3:8e29c3da6961 501 if (tokens.size() ==3)
sagara17 3:8e29c3da6961 502 {
sagara17 3:8e29c3da6961 503 int brd = atoi(tokens.at(1).c_str());
sagara17 3:8e29c3da6961 504 int myWord=0;
sagara17 3:8e29c3da6961 505 myWord= strtol(tokens.at(2).c_str(), NULL, 16);
sagara17 3:8e29c3da6961 506 pc.printf("WORD %d (0x%04x)\n", myWord, myWord);
sagara17 3:8e29c3da6961 507 if(brd==1)
sagara17 3:8e29c3da6961 508 mySPIRead(pc, myWord, dac_port1, sync1);
sagara17 3:8e29c3da6961 509 else if(brd==2)
sagara17 3:8e29c3da6961 510 mySPIRead(pc, myWord, dac_port2, sync2);
sagara17 3:8e29c3da6961 511 else if(brd==3)
sagara17 3:8e29c3da6961 512 mySPIRead(pc, myWord, dac_port3, sync3);
sagara17 3:8e29c3da6961 513 else if(brd==4)
sagara17 3:8e29c3da6961 514 mySPIRead(pc, myWord, dac_port4, sync4);
sagara17 3:8e29c3da6961 515 else if(brd==5)
sagara17 3:8e29c3da6961 516 mySPIRead(pc, myWord, dac_port5, sync5);
sagara17 3:8e29c3da6961 517 else if(brd==6)
sagara17 3:8e29c3da6961 518 mySPIRead(pc, myWord, dac_port6, sync6);
sagara17 3:8e29c3da6961 519 else if(brd==7)
sagara17 3:8e29c3da6961 520 mySPIRead(pc, myWord, dac_port7, sync7);
sagara17 3:8e29c3da6961 521 else if(brd==8)
sagara17 3:8e29c3da6961 522 mySPIRead(pc, myWord, dac_port8, sync8);
sagara17 3:8e29c3da6961 523 else
sagara17 3:8e29c3da6961 524 pc.printf("The board number has to be between 1 and 8\n");
sagara17 3:8e29c3da6961 525
sagara17 3:8e29c3da6961 526 }
sagara17 3:8e29c3da6961 527 else
sagara17 3:8e29c3da6961 528 {
sagara17 3:8e29c3da6961 529 pc.printf("Read requires a board number and a hex word parameter.\ntype 'send XXXX' to send the word (x must be a hex value).\n");
sagara17 3:8e29c3da6961 530 }
sagara17 3:8e29c3da6961 531 }
sagara17 3:8e29c3da6961 532
sagara17 3:8e29c3da6961 533 }