Forum: Mikrocontroller und Digitale Elektronik Comparator in AVR C


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von O. A. (sokrates1989)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich wollte ein Beispiel aus einem Buch testen.

Leider bekomme ich die Fehlermeldung
'ACO' undeclared first use in this function.

Was müsste ich ändern um den Fehler verschwinden zu lassen? Im Buch 
finde ich keine weiteren Hinweise.
1
#define F_CPU 3686400
2
#include <avr/io.h>
3
4
void init (void)
5
{
6
DDRB= 0x03;   //PORTB = Ausgang
7
}
8
9
main()
10
{
11
  init();
12
  while (1)
13
  {
14
  if (ACSR & (1<<AC0))
15
    PORTB = 0x01;
16
  else
17
    PORTB = 0x02;
18
  }
19
}

von Felix (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Welche Umgebung, welcher Controller? Für den Controller liegt irgendwo 
eine io"Controllerabkürzung".inc.
Darin mal nach "AC*" suchen...

von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Das Bit heißt vermutlich ACO (oh wie Output), nicht AC0 (null).

von Carl D. (jcw2)


Bewertung
0 lesenswert
nicht lesenswert
Das Ding heißt AC"Ooohhh" und nicht AC"Null"

Edit: zu spät ;-)

: Bearbeitet durch User
von S. Landolt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
"... durch zweier Zeugen Mund
Wird allerwegs die Wahrheit kund"

von Christian S. (roehrenvorheizer)


Bewertung
0 lesenswert
nicht lesenswert
"Bit 5 – ACO: Analog Comparator Output
ACO is directly connected to the comparator output."

MfG

von O. A. (sokrates1989)


Bewertung
0 lesenswert
nicht lesenswert
Danke. es geht jetzt. (Musste noch die Eingänge hinzufügen)
Nur bin ich etwas verwirrt.
Das Programm im Buch ist echt kurz aber es genügt um 2 Analoge Werte zu 
vergleichen und signalisiert diese.

Ich habe ein Programm von einem Komillitonen vor mir liegen, das ist 
ellen lang. Was haben die gemacht??

Die Aufgabenstellung lautet.,
Es soll ein analoger Ist Wert mit einem analogen Soll wert verglichen 
werden. Bei Unterschreiten des Soll WErtes leuchtet die grüne Led. Bei 
Überschreiten die rote..

Das erfüllt das Programm meiner Meinung nach...oder habe ich etwas 
übersehen?

: Bearbeitet durch User
von void (Gast)


Bewertung
0 lesenswert
nicht lesenswert
O. A. schrieb:
> Ich habe ein Programm von einem Komillitonen vor mir liegen, das ist
> ellen lang. Was haben die gemacht??

Den AD-Wandler benutzt.


> Das erfüllt das Programm meiner Meinung nach...
> oder habe ich etwas übersehen?

Ja. Wenn sich die Aufgabenstellung aber leicht zu einem 
Soll-Werte-Bereich erweitert, sind deine Kommilitonen in 1 Minute fertig 
und du fängst nochmal von vorne an.

von c-hater (Gast)


Bewertung
0 lesenswert
nicht lesenswert
void schrieb:

> Ja. Wenn sich die Aufgabenstellung aber leicht zu einem
> Soll-Werte-Bereich erweitert, sind deine Kommilitonen in 1 Minute fertig
> und du fängst nochmal von vorne an.

Wenn sich die Aufgabenstellung ändert, ändert sich natürlich immer ein 
wesentliches Kriterium zur Auswahl der bestmöglichen Lösung. Sollte man 
nun allein deshalb auf die Wahl der bestmöglichen Lösung verzichten, 
weil mögliche andere Aufgabenstellungen eine andere Lösung erfordern?

Nein, natürlich nicht. Denn das führt am Ende zu einer Eierlegenden 
Wollmilchsau von Programm, die zwar theorethisch alles kann, praktisch 
aber dafür nix davon wirklich gut...

Im konkreten Fall geht es natürlich (wie so oft) um die mögliche 
Geschwindigkeit. Wenn z.B. irgendwas zu erfassen ist, was weniger als 13 
MCU-Takte dauert, fallen die ADC-Lösungen naturgemäß auf die Nase, denn 
so lange dauert eine Wandlung im absoluten Minimum. Tatsächlich sind die 
Restriktionen sogar noch sehr viel größer, weil man meistens MCU-Takte 
verwendet, die zusätzliche Bremsen für den ADC erfordern, sprich: einen 
Prescaler>1...

Mit dem AC kann man hingegen sehr viel kürzere Ereignisse erfassen.

Beitrag #5450373 wurde vom Autor gelöscht.

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]
  • [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.