Attiny 13 als Schwellwertschalter

OP #1763685
moin,

folgendes Szenario,

mit oben aufgeführtem Code versuche ich einen Strom zu messen und bei 
Unterschreitung, in angemessener Zeit, eine LED_Gruen am Ausgang zu 
schalten.

Leider funktioniert der Code nur einmal. Wenn ich nach einmaligem 
Durchlauf wieder den Strom erhöhe müsste wieder die LED_Rot wieder 
leuchten.

1) Warum funktioniert die Schleife nur einmal?
2) Wie kann ich das vielleicht anders realisieren?

Im Versuchsaufbau habe ich ein Potentiometer am ADC Eingang.

Der Strom wird gemessen mit einem AC 1020 und wird anschliessend 
gleichgerichtet.

Bitte mit Nachsicht behandeln, ist mein erstes Projekt mit AVR.

Danke Raik
Angehängte Dateien:
#1763692
Dein Code ist ... massig komplizierter als notwendig für die 
beschriebene Aufgabenstellung. Das jetzt zu analysieren bei welchem 
while welches Flag falsch steht etc. ist viel zu umständlich.

Schreib das ganze noch mal. Aber schreib es diesmal deutlich einfacher.
Du brauchst nur 1 Endlos-Schleife und das ist die Hauptschleife in 
main() (bei dir for(;;)). Alle anderen Schleifen sind überflüssig und 
verwirren nur.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.