Gast
#473019
Hallo, ich baue hier eine kleine digitale Regelung mit Atmega16 auf und brauche eure Hilfe. uC: Atmega16 16Mhz Takt Eingang: ADC 8bit 125kHz, Signal an pin0 gegen Masse (Bereich 0-5V) Ausgang: PortC binär (8-bit) und dann auf ne R/2R Brücke. Compiler: CodevisionAVR 1.25.1 Standart Datei mit C-Quelle ist eingefügt Funktion: Der uC sollte Spannung dass an Pin0 anliegt wandeln, umrechnen mit der Formel, und Ergebnis an PortC einstellen und halten, und dann wieder Wert wandeln, berechnen und halten bis der nächste wert berechnet wird. 1.Problem: AD-Wandler und Interrupt ich bin mir nicht sicher ob AD-Wandlung unterbrochen wird wärend die Berechnung mit der Formel läuft. Da muss noch bestimmt am Anfang und am Ende der Berechnung was mit Interrupt passieren :) In pdf-Anleitung von cvavr steht nur bisi was über externe isr's und Timer. 2. Ich habe umgerechnet 128 Takte fürs AD-Wandeln und Berechnen, wird das ausreichen ?, denn ich muss warscheinlich mit float-DatenTyp rechnen weil die konstanten in der Formel Nachkommastellen haben und dazu muss ich noch 3 mal multiplizieren. ... und wenn jemend welche Vorschläge hat um Code schneller und schlanker zu machen wäre ich sehr dankbar. Danke !