Completed ready for demo- scan_mux_fun

Dependencies:   mbed

Fork of Microprocessors_Template by EECS397

Committer:
anr41
Date:
Thu Feb 08 16:32:34 2018 +0000
Revision:
3:eb70e1c75e7f
Parent:
2:69ec832f181c
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 2:69ec832f181c 4 *Assignment Name: Lab 3; Scan Mux Fun
anr41 0:24202d4eadef 5 *
anr41 0:24202d4eadef 6 *Author(s): Ashley Roberson, Michael Codega
anr41 0:24202d4eadef 7 *
anr41 3:eb70e1c75e7f 8 *Purpose: Scan data of multiplexer & print data
anr41 0:24202d4eadef 9 *
anr41 3:eb70e1c75e7f 10 *Last Modified: February 8, 2018
anr41 0:24202d4eadef 11 *
anr41 0:24202d4eadef 12 *******************************************************************************/
anr41 0:24202d4eadef 13 #include "mbed.h"
anr41 2:69ec832f181c 14 #define NUMCHANNELS 16
anr41 0:24202d4eadef 15
anr41 1:cff235122df8 16 Serial pc(USBTX, USBRX);
anr41 1:cff235122df8 17 char input;
anr41 0:24202d4eadef 18
anr41 2:69ec832f181c 19 void scanChannel(float *voltages);
anr41 2:69ec832f181c 20
anr41 2:69ec832f181c 21 float channelData[NUMCHANNELS];
anr41 1:cff235122df8 22 BusOut muxSel(PC_6, PB_15, PB_13, PB_12);
anr41 1:cff235122df8 23
anr41 1:cff235122df8 24 AnalogIn muxOut(PB_1);
anr41 1:cff235122df8 25
anr41 2:69ec832f181c 26
anr41 2:69ec832f181c 27
anr41 1:cff235122df8 28 int main(void)
anr41 1:cff235122df8 29 {
anr41 1:cff235122df8 30
anr41 1:cff235122df8 31 while(1) {
anr41 1:cff235122df8 32 // wait for an input character to be rx'ed
anr41 1:cff235122df8 33 while(!pc.readable()) {
anr41 1:cff235122df8 34 ; // do nothing
anr41 1:cff235122df8 35 }
anr41 1:cff235122df8 36
anr41 1:cff235122df8 37 input = pc.getc();
anr41 1:cff235122df8 38
anr41 1:cff235122df8 39 // business logic:
anr41 1:cff235122df8 40 // scan 16 channels, store those values in array
anr41 1:cff235122df8 41 // print array
anr41 2:69ec832f181c 42 scanChannel(channelData);
anr41 2:69ec832f181c 43
anr41 2:69ec832f181c 44 pc.printf("Printing for Scan_Mux_Fun.\n");
anr41 2:69ec832f181c 45
anr41 2:69ec832f181c 46 for(int i = 0; i < NUMCHANNELS; i++) {
anr41 1:cff235122df8 47
anr41 1:cff235122df8 48 //print out
anr41 2:69ec832f181c 49 pc.printf("The channel data for %d is: %f\n", i, channelData[i] * 3.3f);
anr41 1:cff235122df8 50
anr41 1:cff235122df8 51 }
anr41 1:cff235122df8 52 }
anr41 1:cff235122df8 53 }
anr41 2:69ec832f181c 54
anr41 2:69ec832f181c 55 void scanChannel(float *voltages)
anr41 2:69ec832f181c 56 {
anr41 2:69ec832f181c 57
anr41 2:69ec832f181c 58 for(int i = 0; i < NUMCHANNELS; i++) {
anr41 2:69ec832f181c 59 // scan channels
anr41 2:69ec832f181c 60 muxSel = i;
anr41 2:69ec832f181c 61
anr41 2:69ec832f181c 62 wait(0.00001);
anr41 2:69ec832f181c 63
anr41 2:69ec832f181c 64 voltages[i] = muxOut.read();
anr41 2:69ec832f181c 65 }
anr41 2:69ec832f181c 66 }