www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fensterkomparator mit AVR


Autor: Thomas Richter (skeleton)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie kann ich einen Fensterkomparator mittels AVR realisieren? Er sollte 
innerhalb 3 Spannungsbereiche und zusätzlicher Lichtschranke jeweils 
eine andere Aktion mittels SPI-Bus durchführen. Hab mir das mit 
UND-Funktionen überlegt.Nur wie gebe ich die Spannungsbereiche für die 
Fenster ein?Ideen Ratschläge??? ich bin für alles offen und leider 
Anfänger, lese mich aber grad ein.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
deine Frage ist so nicht beantwortbar.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu messende Spannung am AD-Wandler anlegen (u.U. über Spannungsteiler).
AD-Wandler einlesen.
AD-Wert mit entsprechenden Grenzwerten vergleichen
Nachgucken, ob Lichtschranke auch irgendwas gemacht hat.
Daten per SPI ausgeben.

sozusagen: Pippifax

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Nur wie gebe ich die Spannungsbereiche für die Fenster ein?

Über Konstanten, die Du im AVR-Flash oder AVR-EEPROM ablegst oder über 
eine Anwender-Schnittstelle, wie zum Beispiel ein Display und ein paar 
Tasten oder einen Drehencoder.

Autor: Thomas Richter (skeleton)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stichwort: Pippifax
mal langsam autofahren musste man auch erst lernen und es war schwer 
jetzt kanns jeder und ist jetzt pippifax.ich muss es noch lernen...das 
programmieren...
hilft mir nicht weiter wenn ich die Befehle dazu nicht kenne,das prinzip 
aber schon

ich muss zwischen den fenstern jeden gemessenen spannungswert eine 
bitfolge zuweisen.
die frage ist wie kann ich die grenzwerte der fenster 
definieren?(befehle)

mit der lichtschranke/Reed-Relais habe ich mich missverständlich 
ausgedrückt..
der AVR soll die spannung messen und gleichzeitig die 
lichtschranke/Reed-Relais auswerten, das ganze mit einer UND-Verknüpfung 
abhängig vom Spannungswert an die SPI-schnittstelle

hoffe ich habs jetzt nicht geschafft alle komplett zu verwirren

@ Travel Rec.
wie kann ich diese konstanten definieren?Mögliche Schnittstellen fallen 
aus;soll automatisch funktionieren ohne manuelle eingriffe

@ crazy horse
hilft das weiter?

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das wirklich so schwer, daß man sich das nicht mit dem gesunden 
Menschenverstand überlegen kann?

Z.B. so:

Wenn der ADU einen Wert < 100 liefert, dann liegt er im Fenster 0
Wenn der ADU einen Wert < 200 liefert, dann liegt er im Fenster 1
Wenn der ADU einen Wert < 300 liefert, dann liegt er im Fenster 2

usw. usf. -- eben so, wie man das auch machen würde, wenn man zu Fuß 
irgendwelche Größen in Größenklassen einsortieren will.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in Assembler:

cpi  ADWERT, Konstante ;ADWert 8Bit vom AD-Wandler, Konstante 0-255
brcs Sprungmarke
...

oder:

cpi  ADWERTL, low(Konstante) ;ADWertL untere 8 Bit vom AD-Wandler
cpc  ADWERTH, high(Konstante) ;ADWertH obere 8 (2) Bit vom AD-Wandler
brcs Sprungmarke
...


Schau Dir mal die Befehlsübersicht des Assemblers im AVR-Studio und 
einiger der vielen Beispielcodes in der Codesammlung und der AppNotes 
von ATMEL an.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso denn jetzt auch noch in Assembler??? Meinst du nicht, daß Thomas 
zuerst mal mit einer höheren Programmiersprache anfangen sollte?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf keinen Fall. Ich selbst habe einst mit ASM begonnen und bin dabei 
geblieben. Bislang habe ich alle meine Projekte damit bewältigen können 
und das sind inzwischen etliche! Aber das soll der Thomas mal selbst 
entscheiden und es war ja nur ein Tip, wie man es machen kann.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun ja, ich programmiere selbst seit Jahrzehnten in ASM, aber das einem 
Anfänger zum Einstig zu empfehlen, ist ungefähr so sinnvoll, wie einem 
Kind das Schwimmen beizubringen, indem man es einfach ins Wasser 
wirft...

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das siehst Du so. Die Struktur der einzelnen ASM-Befehle zu verstehen 
ist ziemlich einfach, vor allem, wenn man mit 5 Befehlen anfängt und, 
nachdem die erste LED dann blinkt, sich langsam steigern kann. Außerdem 
braucht man außer den Datenblättern und AppNotes keine weitere 
Fachlektüre. Der ideale Wochenendspaß.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uhu Uhuhu wrote:

> ..., ist ungefähr so sinnvoll, wie einem
> Kind das Schwimmen beizubringen, indem man es einfach ins Wasser
> wirft...

...oder um bei Thomas' Autofahr-Vergleich zu bleiben: wie einem das
Autofahren beizubringen, indem man ihm die Einzelteile des Autos
vor die Nase legt.  Nach dem Zusammenschrauben weiß er zwar, wie
das Auto funktioniert (und kann es notgedrungen auch fahren,
schließlich musste er oft genug zwischendrin ausprobieren, was
schon funktioniert), aber es ist dann wohl einige Zeit ins Land
gegangen.

Um die Frage aber für Thomas passend zu beantworten, müsste man
wohl auch seine Umgebung (Programmiersprache, Debugmöglichkeiten,
...) kennen.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Um die Frage aber für Thomas passend zu beantworten, müsste man
>wohl auch seine Umgebung (Programmiersprache, Debugmöglichkeiten,
>...) kennen.

Die Vorkenntnisse im Umgang mit programmierbaren Bausteinen mal nicht zu 
vergessen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

@Jürgen: Dein Vergleich hinkt etwas. Im Gegensatz zum Autofahren MUSST 
du zum Programmieren deinen wissen, was jedes Register und jedes Bit 
bewirkt. Das hat nichts mit der Programmiersprache zu tun.
Wenn ich die Fragen hier im Forum betrachte komme ich aber zu dem 
Schluss, daß C-Anfänger mehr mit der Spache, ASM-Anfänger mehr mit der 
Umsetzung Probleme haben.

MfG Spess

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.