Lab 6 code.

Dependencies:   mbed

Fork of WaG by GroupA

main.cpp

Committer:
spm71
Date:
2018-02-20
Revision:
0:ee6e5c60dd2d
Child:
1:1b05289d0bf5

File content as of revision 0:ee6e5c60dd2d:

/******************************************************************************
* EECS 397
*
* Assignment Name: Lab 4: display_test2
* 
* Authors: Sam Morrison and Phong Nguyen 
*
* Purpose: Configures the board for 5-digit display
*
* Last Modified: 02/19/2018
*
******************************************************************************/
#include "mbed.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

DigitalOut SS(PC_7);

SPI spi(PA_7, PA_6, PA_5);
Serial pc(USBTX, USBRX);

int main(void) {
    SS = 1; 
    
    spi.format(16,0);
    spi.frequency(1000000);
    
    SS = 0;
    spi.write(0x0C01); //normal operation
    SS = 1;
    
    SS = 0;
    spi.write(0x090F); //decode to bits 0:3
    SS = 1;
    
    SS = 0;
    spi.write(0x0F00); //set to normal mode
    SS = 1;
    
    SS = 0;
    spi.write(0x0A0F); //intensity set to max
    SS = 1;
    
    SS = 0;
    spi.write(0x0B04); //display digits 0:4
    SS = 1;
    
    SS = 0;
    spi.write(0x0100); //set digit 1 to 0
    SS = 1;
    
    SS = 0;
    spi.write(0x0200); //set digit 2 to 0
    SS = 1;
    
    SS = 0;
    spi.write(0x0300); //set digit 3 to 0
    SS = 1;
    
    SS = 0;
    spi.write(0x0400); //set digit 4 to 0
    SS = 1;
    
    SS = 0;
    spi.write(0x0500); //set digit 5 to 0
    
    float command = 0x0100;
    char input[4];
    char command_text[10] = "0x0";
    while(1) {
        pc.printf("Select a digit between 0 and 9999:\n");
        input = getchar();
        while (input < 48 or input > 57) { //ask for input until 0-9 is selected
            pc.printf("Select a digit between 0 and 9999:\n");
            scanf("%d", &input);
        }
        
        command_text[3] = place + '0';
        command_text[4] = '0';
        command_text[5] = input;
        
        command = atof(command_text); //converts string to float
        
        pc.printf("command: %s\n", command_text);
        
        
        SS = 0;
        spi.write(command);
        SS = 1;
        //pc.printf("command: &f\n", commmand);
    }
    /*
    SS = 0;
    spi.write(0x0100); //set digit 0 to 0
    SS = 1;
    */
}