GroupA / Mbed 2 deprecated WaG_final

Dependencies:   mbed

Fork of Lab_6_WaG by GroupA

main.cpp

Committer:
spm71
Date:
2018-03-06
Revision:
20:d23bcd97f2c5
Parent:
18:0e281922212c
Child:
21:88f9f280931b

File content as of revision 20:d23bcd97f2c5:

/******************************************************************************
* 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
*
* Created: 03/01/2018
* Last Modified: 03/02/2018
*
******************************************************************************/
#include "mbed.h"
#include "io_pins.h"
#include "display.h"
#include "spi.h"
#include "stepper.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int data_length = 16;
int frequency = 1000000;

//DigitalOut SS(DSP_AS1107_NCS);
SPI wag_spi(MOSI, MISO, SCLK);
Serial pc(USBTX, USBRX);

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);
        pc.printf("Press a pushbutton to turn step motor\n");
        while(1) {
            if (jog_ccw == 0) {
                stp_step(STP_CCW);
            }
            if (jog_cw == 0) {
                stp_step(STP_CW);
            } 
        }
    }
}