GroupA / Mbed 2 deprecated Lab_6_WaG

Dependencies:   mbed

Fork of WaG by GroupA

Committer:
phn10
Date:
Thu Mar 22 15:32:44 2018 +0000
Revision:
26:3006f5abc0a5
Parent:
23:3da1d39c1ae9
Child:
27:a07b27cc6d13
complete function ana_init()

Who changed what in which revision?

UserRevisionLine numberNew contents of line
spm71 0:ee6e5c60dd2d 1 /******************************************************************************
spm71 0:ee6e5c60dd2d 2 * EECS 397
spm71 0:ee6e5c60dd2d 3 *
spm71 18:0e281922212c 4 * Assignment Name: Lab 5: WaG
spm71 0:ee6e5c60dd2d 5 *
spm71 0:ee6e5c60dd2d 6 * Authors: Sam Morrison and Phong Nguyen
phn10 16:dfa9eb1a808d 7 * File name: main.cpp
spm71 22:09dd6977576b 8 * Purpose: Configures the dispaly for 4-digit display or motor control
spm71 0:ee6e5c60dd2d 9 *
spm71 18:0e281922212c 10 * Created: 03/01/2018
spm71 22:09dd6977576b 11 * Last Modified: 03/08/2018
spm71 0:ee6e5c60dd2d 12 *
spm71 0:ee6e5c60dd2d 13 ******************************************************************************/
spm71 0:ee6e5c60dd2d 14 #include "mbed.h"
phn10 8:d8bc78bda829 15 #include "io_pins.h"
phn10 8:d8bc78bda829 16 #include "display.h"
spm71 20:d23bcd97f2c5 17 #include "spi.h"
spm71 20:d23bcd97f2c5 18 #include "stepper.h"
spm71 23:3da1d39c1ae9 19 #include "utility.h"
spm71 0:ee6e5c60dd2d 20 #include <stdlib.h>
spm71 0:ee6e5c60dd2d 21 #include <stdio.h>
spm71 0:ee6e5c60dd2d 22 #include <string.h>
spm71 0:ee6e5c60dd2d 23
spm71 18:0e281922212c 24 SPI wag_spi(MOSI, MISO, SCLK);
spm71 0:ee6e5c60dd2d 25 Serial pc(USBTX, USBRX);
spm71 21:88f9f280931b 26 DigitalIn jog_cw(PF_14);
spm71 22:09dd6977576b 27 DigitalIn jog_ccw(PE_13);
spm71 23:3da1d39c1ae9 28 DigitalIn my_button(USER_BUTTON);
phn10 26:3006f5abc0a5 29 BusOut mux_select(MUX_S0, MUX_S1, MUX_S2, MUX_S3);
spm71 0:ee6e5c60dd2d 30
spm71 20:d23bcd97f2c5 31 struct spi_cfg as1107{
spm71 20:d23bcd97f2c5 32 SPI_AS1107_ID,
spm71 20:d23bcd97f2c5 33 DSP_AS1107_NCS,
spm71 20:d23bcd97f2c5 34 SPI_NO_ID,
spm71 20:d23bcd97f2c5 35 AS1107_SPI_FREQ,
spm71 20:d23bcd97f2c5 36 AS1107_SPI_NO_BITS,
spm71 20:d23bcd97f2c5 37 };
spm71 20:d23bcd97f2c5 38
spm71 22:09dd6977576b 39
spm71 0:ee6e5c60dd2d 40 int main(void) {
spm71 20:d23bcd97f2c5 41 initial_setup(as1107);
phn10 11:6751b9406142 42 char bcd[4];
spm71 20:d23bcd97f2c5 43 char input;
spm71 20:d23bcd97f2c5 44 int display_number;
spm71 20:d23bcd97f2c5 45
spm71 20:d23bcd97f2c5 46 pc.printf("Enter 1 for display test, 2 for stepper test\n");
spm71 20:d23bcd97f2c5 47 input = getchar();
spm71 20:d23bcd97f2c5 48 while (input < 49 or input > 50) { //ask for input until 0-9 is selected
spm71 20:d23bcd97f2c5 49 pc.printf("Enter 1 for display test, 2 for stepper test\n");
spm71 20:d23bcd97f2c5 50 input = getchar();
spm71 20:d23bcd97f2c5 51 }
spm71 20:d23bcd97f2c5 52
spm71 20:d23bcd97f2c5 53 if (input == 49) {
spm71 20:d23bcd97f2c5 54 while(1) { //clears bcd array
spm71 20:d23bcd97f2c5 55 for (int i = 0; i < 4; i++)
spm71 20:d23bcd97f2c5 56 bcd[i] = 0;
spm71 20:d23bcd97f2c5 57 display_number = 0;
spm71 20:d23bcd97f2c5 58 pc.printf("Select a digit between 0 and 9999:\n");
spm71 20:d23bcd97f2c5 59 pc.scanf("%d", &display_number);
phn10 11:6751b9406142 60
spm71 20:d23bcd97f2c5 61 while (display_number < 0 or display_number > 9999) { //ask for input until 0-9999 is selected
spm71 20:d23bcd97f2c5 62 pc.printf("You entered a number out of range\n");
spm71 20:d23bcd97f2c5 63 pc.printf("Select a digit between 0 and 9999:\n");
spm71 20:d23bcd97f2c5 64 display_number = 0;
spm71 20:d23bcd97f2c5 65 pc.scanf("%d", &display_number);
spm71 20:d23bcd97f2c5 66 }
spm71 2:b444464ebe67 67
spm71 14:be27f6e21a8a 68
spm71 20:d23bcd97f2c5 69 printf("you entered: %d\n", display_number);
spm71 20:d23bcd97f2c5 70 bin2bcd_array(display_number, bcd);
spm71 0:ee6e5c60dd2d 71
spm71 20:d23bcd97f2c5 72 send_command_to_display(bcd);
spm71 20:d23bcd97f2c5 73 }
spm71 20:d23bcd97f2c5 74 }
spm71 20:d23bcd97f2c5 75 else {
spm71 20:d23bcd97f2c5 76 jog_cw.mode(PullUp);
spm71 20:d23bcd97f2c5 77 jog_ccw.mode(PullUp);
spm71 22:09dd6977576b 78 stp_step(1);
spm71 20:d23bcd97f2c5 79 pc.printf("Press a pushbutton to turn step motor\n");
spm71 20:d23bcd97f2c5 80 while(1) {
spm71 20:d23bcd97f2c5 81 if (jog_ccw == 0) {
spm71 22:09dd6977576b 82 //pc.printf("turning CCW\n");
spm71 20:d23bcd97f2c5 83 stp_step(STP_CCW);
spm71 20:d23bcd97f2c5 84 }
spm71 20:d23bcd97f2c5 85 if (jog_cw == 0) {
spm71 22:09dd6977576b 86 //pc.printf("turning CW\n");
spm71 20:d23bcd97f2c5 87 stp_step(STP_CW);
spm71 20:d23bcd97f2c5 88 }
spm71 20:d23bcd97f2c5 89 }
spm71 0:ee6e5c60dd2d 90 }
phn10 7:161fe3793ddb 91 }