Completed ready for demo- scan_mux_fun
Dependencies: mbed
Fork of Microprocessors_Template by
main.cpp@3:eb70e1c75e7f, 2018-02-08 (annotated)
- Committer:
- anr41
- Date:
- Thu Feb 08 16:32:34 2018 +0000
- Revision:
- 3:eb70e1c75e7f
- Parent:
- 2:69ec832f181c
Completed
Who changed what in which revision?
User | Revision | Line number | New 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 | } |