Naaaja.
Moderne Programmierer fassen oft deshalb keine Interrupts an, weil
-- sie ein Echtzeit-OS verwenden, und sich nicht in Niederungen wie Zeitbasis, USB, MLI, DMA oder CAN begeben müssem
-- sie es nicht gepeilt bekommen und nicht wirklich wissen, was sie tun, mal eben globel IRQs sperren, weil die nerven und damit das System aushebeln, in einer ISR ne komplette FFT-Berechnung machen wollen, etc.
-- So viele Silicon-Bugs in den µC sind, daß die einzige Funktion, die tut was sie soll, ein NOP ist. Und daher möglichst wenig der HW angefasst wird.
@izaseba
Um Schwebungen zu machen lässt du einfach 2 Pointer durch das sin-Array laufen. Einer langsam, der andere schneller (hast du schon). Die Werte werden dann einfach multipliziert. Da die Werte im Array (bzw die daraus erhaltenen sin-Werte) mit 128 skaliert sind, musst du nur 2 Werte multiplizieren (als signed 16 bit) und dann 7 Bits nach rechts shiften (oder 8 nach rechts und 1 nach links). Dann hat das Produkt die gleiche Skalierung.
Mit der Hüllkurve ähnlich. Nur daß die Hüllkurve wohl direkt berechnet wird.
Lesezeichen