Das du dich mit dem Datenblatt befasst ist mir Sonnenklar und sehe ich an deinen Ausführungen. Deine Anregung Datenblatt lesen ist ja richtig und nehme ich auf, da gibt es Erklärungen die ich verstehe und umsetzen kann, manch anderes erschließt sich einfach nicht (ADCW). Vielleicht wird in einigen Jahren doch noch ein Programmierer aus mir
Ich vermute das ADCW nichts mit deinem ADC Projekt zu tun hat.
Möchte.. (Hier jetzt die Aufgabe, Pin A0 unter Zuhilfenahme der 1,1V Referenz lesen und A1 mit der Vcc Referenz) versuchen.)
Wozu sind die Referenzen nötig, geht es da um mehr Genauigkeit?
Ziel ist aus einer vorgebenen Leistung z.B 200 Watt die Phasenanschnittlänge zu berechnen und Stufenlos per Digital Ausgang den Triak anzusteuern.
Dabei habe ich auf Schleifen, Interupts und Delay verzichtet um viele Programmzyklen zu schaffen.
Seit ich von DigitalRead auf PinX umgestellt habe funktioniert das Super im Prinzip fertig. Nur wenn Analogread ausgeführt wird treten einzelne Blinzler auf.
Jetzt möchte ich diesen Weg mal weiterverfolgen und sehen wo es hinführt.
Wenns eine Sackgasse wird werde ich dein Angebot gerne annehmen
Weil analogRead() den Wandlungsvorgang startet und wartet bis er fertig ist, also kurz blockierend wirkt. Deswegen in dem Fall besser den gesamten Vorgang aufteilen. Wandlung starten, in der Zwischenzeit andere Dinge machen und entweder per Interrupt das Ende der Wandlung signalisiert bekommen oder ohne Interrupt auf das Flag pollen.
Warum nicht.
X ySek. nach Nulldurchgang schaltet der DA das Triakgate ein, Ergebnis einer Formel.
Die Reaktionszeit des DA fällt da nicht groß ins Gewicht.
Das ist die Idee, der kritische Moment wo nichts blockieren soll ist der Nulldurchgang und das Timing der Anschnittdauer zu berechnen . Also werde ich einfach zum Test Analogread mit einem Flag kurz sperren.
Danke, das könnte den Blinzler erklären.
Mir gefällt mal die Idee von wwerner ganz gut, Analogread ausführen wenns nicht stört.
Andererseits die Wandlung starten und in der Zwischenzeit im Programm weitermachen ohne Interrupt auf das Flag pollen wär schon elegant.
Schaut kompliziert aus, wäre das so eine art Multithreding selbstgebaut?
Interrupts:
Wenn ich das richtig verstanden habe blockiert ein Interrupt u.a. den Timmer bis er wieder gelöst wird. Dann würden Zeitvergleiche die andere Funktionen steuern in die Hose gehen.
Mir ist es lieber ich Programmiere im Vordergrund etwas mehr und habe dann Abläufe die ich besser durchschauen kann.
Hat vielleicht auch mehr Lerneffekt