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 | } |