Program for testing the mRoteryEncoder as well as Switch ISR

Dependencies:   mRotaryEncoder mbed

main.cpp

Committer:
ostlerkd13
Date:
2016-03-06
Revision:
0:b2d0595444a4

File content as of revision 0:b2d0595444a4:

/**************************************************************************************/
/**************************************************************************************/
/*SMART Remote Controller
 
 Kevin D. Ostler copyright 2016 */
/**************************************************************************************/
/**************************************************************************************/
#include "mbed.h"
#include "mRotaryEncoder.h"
#define MAX 100
#define MIN 0

mRotaryEncoder adjust_enc(p9, p10, p11);//pinA,pinB,pinSW

float resolution = 1.0;
float adjust_set = 0.0;
float adjust_last = 0.0;
bool button = 1;

float AdjustVal(float adjust_val){
    adjust_val += (adjust_enc.Get() * resolution);    
    if( adjust_val >= MAX){ 
        adjust_val = MAX;
        }else if(adjust_val <= MIN){ 
            adjust_val = MIN;         
        }
        adjust_enc.Set(0);
    return adjust_val;
}
void Set_Resolution(void){
    button = !button;
    if( resolution == 1.0 ){
        resolution = 0.1;
        }else{
            resolution = 1.0;
            }
}           

DigitalOut myled(LED1);
Serial pc(USBTX, USBRX); // tx, rx

int main() {
    pc.baud(921600);
    pc.format(8,Serial::None,1);
    wait(0.1);
    adjust_enc.attachSW( &Set_Resolution);
    while(1) {
        myled = 1;
        adjust_set = AdjustVal(adjust_set);
        //adjust_last = adjust_set;
        pc.printf("Adjust Level =  %f Resolution = %f Button = %d\n\r" ,adjust_set/100, resolution, button);
        wait(0.2);
        myled = 0;
        pc.printf("Adjust Level =  %f Resolution = %f Button = %d\n\r" ,adjust_set/100, resolution, button);
        wait(0.2);
    }
}