Treehouse Mbed Team / Mbed 2 deprecated APS_DCM1SL

Dependencies:   mbed

src/boards.cpp

Committer:
mfwic
Date:
2018-12-07
Revision:
11:01dcfb29fbc4
Parent:
10:6c3233b03658
Child:
12:fd1fd1857628

File content as of revision 11:01dcfb29fbc4:

//-------------------------------------------------------------------------------
// 
//  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 "parameters.h"
#include "boards.h"
#include "lut.h"
#include "all_io.h"
#include "serial.h"
#include "stdio.h"

unsigned int boardEnableBits;

/*******************************************************************************
delay
*******************************************************************************/
void delay(long ticks)
{
   long i;
   for(i=0;i<ticks;i++);    
}  

/*******************************************************************************
setBoardEnables
*******************************************************************************/
unsigned int setBoardEnables(unsigned int tCode)
{
   wr_out = tCode;
   return tCode;
}

/*******************************************************************************
setBoardWeights
*******************************************************************************/
unsigned int setBoardWeights(unsigned int bCode)
{
   en_out = bCode;
   toggleLatchSignal();
   return bCode;
}

/*******************************************************************************
toggleLatchSignal
*******************************************************************************/
void toggleLatchSignal(void){
    extchlat = OFF;
    extchlat = ON;
    extchlat = OFF;
}    

/************************************************************
* 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;
   }
}

/*******************************************************************************
startConverter
*******************************************************************************/
void startConverter(unsigned int reg)
{
   running = TRUE;
   // Fire in the hole!
   wr_out_code = setBoardEnables(reg);
   
   sprintf(strbuf, "\r\nConverter started");
   sendSerial(strbuf);  
}   

/*******************************************************************************
stopConverter - stop the converter and set outputs to 0
*******************************************************************************/
void stopConverter(void)
{
   wr_out_code = setBoardEnables(ALLOFF);
   running = FALSE;
   sprintf(strbuf, "\r\nConverter stopped");
   sendSerial(strbuf);
}

/*******************************************************************************
updateControls
*******************************************************************************/
void updateControls(unsigned short ref){

    unsigned int cBuf = getLUT_thermCode(ref);
    wr_out_code = setBoardEnables(cBuf);
    
    cBuf = getLUT_binCode(ref);
    en_out_code = setBoardWeights(cBuf);
}

void XupdateControls(unsigned short ref){

    sprintf(strbuf, "refr=%d\r\n", ref);
    sendSerial(strbuf);
    
    ref = ref/64;
    
    sprintf(strbuf, "refc=%d\r\n", ref);
    sendSerial(strbuf);
    
    sendSerial("enter updateControls\r\n");
    unsigned int cBuf = getLUT_thermCode(ref);
    sendSerial("cBuf1 updateControls\r\n");
    wr_out_code = setBoardEnables(cBuf);
    sendSerial("wr_out_code updateControls\r\n");
    
    cBuf = getLUT_binCode(ref);
    sendSerial("cBuf2 updateControls\r\n");
    en_out_code = setBoardWeights(cBuf);
    sendSerial("en_out_code updateControls\r\n");
    
    wait(0.5);
}