wir hatten ja schon mal anderweitig andiskutiert, dem DCG eine Arbitrary-Funktion zu spendieren. Wer mich kennt, weiß, daß mir das keine Ruhe läßt, bis die Idee nicht mindestens mal auf ihre Machbarkeit abgeklopft ist. Ich hab' dann da mal kurz was vorbereitet

Von 11,4V auf 4.8V, dann auf 7,6V und wieder zurück auf 11,4V. Zwischen den Stützstellen im Interrupt auch brav interpoliert, mit Auflösung 1 ms. Sieht doch nett aus, oder?

Und die Rampe sieht auch sehr nett aus, allerdings mit der Dual-DAC-Version des DCG:
Bevor Ihr jetzt meint, das ist alles schon fertig, da muß ich Euch enttäuschen. Das ist extrem experimenteller Code, denn das DCG macht derzeit nix anderes, als diese Sequenz wiederholt auszugeben. Die DAC-Werte sind auch nur frei Auge geschätzt und fest vorgegeben.
Damit wollte ich auch nur mal überprüfen, was die Hardware so kann. Wenn sich dann noch jemand findet, der das Resultat auf einem Standard-DCG testen will, dann baue ich das noch um.
Jetzt bin ich erst mal gespannt, was Ihr dazu sagt.
Viele Grüße
Paul
PS: Die Parameter zu dem Array sind diese:
Code: Alles auswählen
// 12V 12V 5V 5V 7V 7V 12V
static volatile uint16_t ArbDAC[] = {0xC000, 0xC000, 0x5000, 0x5000, 0x8000, 0x8000, 0xC000}; // DAC in raw values
static volatile uint16_t ArbT[] = {200 , 20 , 50 , 10 , 100 , 20 , 0}; // Duration in ms