GroupA / Mbed 2 deprecated WaG_final

Dependencies:   mbed

Fork of Lab_6_WaG by GroupA

Committer:
spm71
Date:
Tue Feb 20 16:39:34 2018 +0000
Revision:
0:ee6e5c60dd2d
Child:
1:1b05289d0bf5
Initial commit

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 0:ee6e5c60dd2d 4 * Assignment Name: Lab 4: display_test2
spm71 0:ee6e5c60dd2d 5 *
spm71 0:ee6e5c60dd2d 6 * Authors: Sam Morrison and Phong Nguyen
spm71 0:ee6e5c60dd2d 7 *
spm71 0:ee6e5c60dd2d 8 * Purpose: Configures the board for 5-digit display
spm71 0:ee6e5c60dd2d 9 *
spm71 0:ee6e5c60dd2d 10 * Last Modified: 02/19/2018
spm71 0:ee6e5c60dd2d 11 *
spm71 0:ee6e5c60dd2d 12 ******************************************************************************/
spm71 0:ee6e5c60dd2d 13 #include "mbed.h"
spm71 0:ee6e5c60dd2d 14 #include <stdlib.h>
spm71 0:ee6e5c60dd2d 15 #include <stdio.h>
spm71 0:ee6e5c60dd2d 16 #include <string.h>
spm71 0:ee6e5c60dd2d 17
spm71 0:ee6e5c60dd2d 18 DigitalOut SS(PC_7);
spm71 0:ee6e5c60dd2d 19
spm71 0:ee6e5c60dd2d 20 SPI spi(PA_7, PA_6, PA_5);
spm71 0:ee6e5c60dd2d 21 Serial pc(USBTX, USBRX);
spm71 0:ee6e5c60dd2d 22
spm71 0:ee6e5c60dd2d 23 int main(void) {
spm71 0:ee6e5c60dd2d 24 SS = 1;
spm71 0:ee6e5c60dd2d 25
spm71 0:ee6e5c60dd2d 26 spi.format(16,0);
spm71 0:ee6e5c60dd2d 27 spi.frequency(1000000);
spm71 0:ee6e5c60dd2d 28
spm71 0:ee6e5c60dd2d 29 SS = 0;
spm71 0:ee6e5c60dd2d 30 spi.write(0x0C01); //normal operation
spm71 0:ee6e5c60dd2d 31 SS = 1;
spm71 0:ee6e5c60dd2d 32
spm71 0:ee6e5c60dd2d 33 SS = 0;
spm71 0:ee6e5c60dd2d 34 spi.write(0x090F); //decode to bits 0:3
spm71 0:ee6e5c60dd2d 35 SS = 1;
spm71 0:ee6e5c60dd2d 36
spm71 0:ee6e5c60dd2d 37 SS = 0;
spm71 0:ee6e5c60dd2d 38 spi.write(0x0F00); //set to normal mode
spm71 0:ee6e5c60dd2d 39 SS = 1;
spm71 0:ee6e5c60dd2d 40
spm71 0:ee6e5c60dd2d 41 SS = 0;
spm71 0:ee6e5c60dd2d 42 spi.write(0x0A0F); //intensity set to max
spm71 0:ee6e5c60dd2d 43 SS = 1;
spm71 0:ee6e5c60dd2d 44
spm71 0:ee6e5c60dd2d 45 SS = 0;
spm71 0:ee6e5c60dd2d 46 spi.write(0x0B04); //display digits 0:4
spm71 0:ee6e5c60dd2d 47 SS = 1;
spm71 0:ee6e5c60dd2d 48
spm71 0:ee6e5c60dd2d 49 SS = 0;
spm71 0:ee6e5c60dd2d 50 spi.write(0x0100); //set digit 1 to 0
spm71 0:ee6e5c60dd2d 51 SS = 1;
spm71 0:ee6e5c60dd2d 52
spm71 0:ee6e5c60dd2d 53 SS = 0;
spm71 0:ee6e5c60dd2d 54 spi.write(0x0200); //set digit 2 to 0
spm71 0:ee6e5c60dd2d 55 SS = 1;
spm71 0:ee6e5c60dd2d 56
spm71 0:ee6e5c60dd2d 57 SS = 0;
spm71 0:ee6e5c60dd2d 58 spi.write(0x0300); //set digit 3 to 0
spm71 0:ee6e5c60dd2d 59 SS = 1;
spm71 0:ee6e5c60dd2d 60
spm71 0:ee6e5c60dd2d 61 SS = 0;
spm71 0:ee6e5c60dd2d 62 spi.write(0x0400); //set digit 4 to 0
spm71 0:ee6e5c60dd2d 63 SS = 1;
spm71 0:ee6e5c60dd2d 64
spm71 0:ee6e5c60dd2d 65 SS = 0;
spm71 0:ee6e5c60dd2d 66 spi.write(0x0500); //set digit 5 to 0
spm71 0:ee6e5c60dd2d 67
spm71 0:ee6e5c60dd2d 68 float command = 0x0100;
spm71 0:ee6e5c60dd2d 69 char input[4];
spm71 0:ee6e5c60dd2d 70 char command_text[10] = "0x0";
spm71 0:ee6e5c60dd2d 71 while(1) {
spm71 0:ee6e5c60dd2d 72 pc.printf("Select a digit between 0 and 9999:\n");
spm71 0:ee6e5c60dd2d 73 input = getchar();
spm71 0:ee6e5c60dd2d 74 while (input < 48 or input > 57) { //ask for input until 0-9 is selected
spm71 0:ee6e5c60dd2d 75 pc.printf("Select a digit between 0 and 9999:\n");
spm71 0:ee6e5c60dd2d 76 scanf("%d", &input);
spm71 0:ee6e5c60dd2d 77 }
spm71 0:ee6e5c60dd2d 78
spm71 0:ee6e5c60dd2d 79 command_text[3] = place + '0';
spm71 0:ee6e5c60dd2d 80 command_text[4] = '0';
spm71 0:ee6e5c60dd2d 81 command_text[5] = input;
spm71 0:ee6e5c60dd2d 82
spm71 0:ee6e5c60dd2d 83 command = atof(command_text); //converts string to float
spm71 0:ee6e5c60dd2d 84
spm71 0:ee6e5c60dd2d 85 pc.printf("command: %s\n", command_text);
spm71 0:ee6e5c60dd2d 86
spm71 0:ee6e5c60dd2d 87
spm71 0:ee6e5c60dd2d 88 SS = 0;
spm71 0:ee6e5c60dd2d 89 spi.write(command);
spm71 0:ee6e5c60dd2d 90 SS = 1;
spm71 0:ee6e5c60dd2d 91 //pc.printf("command: &f\n", commmand);
spm71 0:ee6e5c60dd2d 92 }
spm71 0:ee6e5c60dd2d 93 /*
spm71 0:ee6e5c60dd2d 94 SS = 0;
spm71 0:ee6e5c60dd2d 95 spi.write(0x0100); //set digit 0 to 0
spm71 0:ee6e5c60dd2d 96 SS = 1;
spm71 0:ee6e5c60dd2d 97 */
spm71 0:ee6e5c60dd2d 98 }
spm71 0:ee6e5c60dd2d 99