Completed Scan Mux

Dependencies:   mbed

Fork of Microprocessors_Template by EECS397

Committer:
anr41
Date:
Tue Feb 06 17:01:02 2018 +0000
Revision:
2:c09b7ead913c
Parent:
1:cff235122df8
Completed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
anr41 0:24202d4eadef 1 /*******************************************************************************
anr41 0:24202d4eadef 2 *EECS397
anr41 0:24202d4eadef 3 *
anr41 1:cff235122df8 4 *Assignment Name: Lab 3; Scan Mux
anr41 0:24202d4eadef 5 *
anr41 0:24202d4eadef 6 *Author(s): Ashley Roberson, Michael Codega
anr41 0:24202d4eadef 7 *
anr41 1:cff235122df8 8 *Purpose: Scans all 16 channels, stores those analog values in an array, and
anr41 1:cff235122df8 9 * then prints values in array to serial console with each channel
anr41 1:cff235122df8 10 * labeled when a key from the serial console is pressed.
anr41 0:24202d4eadef 11 *
anr41 1:cff235122df8 12 *Last Modified: February 3, 2018
anr41 0:24202d4eadef 13 *
anr41 0:24202d4eadef 14 *******************************************************************************/
anr41 0:24202d4eadef 15 #include "mbed.h"
anr41 0:24202d4eadef 16
anr41 1:cff235122df8 17 Serial pc(USBTX, USBRX);
anr41 1:cff235122df8 18 char input;
anr41 0:24202d4eadef 19
anr41 1:cff235122df8 20 float channelData[16];
anr41 1:cff235122df8 21 BusOut muxSel(PC_6, PB_15, PB_13, PB_12);
anr41 1:cff235122df8 22
anr41 1:cff235122df8 23 AnalogIn muxOut(PB_1);
anr41 1:cff235122df8 24
anr41 1:cff235122df8 25 int main(void)
anr41 1:cff235122df8 26 {
anr41 1:cff235122df8 27
anr41 1:cff235122df8 28 while(1) {
anr41 1:cff235122df8 29 // wait for an input character to be rx'ed
anr41 1:cff235122df8 30 while(!pc.readable()) {
anr41 1:cff235122df8 31 ; // do nothing
anr41 1:cff235122df8 32 }
anr41 1:cff235122df8 33
anr41 1:cff235122df8 34 input = pc.getc();
anr41 1:cff235122df8 35
anr41 1:cff235122df8 36 // business logic:
anr41 1:cff235122df8 37 // scan 16 channels, store those values in array
anr41 1:cff235122df8 38 // print array
anr41 1:cff235122df8 39
anr41 1:cff235122df8 40 for(int i = 0; i < 16; i++) {
anr41 1:cff235122df8 41 // scan channels
anr41 1:cff235122df8 42 muxSel = i;
anr41 1:cff235122df8 43
anr41 1:cff235122df8 44 wait(0.00001);
anr41 1:cff235122df8 45
anr41 1:cff235122df8 46 channelData[i] = muxOut.read();
anr41 1:cff235122df8 47 }
anr41 1:cff235122df8 48
anr41 2:c09b7ead913c 49 pc.printf("Printing for Scan_Mux.\n");
anr41 2:c09b7ead913c 50
anr41 1:cff235122df8 51 for(int i = 0; i < 16; i++) {
anr41 1:cff235122df8 52
anr41 1:cff235122df8 53 //print out
anr41 2:c09b7ead913c 54 pc.printf("The channel data for %d is: %f\n", i, channelData[i] * 3.3f);
anr41 1:cff235122df8 55
anr41 1:cff235122df8 56 }
anr41 1:cff235122df8 57 }
anr41 1:cff235122df8 58 }