Hallo Mikrocontrollerprofis, Noch mal kurz zur meinem vorherigen Beitrag. Ich versuche einen ATmega 8 Mikrocontroller in C zu programmieren. Von der Theorie des AVR-GCC-Tutorial bin ich leider nicht schlau genug geworden um mein Problem zu lösen. Ich benutze die SiSy Software, habe leider wenig Erfahrung und benötige etwas Hilfe. Ich möchte folgendes: Wenn am Eingang C0 eine analoge Spannung, den Wert von ca. 2.5V unterschreitet (fallende Flanke), soll ein Ausgang B0 gesetzt werden. Und beim überschreiten des Wertes von ca. 3V soll B0 rückgesetzt werden. Dazu habe ich mir mit dem Assistenten Code-Vizard, folgendes Quellecode (siehe Anhang) erstellt. Im Code-Vizard habe ich einen Komparator mit Interrupt und Wandler verwendet (ich weiß nicht ob überhaupt beide benötigt werden). Zur Realisierung meines Programms muss man wahrscheinlich nur ein Paar Befähle (Zeilen) dazu schreiben. Ich bitte um Tipps. Danke im Voraus!
Erstens: Warum postest Du C-Code als .txt-Datei? Zweitens: Lass den Code Wizard weg. Es bringt nichts, wenn da irgendwelcher Code erstellt wird, den Du gar nicht verstehst. Wenn das ganze mit AVR-GCC compiliert werden soll, geht das vermutlich eh in die Hose. Die sbi- und cbi-Makros sind z.B. afaik seit Jahren deprecated und werden von aktuellen Compiler-Versionen nicht mehr unterstützt. Schau am besten mal das AVR-GCC-Tutorial an. Da steht, wie es gemacht wird und auch, wie es funktioniert. Drittens: Wenn Du nur einen Vergleich mit einem Schwellwert machen willst, brauchst Du keinen ADC. Da genügt der Komparator. Wenn Du den ADC gar nicht brauchst, dann kannst Du ihn übrigens abschalten und dann seinen Multiplexer für den Komparator nutzen (also den Port C als Eingänge für den Komparator). In Deinem Fall ist es aber wahrscheinlich unnötig, da Du eh nur einen Eingang abfragen willst. Da Du mit einer Referenz vergleichen willst, solltest Du dann aber als Eingang AIN1 (PD7) nehmen. Die interne Bandgap-Referenz kann nämlich nur mit AIN0 verbunden werden. Du brauchst dann extern noch einen Spannungsteiler, der die 2,5 V auf den Pegel der Bandgap-Referenz herunterteilt (also auf 1,1 V).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.