![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
tp analogique numérique + numérique analogique
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 AnalogIn analog_value(A0); 00004 AnalogOut sortie(D7); 00005 Timer Chronometre; 00006 Ticker interruption; 00007 00008 float amplitude; 00009 DigitalOut led(LED1); 00010 00011 void signal_de_sortie() { 00012 sortie = (float) (0.5+amplitude*sin(Chronometre.read()*314)); 00013 } 00014 00015 int main() 00016 { 00017 Chronometre.start(); 00018 float meas_r; 00019 float meas_v; 00020 unsigned int valeur_numerique; 00021 interruption.attach(&signal_de_sortie, 0.001); // exécute la fonction 1000 x par secondes 00022 00023 printf("\nAnalogIn example\n"); 00024 00025 while(1) { 00026 00027 meas_r = analog_value.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range) 00028 meas_v = meas_r * 3300; // Converts value in the 0V-3.3V range 00029 valeur_numerique = analog_value.read_u16(); 00030 00031 // Display values 00032 printf("measure = %d = %f = %.0f mV\n", valeur_numerique, meas_r, meas_v); 00033 00034 // sortie = meas_r; 00035 amplitude = meas_r / 2; 00036 00037 // LED is ON is the value is below 1V 00038 if (meas_v < 1000) { 00039 led = 1; // LED ON 00040 } else { 00041 led = 0; // LED OFF 00042 } 00043 00044 wait(1.0); // 1 second 00045 } 00046 }
Generated on Fri Jul 29 2022 01:05:36 by
![doxygen](doxygen.png)