Forum: Mikrocontroller und Digitale Elektronik Eingang_Analog, Digitall Ausgang


von P. I. (pimi)


Angehängte Dateien:

Lesenswert?

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!

von Johannes M. (johnny-m)


Lesenswert?

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
Noch kein Account? Hier anmelden.