GroupA / Mbed 2 deprecated WaG_final

Dependencies:   mbed

Fork of Lab_6_WaG by GroupA

Committer:
phn10
Date:
Thu Feb 22 02:06:07 2018 +0000
Revision:
7:161fe3793ddb
Parent:
6:749a691e2abf
Child:
8:d8bc78bda829
remove function bool num_range() because it's no longer necessary.; move all function definitions to .cpp file

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
phn10 6:749a691e2abf 18 DigitalOut SS(CHIP_SELECT);
spm71 0:ee6e5c60dd2d 19
phn10 6:749a691e2abf 20 SPI spi(MOSI, MISO, SCLK);
spm71 0:ee6e5c60dd2d 21 Serial pc(USBTX, USBRX);
spm71 0:ee6e5c60dd2d 22
spm71 1:1b05289d0bf5 23 bool num_range(char input[5]);
spm71 4:0ed77d8b3e42 24 int convert(int dec);
spm71 1:1b05289d0bf5 25 char to_command(char input, int place);
spm71 4:0ed77d8b3e42 26 int bcd[4];
spm71 1:1b05289d0bf5 27
spm71 0:ee6e5c60dd2d 28 int main(void) {
spm71 0:ee6e5c60dd2d 29 SS = 1;
spm71 0:ee6e5c60dd2d 30
spm71 0:ee6e5c60dd2d 31 spi.format(16,0);
spm71 0:ee6e5c60dd2d 32 spi.frequency(1000000);
spm71 0:ee6e5c60dd2d 33
spm71 0:ee6e5c60dd2d 34 SS = 0;
spm71 0:ee6e5c60dd2d 35 spi.write(0x0C01); //normal operation
spm71 0:ee6e5c60dd2d 36 SS = 1;
spm71 0:ee6e5c60dd2d 37
spm71 0:ee6e5c60dd2d 38 SS = 0;
spm71 0:ee6e5c60dd2d 39 spi.write(0x090F); //decode to bits 0:3
spm71 0:ee6e5c60dd2d 40 SS = 1;
spm71 0:ee6e5c60dd2d 41
spm71 0:ee6e5c60dd2d 42 SS = 0;
spm71 0:ee6e5c60dd2d 43 spi.write(0x0F00); //set to normal mode
spm71 0:ee6e5c60dd2d 44 SS = 1;
spm71 0:ee6e5c60dd2d 45
spm71 0:ee6e5c60dd2d 46 SS = 0;
spm71 0:ee6e5c60dd2d 47 spi.write(0x0A0F); //intensity set to max
spm71 0:ee6e5c60dd2d 48 SS = 1;
spm71 0:ee6e5c60dd2d 49
spm71 0:ee6e5c60dd2d 50 SS = 0;
spm71 0:ee6e5c60dd2d 51 spi.write(0x0B04); //display digits 0:4
spm71 0:ee6e5c60dd2d 52 SS = 1;
spm71 0:ee6e5c60dd2d 53
spm71 0:ee6e5c60dd2d 54 SS = 0;
spm71 0:ee6e5c60dd2d 55 spi.write(0x0100); //set digit 1 to 0
spm71 0:ee6e5c60dd2d 56 SS = 1;
spm71 0:ee6e5c60dd2d 57
spm71 0:ee6e5c60dd2d 58 SS = 0;
spm71 0:ee6e5c60dd2d 59 spi.write(0x0200); //set digit 2 to 0
spm71 0:ee6e5c60dd2d 60 SS = 1;
spm71 0:ee6e5c60dd2d 61
spm71 0:ee6e5c60dd2d 62 SS = 0;
spm71 0:ee6e5c60dd2d 63 spi.write(0x0300); //set digit 3 to 0
spm71 0:ee6e5c60dd2d 64 SS = 1;
spm71 0:ee6e5c60dd2d 65
spm71 0:ee6e5c60dd2d 66 SS = 0;
spm71 0:ee6e5c60dd2d 67 spi.write(0x0400); //set digit 4 to 0
spm71 0:ee6e5c60dd2d 68 SS = 1;
spm71 0:ee6e5c60dd2d 69
spm71 0:ee6e5c60dd2d 70 SS = 0;
spm71 0:ee6e5c60dd2d 71 spi.write(0x0500); //set digit 5 to 0
spm71 0:ee6e5c60dd2d 72
spm71 0:ee6e5c60dd2d 73 float command = 0x0100;
spm71 2:b444464ebe67 74 int input;
spm71 1:1b05289d0bf5 75 //char command_text[10] = "0x0";
spm71 0:ee6e5c60dd2d 76 while(1) {
spm71 0:ee6e5c60dd2d 77 pc.printf("Select a digit between 0 and 9999:\n");
spm71 2:b444464ebe67 78 bool check = scanf("%d", &input);
spm71 2:b444464ebe67 79 while (check != 1) {
spm71 0:ee6e5c60dd2d 80 pc.printf("Select a digit between 0 and 9999:\n");
spm71 2:b444464ebe67 81 check = scanf("%d", &input);
spm71 0:ee6e5c60dd2d 82 }
spm71 0:ee6e5c60dd2d 83
spm71 1:1b05289d0bf5 84 /*
spm71 2:b444464ebe67 85 while (num_range(input) == false) { //ask for input until 0-9999 is selected
spm71 2:b444464ebe67 86 pc.printf("Select a digit between 0 and 9999:\n");
spm71 2:b444464ebe67 87 scanf("%d", input);
spm71 2:b444464ebe67 88 }
spm71 2:b444464ebe67 89
spm71 2:b444464ebe67 90
spm71 0:ee6e5c60dd2d 91 command_text[3] = place + '0';
spm71 0:ee6e5c60dd2d 92 command_text[4] = '0';
spm71 0:ee6e5c60dd2d 93 command_text[5] = input;
spm71 0:ee6e5c60dd2d 94
spm71 0:ee6e5c60dd2d 95 command = atof(command_text); //converts string to float
spm71 1:1b05289d0bf5 96 */
spm71 0:ee6e5c60dd2d 97
spm71 0:ee6e5c60dd2d 98 pc.printf("command: %s\n", command_text);
spm71 0:ee6e5c60dd2d 99
spm71 0:ee6e5c60dd2d 100
spm71 0:ee6e5c60dd2d 101 SS = 0;
spm71 1:1b05289d0bf5 102 spi.write(command); // need to cycle 4 times
spm71 0:ee6e5c60dd2d 103 SS = 1;
spm71 0:ee6e5c60dd2d 104 //pc.printf("command: &f\n", commmand);
spm71 0:ee6e5c60dd2d 105 }
spm71 1:1b05289d0bf5 106
spm71 0:ee6e5c60dd2d 107 /*
spm71 0:ee6e5c60dd2d 108 SS = 0;
spm71 0:ee6e5c60dd2d 109 spi.write(0x0100); //set digit 0 to 0
spm71 0:ee6e5c60dd2d 110 SS = 1;
spm71 0:ee6e5c60dd2d 111 */
phn10 7:161fe3793ddb 112 }