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.
Dependencies: mbed
main.cpp@0:b4f22fa54d82, 2018-04-12 (annotated)
- Committer:
- msouchet
- Date:
- Thu Apr 12 09:14:46 2018 +0000
- Revision:
- 0:b4f22fa54d82
tp conversion analogique num?rique + num?rique analogique
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| msouchet | 0:b4f22fa54d82 | 1 | #include "mbed.h" |
| msouchet | 0:b4f22fa54d82 | 2 | |
| msouchet | 0:b4f22fa54d82 | 3 | AnalogIn analog_value(A0); |
| msouchet | 0:b4f22fa54d82 | 4 | AnalogOut sortie(D7); |
| msouchet | 0:b4f22fa54d82 | 5 | Timer Chronometre; |
| msouchet | 0:b4f22fa54d82 | 6 | Ticker interruption; |
| msouchet | 0:b4f22fa54d82 | 7 | |
| msouchet | 0:b4f22fa54d82 | 8 | float amplitude; |
| msouchet | 0:b4f22fa54d82 | 9 | DigitalOut led(LED1); |
| msouchet | 0:b4f22fa54d82 | 10 | |
| msouchet | 0:b4f22fa54d82 | 11 | void signal_de_sortie() { |
| msouchet | 0:b4f22fa54d82 | 12 | sortie = (float) (0.5+amplitude*sin(Chronometre.read()*314)); |
| msouchet | 0:b4f22fa54d82 | 13 | } |
| msouchet | 0:b4f22fa54d82 | 14 | |
| msouchet | 0:b4f22fa54d82 | 15 | int main() |
| msouchet | 0:b4f22fa54d82 | 16 | { |
| msouchet | 0:b4f22fa54d82 | 17 | Chronometre.start(); |
| msouchet | 0:b4f22fa54d82 | 18 | float meas_r; |
| msouchet | 0:b4f22fa54d82 | 19 | float meas_v; |
| msouchet | 0:b4f22fa54d82 | 20 | unsigned int valeur_numerique; |
| msouchet | 0:b4f22fa54d82 | 21 | interruption.attach(&signal_de_sortie, 0.001); // exécute la fonction 1000 x par secondes |
| msouchet | 0:b4f22fa54d82 | 22 | |
| msouchet | 0:b4f22fa54d82 | 23 | printf("\nAnalogIn example\n"); |
| msouchet | 0:b4f22fa54d82 | 24 | |
| msouchet | 0:b4f22fa54d82 | 25 | while(1) { |
| msouchet | 0:b4f22fa54d82 | 26 | |
| msouchet | 0:b4f22fa54d82 | 27 | meas_r = analog_value.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) |
| msouchet | 0:b4f22fa54d82 | 28 | meas_v = meas_r * 3300; // Converts value in the 0V-3.3V range |
| msouchet | 0:b4f22fa54d82 | 29 | valeur_numerique = analog_value.read_u16(); |
| msouchet | 0:b4f22fa54d82 | 30 | |
| msouchet | 0:b4f22fa54d82 | 31 | // Display values |
| msouchet | 0:b4f22fa54d82 | 32 | printf("measure = %d = %f = %.0f mV\n", valeur_numerique, meas_r, meas_v); |
| msouchet | 0:b4f22fa54d82 | 33 | |
| msouchet | 0:b4f22fa54d82 | 34 | // sortie = meas_r; |
| msouchet | 0:b4f22fa54d82 | 35 | amplitude = meas_r / 2; |
| msouchet | 0:b4f22fa54d82 | 36 | |
| msouchet | 0:b4f22fa54d82 | 37 | // LED is ON is the value is below 1V |
| msouchet | 0:b4f22fa54d82 | 38 | if (meas_v < 1000) { |
| msouchet | 0:b4f22fa54d82 | 39 | led = 1; // LED ON |
| msouchet | 0:b4f22fa54d82 | 40 | } else { |
| msouchet | 0:b4f22fa54d82 | 41 | led = 0; // LED OFF |
| msouchet | 0:b4f22fa54d82 | 42 | } |
| msouchet | 0:b4f22fa54d82 | 43 | |
| msouchet | 0:b4f22fa54d82 | 44 | wait(1.0); // 1 second |
| msouchet | 0:b4f22fa54d82 | 45 | } |
| msouchet | 0:b4f22fa54d82 | 46 | } |