Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
src/boards.cpp
- Committer:
- mfwic
- Date:
- 2018-11-29
- Revision:
- 4:db38665c3727
- Parent:
- 1:9f8583ba2431
- Child:
- 5:09be5bbb5020
File content as of revision 4:db38665c3727:
//------------------------------------------------------------------------------- // // Treehouse Designs Inc. // Colorado Springs, Colorado // // Copyright (c) 2016 by Treehouse Designs Inc. // Copyright (c) 2018 by Agility Power Systems Inc. // // This code is the property of Treehouse Designs, Inc. (Treehouse) and // Agility Power Systems Inc. (Agility) and may not be redistributed // in any form without prior written permission from // both copyright holders, Treehouse and Agility. // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // //------------------------------------------------------------------------------- // // REVISION HISTORY: // // $Author: $ // $Rev: $ // $Date: $ // $URL: $ // //------------------------------------------------------------------------------- #include "mbed.h" #include "globals.h" #include "boards.h" #include "all_io.h" #include "serial.h" #include "stdio.h" #include "parameters.h" #include "lut.h" unsigned int boardEnableBits; void delay(long ticks) { long i; for(i=0;i<ticks;i++); } void setBoardEnables(unsigned int enableBits[]) { unsigned int i, boardEnable; // Default is all boards OFF unsigned int boardsEnabled = ALLOFF; for (i = 0; i < MAX_BOARDS; i++) { // 0 == enabled boardEnable = (enableBits[i] & (1 << i)); } wr_out = boardEnable; } void setBoardWeights(unsigned int enableWeights[]) { unsigned int i, boardWeight; for (i = 0; i < MAX_BOARDS; i++) { // 0 == enabled boardWeight = (enableWeights[i] & (1 << i)); } en_out = boardWeight; toggleLatchSignal(); } void toggleLatchSignal(void){ extchlat = OFF; extchlat = ON; extchlat = OFF; } void initDACs(void) { //setupDacInit(); //sendDACs(dinitbits); } /************************************************************ * Routine: checkRange * Input: setval * limlo -- low limit * limhi -- high limit * Returns: 1 if entry validates and is written * 0 if entry fails * -1 if it slips past * Description: * Checks if setvalue is between the given limits. * **************************************************************/ int checkRange(int setvalue, int limlo, int limhi) { if ((setvalue >= limlo) && (setvalue <= limhi)) { return 1; } else { showRangeError(0, 0, setvalue); return 0; } } // start the converter // RK: ch[i][reg].enabled has not been used correctly yet. Need to modify that code. void startConverter(unsigned int reg) { int i; //float period; running = TRUE; unsigned int boardsEnabled = 0; char stemp[50]; for (i = 0; i < MAX_BOARDS; i++) { //if (ch[i][reg].enabled == 1) //{ // Set the corresponding bit boardsEnabled |= (1 << i); sprintf(stemp, "\n\rBoard %d RUNNING", i + 1); sendSerial(stemp); //} } // Invert the bits because 0 == enabled on the SPI write //boardsEnabled = ~boardsEnabled; // Fire in the hole! setBoardEnables(thermCode); //setupRunVoltages(); //currentRegister = reg; //pulser.attach_us(&pulserInt, period); } // stop the converter and set outputs to 0 void stopConverter(void) { //pulser.detach(); setBoardEnables(ALLOFF); running = FALSE; } void updateControls(void){ getLUTcode(); setBoardEnables(thermCode); setBoardWeights(binCode); }