Lab 6 code.

Dependencies:   mbed

Fork of WaG by GroupA

main.cpp

Committer:
spm71
Date:
2018-03-20
Revision:
23:3da1d39c1ae9
Parent:
22:09dd6977576b
Child:
25:896dbc85907e
Child:
26:3006f5abc0a5

File content as of revision 23:3da1d39c1ae9:

/******************************************************************************
* EECS 397
*
* Assignment Name: Lab 5: WaG
* 
* Authors: Sam Morrison and Phong Nguyen 
* File name: main.cpp
* Purpose: Configures the dispaly for 4-digit display or motor control
*
* Created: 03/01/2018
* Last Modified: 03/08/2018
*
******************************************************************************/
#include "mbed.h"
#include "io_pins.h"
#include "display.h"
#include "spi.h"
#include "stepper.h"
#include "utility.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

SPI wag_spi(MOSI, MISO, SCLK);
Serial pc(USBTX, USBRX);
DigitalIn jog_cw(PF_14);
DigitalIn jog_ccw(PE_13);
DigitalIn my_button(USER_BUTTON);

struct spi_cfg as1107{
    SPI_AS1107_ID,
    DSP_AS1107_NCS,
    SPI_NO_ID,
    AS1107_SPI_FREQ,
    AS1107_SPI_NO_BITS,
};


int main(void) {
    initial_setup(as1107);
    char bcd[4];
    char input;
    int display_number;
    
    pc.printf("Enter 1 for display test, 2 for stepper test\n");
    input = getchar();
    while (input < 49 or input > 50) { //ask for input until 0-9 is selected
        pc.printf("Enter 1 for display test, 2 for stepper test\n");
        input = getchar();
    }
    
    if (input == 49) {
        while(1) { //clears bcd array
            for (int i = 0; i < 4; i++)
                bcd[i] = 0;
            display_number = 0;
            pc.printf("Select a digit between 0 and 9999:\n");
            pc.scanf("%d", &display_number);
        
            while (display_number < 0 or display_number > 9999) { //ask for input until 0-9999 is selected
                pc.printf("You entered a number out of range\n");
                pc.printf("Select a digit between 0 and 9999:\n");
                display_number = 0;
                pc.scanf("%d", &display_number);
            }
        
        
            printf("you entered: %d\n", display_number);
            bin2bcd_array(display_number, bcd);
        
            send_command_to_display(bcd);
        }   
    }
    else {
        jog_cw.mode(PullUp);
        jog_ccw.mode(PullUp);
        stp_step(1);
        pc.printf("Press a pushbutton to turn step motor\n");
        while(1) {
            if (jog_ccw == 0) {
                //pc.printf("turning CCW\n");
                stp_step(STP_CCW);
            }
            if (jog_cw == 0) {
                //pc.printf("turning CW\n");
                stp_step(STP_CW);
            } 
        }
    }
}