Fensterkomparator mit AVR

OP #678847
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.
OP #679628
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?
#679633
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.
(Firma: TravelRec.) Persönliche Seite #679654
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.
Moderator Persönliche Seite #680435
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.
Gast #680455
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren