![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
DIC DAC Beispiel
main.cpp
- Committer:
- Lukas_Adlboller
- Date:
- 2020-01-13
- Revision:
- 0:2aca3f53fe79
- Child:
- 1:c8943c51b10d
File content as of revision 0:2aca3f53fe79:
#include "mbed.h" #define PI 3.14159 AnalogOut dacOutput(p18); // Ausgangs Pin 18 Ticker valueTicker; float voltageValues[100]; // 100 Punkte int actualPoint; // Aktueller Punkt int outputMode = 1; // 1 = Sägezahn, 2 = Rechteck, 3 = Sinus void outputToDAC() { dacOutput.write(voltageValues[actualPoint]); actualPoint++; if(actualPoint >= 100) { actualPoint = 0; } } int main() { actualPoint = 0; for(int i = 0; i < 100; i++) { switch(outputMode) { case 1: voltageValues[i] = (float)i / 100.0f;; break; case 2: voltageValues[i] = i <= 49 ? 1 : 0; break; case 3: voltageValues[i] = 0.5f * sin(((float)i * PI) * 3.6f / 180) + 0.5f; // w = 6283 = 2 * PI * f break; } } valueTicker.attach_us(&outputToDAC, 10); while(1) { } }