Sold slow control/

Dependents:   sscm

Fork of S_SCTRL_SMlib by wimbeaumont Project

S_SCTRL_SM1_hwfunct.cpp

Committer:
wbeaumont
Date:
2014-09-07
Revision:
0:8d755a0f3ab3
Child:
1:af78e316f889

File content as of revision 0:8d755a0f3ab3:

/* hardware functions */
#include "mbed.h"
#include "S_SCTRL_SM1_PinDef.h"
#include "S_CTRL_SM1_hwfunct.h"

HWlines  hwlines;

void assignports( ){

/// devices 
// SPI BI pins 
hwlines.msio[0] = new DigitalInOut(ADC_STIO);
hwlines.sclk[0] = new DigitalOut(SCLK);
hwlines.direction[0] = new DigitalOut(DIRECTION);
hwlines.stio_mo[0] = new DigitalOut(STIO_MO);
hwlines.csb1_1[0] = new DigitalOut(ADC1_CSN);
hwlines.csb2_1[0] = new DigitalOut(ADC2_CSN);



// SPI pins
hwlines.mosi[0] = new DigitalOut(MOSI); 
hwlines.miso[0] = new DigitalIn(MISO); 

hwlines.t_cs[0] = new DigitalOut(TEMP_CSN);
hwlines.tc_cs1[0] = new DigitalOut(TEMP_CABLE_CSN1);
hwlines.tc_cs2[0] = new DigitalOut(TEMP_CABLE_CSN2);
hwlines.dac_cs[0] = new DigitalOut(DAC_DCEN);
hwlines.dac_rst[0] = new DigitalOut(DAC_RSTN);




// devices 
// SPI BI pins 
hwlines.msio[1] = new DigitalInOut(ADC_2_STIO);
hwlines.sclk[1] = new DigitalOut(SCLK2);
hwlines.direction[1] = new DigitalOut(DIRECTION2);
hwlines.stio_mo[1] = new DigitalOut(STIO2_MO);
hwlines.csb1_1[1] = new DigitalOut(ADC1_2_CSN);
hwlines.csb2_1[1] = new DigitalOut(ADC2_2_CSN);

// SPI pins
hwlines.mosi[1] = new DigitalOut(MOSI_2); 
hwlines.miso[1] = new DigitalIn(MISO_2); 

hwlines.t_cs[1] = new DigitalOut(TEMP_2_CSN);
hwlines.tc_cs1[1] = new DigitalOut(TEMP_2_CABLE_CSN1);
hwlines.tc_cs2[1] = new DigitalOut(TEMP_2_CABLE_CSN2);
hwlines.dac_cs[1] = new DigitalOut(DAC_2_DCEN);
hwlines.dac_rst[1] = new DigitalOut(DAC_2_RSTN);


//cal 
hwlines.cal13[0] = new DigitalOut(CAL_TRIG_1AND3);
hwlines.cal24[0] = new DigitalOut(CAL_TRIG_2AND4);
hwlines.calint[0] = new DigitalOut(SEL_CAL_INT);
hwlines.cal13[1] = new DigitalOut(CAL_TRIG_1AND3);
hwlines.cal24[1] = new DigitalOut(CAL_TRIG_2AND4);
hwlines.calint[1] = new DigitalOut(SEL_CAL_INT_2);

hwlines.calext = new DigitalOut(SEL_CAL_EXT);
hwlines.calgenext = new DigitalOut(GEN_EXT_CAL);

hwlines.ledred = new DigitalOut(LEDRED);
hwlines.ledgreen = new DigitalOut(LEDGREEN);

hwlines.ain1 = new AnalogIn(ADC1);
hwlines.ain2 = new AnalogIn(ADC2);


}



// select intern or extern cal   0 = intern, 1 is extern 
void setcalsource( int extcal, HWlines hwl) {
    *(hwl.calext)=0;    *(hwl.calint[0])=0; *(hwl.calint[0])=0;  //disable all 
    if ( external==1 ) {*(hwl.calext)=1; }
    else {*(hwl.calint[0])=1; *(hwl.calint[0])=1;  }

    
}

// set tje default , save values 
void setdefault(HWlines hwl ) {
        for ( int i=0;i<2;i++){
            hwl.msio[i]->input();
            *(hwl.direction[i])=LDIR_IN;
            *(hwl.stio_mo[i])=RDIR_IN
        }
        setcalsource(0,hwlines); //intern
}