mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Attiny 13 als Schwellwertschalter


Autor: Raik C. (raik_c)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Raik C. (raik_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
moin,

habe jetzt die Messschleife wie folgt geändert

if (ADC_Read(1) > Schwelle)
    {
        ROT_AN ();
      s = 0;
    }
    else if (s > 15)
           {
           GRUEN_AN();
        s = 0;
       }


und es läuft.
Danke für den Denkanstoss Raik

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.