Test program using the LCD and touch pad to adjust the Analog output DAC on the KL46Z Port PTE30

Dependencies:   SLCD TSI mbed

Fork of keyer_test_v3 by Stanley Cohen

analgoutv1.cpp

Committer:
scohennm
Date:
2015-02-10
Revision:
2:86fa1f84db36
Child:
3:dd70474b11bc

File content as of revision 2:86fa1f84db36:

#include "mbed.h"
#include "SLCD.h"
#include "TSISensor.h"

//Code parameters

#define LCDLEN      10
//LCD messages
#define VOLTAST      0
#define VOLTMESS     "V:"
#define DATARATE    0.1 // sec
#define MAXVOLTS    3.3
#define FUTURESTATE 1

SLCD slcd; //define LCD display

//Global classes
TSISensor tsiScaling; // Capacitive sensor/slider
AnalogOut refOut(PTE30);
PwmOut led(LED_RED);

// Global scalars
char lcdData[LCDLEN];




void LCDMessNoDwell(char *lMess){
        slcd.Home();
        slcd.clear();
        slcd.printf(lMess);
} 


    
void parameterAdjust( int adjState, float scaling) { // small adjustment state machine
    float  tempFloat;
    switch (adjState){
        case VOLTAST: {
             tempFloat = scaling;
             refOut.write(tempFloat);         
             sprintf (lcdData,"%4.3f",tempFloat*MAXVOLTS);         
             break;
        }
        case FUTURESTATE: {
             /*toneFreq = TONEMIN + scaling * TONEINT;
             tonePeriod = 1.0/toneFreq;  
             soundOut.period(tonePeriod);
             tempInt = (int)toneFreq;
             sprintf (lcdData,"%4d",tempInt);
             */
             break;
        }
    }
    LCDMessNoDwell(lcdData);
    return;
}

int main(){
    
    float tempValue;
   
    parameterAdjust( VOLTAST, 0.0);
    
    
    while (true) {
        tempValue = tsiScaling.readPercentage();
        if(tempValue > 0) {
                    parameterAdjust( VOLTAST, tempValue);
        }  
        
       wait(DATARATE);
    } // while forever
}// end main