Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
DAQ.cpp@5:3bd9edf55a56, 2014-06-03 (annotated)
- Committer:
- leysenkobe
- Date:
- Tue Jun 03 08:09:59 2014 +0000
- Revision:
- 5:3bd9edf55a56
- Parent:
- 4:cc896bb62196
test
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| leysenkobe | 0:88f8e80dc5fd | 1 | #include "DAQ.h" |
| leysenkobe | 0:88f8e80dc5fd | 2 | #include "mbed.h" |
| leysenkobe | 0:88f8e80dc5fd | 3 | |
| leysenkobe | 0:88f8e80dc5fd | 4 | //Constructor en Destructor |
| leysenkobe | 0:88f8e80dc5fd | 5 | DAQ::DAQ(void) |
| leysenkobe | 0:88f8e80dc5fd | 6 | { |
| leysenkobe | 0:88f8e80dc5fd | 7 | this->channels = new Channel*[16]; |
| leysenkobe | 0:88f8e80dc5fd | 8 | this->multiplexer = new Multiplexer(); |
| leysenkobe | 0:88f8e80dc5fd | 9 | this->amplifier = new Amplifier(); |
| leysenkobe | 0:88f8e80dc5fd | 10 | this->adc = new ADC(); |
| leysenkobe | 0:88f8e80dc5fd | 11 | this->initialized = false; |
| leysenkobe | 0:88f8e80dc5fd | 12 | |
| leysenkobe | 0:88f8e80dc5fd | 13 | for (int i = 0; i < 16; i++) |
| leysenkobe | 0:88f8e80dc5fd | 14 | { |
| leysenkobe | 0:88f8e80dc5fd | 15 | channels[i] = new Channel(); |
| leysenkobe | 0:88f8e80dc5fd | 16 | } |
| leysenkobe | 0:88f8e80dc5fd | 17 | } |
| leysenkobe | 0:88f8e80dc5fd | 18 | DAQ::~DAQ(void) |
| leysenkobe | 0:88f8e80dc5fd | 19 | { |
| leysenkobe | 0:88f8e80dc5fd | 20 | for (int i = 0; i < 16; i++) |
| leysenkobe | 0:88f8e80dc5fd | 21 | { |
| leysenkobe | 0:88f8e80dc5fd | 22 | delete channels[i]; |
| leysenkobe | 0:88f8e80dc5fd | 23 | } |
| leysenkobe | 0:88f8e80dc5fd | 24 | delete [] channels; |
| leysenkobe | 0:88f8e80dc5fd | 25 | delete multiplexer; |
| leysenkobe | 0:88f8e80dc5fd | 26 | delete amplifier; |
| leysenkobe | 0:88f8e80dc5fd | 27 | delete adc; |
| leysenkobe | 0:88f8e80dc5fd | 28 | } |
| leysenkobe | 0:88f8e80dc5fd | 29 | |
| leysenkobe | 0:88f8e80dc5fd | 30 | //GETTERS |
| leysenkobe | 0:88f8e80dc5fd | 31 | Measurement* DAQ::measure(void) |
| leysenkobe | 0:88f8e80dc5fd | 32 | { |
| leysenkobe | 0:88f8e80dc5fd | 33 | Measurement *measurement = new Measurement(); |
| leysenkobe | 0:88f8e80dc5fd | 34 | for (int i = 0; i < 16; i++) |
| leysenkobe | 0:88f8e80dc5fd | 35 | { |
| leysenkobe | 0:88f8e80dc5fd | 36 | if(channels[i]->Enabled()) |
| leysenkobe | 0:88f8e80dc5fd | 37 | { |
| leysenkobe | 0:88f8e80dc5fd | 38 | //amplifier op de juiste waarde zetten |
| leysenkobe | 0:88f8e80dc5fd | 39 | amplifier->setAmplification(channels[i]->getAmplification()); |
| leysenkobe | 0:88f8e80dc5fd | 40 | wait_us(1); |
| leysenkobe | 0:88f8e80dc5fd | 41 | |
| leysenkobe | 0:88f8e80dc5fd | 42 | //multiplexer aanzetten |
| leysenkobe | 4:cc896bb62196 | 43 | multiplexer->setChannel(i); |
| leysenkobe | 0:88f8e80dc5fd | 44 | multiplexer->Enable(); |
| leysenkobe | 0:88f8e80dc5fd | 45 | wait_us(1); |
| leysenkobe | 0:88f8e80dc5fd | 46 | |
| leysenkobe | 0:88f8e80dc5fd | 47 | //ADC uitlezen |
| leysenkobe | 0:88f8e80dc5fd | 48 | measurement->Enable(i); |
| leysenkobe | 0:88f8e80dc5fd | 49 | measurement->setPunt(i,adc->measure()); |
| leysenkobe | 0:88f8e80dc5fd | 50 | wait_us(1); |
| leysenkobe | 0:88f8e80dc5fd | 51 | |
| leysenkobe | 0:88f8e80dc5fd | 52 | //multiplexer uitzetten |
| leysenkobe | 0:88f8e80dc5fd | 53 | multiplexer->Disable(); |
| leysenkobe | 0:88f8e80dc5fd | 54 | } |
| leysenkobe | 5:3bd9edf55a56 | 55 | else |
| leysenkobe | 5:3bd9edf55a56 | 56 | { |
| leysenkobe | 5:3bd9edf55a56 | 57 | measurement->setPunt(i,0); |
| leysenkobe | 5:3bd9edf55a56 | 58 | } |
| leysenkobe | 0:88f8e80dc5fd | 59 | } |
| leysenkobe | 0:88f8e80dc5fd | 60 | return measurement; |
| leysenkobe | 0:88f8e80dc5fd | 61 | } |
| leysenkobe | 0:88f8e80dc5fd | 62 | int DAQ::getChannelGain(int channel) |
| leysenkobe | 0:88f8e80dc5fd | 63 | { |
| leysenkobe | 0:88f8e80dc5fd | 64 | if(channel>=0 && channel<16) |
| leysenkobe | 0:88f8e80dc5fd | 65 | { |
| leysenkobe | 0:88f8e80dc5fd | 66 | return(channels[channel]->getAmplification()); |
| leysenkobe | 0:88f8e80dc5fd | 67 | } |
| leysenkobe | 0:88f8e80dc5fd | 68 | return -1; |
| leysenkobe | 0:88f8e80dc5fd | 69 | } |
| leysenkobe | 0:88f8e80dc5fd | 70 | bool DAQ::ChannelEnabled(int channel) |
| leysenkobe | 0:88f8e80dc5fd | 71 | { |
| leysenkobe | 0:88f8e80dc5fd | 72 | if(channel>=0 && channel<16) |
| leysenkobe | 0:88f8e80dc5fd | 73 | { |
| leysenkobe | 0:88f8e80dc5fd | 74 | return(channels[channel]->Enabled()); |
| leysenkobe | 0:88f8e80dc5fd | 75 | } |
| leysenkobe | 0:88f8e80dc5fd | 76 | return false; |
| leysenkobe | 0:88f8e80dc5fd | 77 | } |
| leysenkobe | 2:ea7eb499a27a | 78 | bool DAQ::ChannelsDisabled() |
| leysenkobe | 2:ea7eb499a27a | 79 | { |
| leysenkobe | 2:ea7eb499a27a | 80 | for(int i=0;i<16;i++) |
| leysenkobe | 2:ea7eb499a27a | 81 | { |
| leysenkobe | 2:ea7eb499a27a | 82 | if(channels[i]->Enabled()) |
| leysenkobe | 2:ea7eb499a27a | 83 | { |
| leysenkobe | 2:ea7eb499a27a | 84 | return false; |
| leysenkobe | 2:ea7eb499a27a | 85 | } |
| leysenkobe | 2:ea7eb499a27a | 86 | } |
| leysenkobe | 2:ea7eb499a27a | 87 | return true; |
| leysenkobe | 2:ea7eb499a27a | 88 | } |
| leysenkobe | 0:88f8e80dc5fd | 89 | bool DAQ::Initialized(void) |
| leysenkobe | 0:88f8e80dc5fd | 90 | { |
| leysenkobe | 0:88f8e80dc5fd | 91 | return(initialized); |
| leysenkobe | 0:88f8e80dc5fd | 92 | } |
| leysenkobe | 0:88f8e80dc5fd | 93 | |
| leysenkobe | 0:88f8e80dc5fd | 94 | //SETTERS |
| leysenkobe | 0:88f8e80dc5fd | 95 | void DAQ::setChannelGain(int channel,int gain) |
| leysenkobe | 0:88f8e80dc5fd | 96 | { |
| leysenkobe | 0:88f8e80dc5fd | 97 | if(channel>=0 && channel<16) |
| leysenkobe | 0:88f8e80dc5fd | 98 | { |
| leysenkobe | 0:88f8e80dc5fd | 99 | channels[channel]->setAmplification(gain); |
| leysenkobe | 0:88f8e80dc5fd | 100 | } |
| leysenkobe | 0:88f8e80dc5fd | 101 | } |
| leysenkobe | 0:88f8e80dc5fd | 102 | void DAQ::enableChannel(int channel) |
| leysenkobe | 0:88f8e80dc5fd | 103 | { |
| leysenkobe | 0:88f8e80dc5fd | 104 | if(channel>=0 && channel<16) |
| leysenkobe | 0:88f8e80dc5fd | 105 | { |
| leysenkobe | 0:88f8e80dc5fd | 106 | channels[channel]->Enable(); |
| leysenkobe | 0:88f8e80dc5fd | 107 | } |
| leysenkobe | 0:88f8e80dc5fd | 108 | } |
| leysenkobe | 0:88f8e80dc5fd | 109 | void DAQ::disableChannel(int channel) |
| leysenkobe | 0:88f8e80dc5fd | 110 | { |
| leysenkobe | 0:88f8e80dc5fd | 111 | if(channel>=0 && channel<16) |
| leysenkobe | 0:88f8e80dc5fd | 112 | { |
| leysenkobe | 0:88f8e80dc5fd | 113 | channels[channel]->Disable(); |
| leysenkobe | 0:88f8e80dc5fd | 114 | } |
| leysenkobe | 0:88f8e80dc5fd | 115 | } |
| leysenkobe | 0:88f8e80dc5fd | 116 | void DAQ::setInitialized(bool init) |
| leysenkobe | 0:88f8e80dc5fd | 117 | { |
| leysenkobe | 0:88f8e80dc5fd | 118 | initialized = init; |
| leysenkobe | 0:88f8e80dc5fd | 119 | } |