Forum: Mikrocontroller und Digitale Elektronik ATTINY84A Zeitrelais


von Lord Kirigaya (Gast)


Lesenswert?

Hallo,

ich versuche mit Assembler eine ATTINY84A so zu programmieren, dass ich 
ein Zeitrelai mit Einschaltverzögerung, Ausschaltverzögerung und Ein- 
und Ausschaltverzögerungskombi bauen kann.

Die Modies sollen durch ein Drehschalter umgestellt werden und die 
Zeitverzögerung durch ein Poti von 10s-60s einstellbar sein.

Hat jemand ein komplettes Skript oder Teilskripte (z.B.: nur 
Einschaltverzögerung) für Ideen und Lösung?

von Ingo Less (Gast)


Lesenswert?

Lord Kirigaya schrieb:
> Hat jemand ein komplettes Skript oder Teilskripte (z.B.: nur
> Einschaltverzögerung) für Ideen und Lösung?
Wo genau ist denn dein Problem und warum in ASM? Im einfachsten Fall 
sind das 100-200 Zeilen Code, wenn überhaupt...

von Karl M. (Gast)


Lesenswert?

Lord Kirigaya schrieb:
> Hat jemand ein komplettes Skript oder Teilskripte (z.B.: nur
> Einschaltverzögerung) für Ideen und Lösung?

Was soll in einer Vorlesung drin stehen?

Klar ist das in jeder AVR Programmiersprache beherschbar.

Ein Hochsprache macht es einfacher. In AVR Assembler baue ich mir über 
Macros eine zielorientierte Spracherweiterung.
Das Vermindert die Schreibarbeit und gestattet mir z.B. automatisch 
zwischen in und load (ld) und out und store (st) bei der 
Programmgenerierung zu unterscheiden.

von doz (Gast)


Lesenswert?

Lord Kirigaya schrieb:
> ich versuche mit Assembler eine ATTINY84A so zu programmieren, dass ich
> ein Zeitrelai mit Einschaltverzögerung, Ausschaltverzögerung und Ein-
> und Ausschaltverzögerungskombi bauen kann.

Nein, eigentlich versuchst du für dein Problem eine fertige Lösung zu 
finden. Warum es gerade in ASM passieren soll, wenn du noch nicht mal 
einen Ansatz für deine Lösung vorstellen kannst ist mir auch 
schleierhaft..

von Lord Kirigaya (Gast)


Lesenswert?

Das Problem ist, dass ich bis jetzt wenig vom Programmieren verstehe und 
nur ein Anfänger bin, daher die Frage nach einem kompletten 
Funktionstüchtigen Skript, mit dem ich ein Verständnis bekomme für 
Assembler und zudem noch ein fertiges Relais habe. Kleinere Skripts 
bekomme ich auch hin. Jedoch fehlen mir hier die Ideen.

von Ingo Less (Gast)


Lesenswert?

Lord Kirigaya schrieb:
> Jedoch fehlen mir hier die Ideen
Das ist schlecht. Einen guten Programmierer macht aus, dass er Probleme 
analytisch und systematisch in Teilprobleme zerlegt (Funktionen). Ohne 
Ideen, kein Code. Ohne Code keine Lösung.

Die Kenntnis und Beherschung der Systax macht noch langen keine guten 
Programmierer aus.

Fang doch als erstes an, die Interrupts im Interval 10ms zu erzeugen. 
Darauf baust du dann einen Zähler auf. Dann liest du dein Poti ein. Dann 
liest du deinen Schalter ein. Dann steuerst du deinen Ausgang mal an. 
Dann verheiratest du den ganzen Kram zu deinem Zeitrelais...

von Ingo Less (Gast)


Lesenswert?

Ich würde auch C als Programmiersprache verwenden, sofern du keine 
Vorgabe ASM hast.

von Bodensee (Gast)


Lesenswert?

Lord Kirigaya schrieb:
> mit dem ich ein Verständnis bekomme für
> Assembler und zudem noch ein fertiges Relais habe.

Das kannst auch mit der Kostenlosen Demo Version von BasCom machen.
Aber was ist ein fertiges Relais?

von Ingo Less (Gast)


Lesenswert?

Bodensee schrieb:
> BasCom
Bitte nicht...

von Karl M. (Gast)


Lesenswert?

Tipp:

um einfach die ersten Schritt mit AVR Assembler zu tätigen, kann man mit 
den Einführungen für die AVR Hardware und dem AVR Assembler starten.

So nach 1 Jahr solltest Du soweit sein, über den Tellerrand zu schauen.

von HildeK (Gast)


Angehängte Dateien:

Lesenswert?

Lord Kirigaya schrieb:
> Hat jemand ein komplettes Skript oder Teilskripte (z.B.: nur
> Einschaltverzögerung) für Ideen und Lösung?

Ich hab mal was programmiert. Ob es passt für dich?
- zwei Variationen
    Zeit Pot 1   | Zeit Pot2
  | Verzögerung   ____
 _|______________|      |_____ Mode 'Futter'
  |
  +Start
  |______________
 _| Zeit Pot1    |____________ Mode 'Treppe'

- in C programmiert für Tiny 25/45/85; du musst selber prüfen, ob es auf 
einen Tiny84 direkt übertragbar ist (Interrupts, etc.)
- zwei Potis, für die Einschaltverzögerung und die Pulsdauer. Wenn Pot 1 
beim Reset auf Minimum steht, dann wird der Mode 'Futter' gewählt
- Watchdogtimer verwendet, der ist zwar nicht besonders genau, aber in 
dem Fall völlig ausreichend.
- weiter Zeitbereich in der Software einstellbar; mir ging es bei dem 
Versuch hauptsächlich darum zu sehen, welche Zeiten man mit dem µC 
erreichen kann
- es muss natürlich durch ein externes Signal der Vorgang ausgelöst 
werden, hier ist es eine Taste
- minimaler Eigenstromverbrauch
- Schaltbild ist als ASCII-Grafik im SW-Kopf

Lord Kirigaya schrieb:
> mit Einschaltverzögerung, Ausschaltverzögerung und Ein-
> und Ausschaltverzögerungskombi

Was meinst du mit der Unterscheidung dreier Varianten? Nur eine 
Ausschaltverzögerung kann ich mir nicht vorstellen, vorher muss ja mal 
eingeschaltet werden.
IMHO gibt es nur die oben gezeichneten Varianten.

von Ingo Less (Gast)


Lesenswert?

HildeK schrieb:
> Nur eine
> Ausschaltverzögerung kann ich mir nicht vorstellen, vorher muss ja mal
> eingeschaltet werden.
Z.B. ein Nachlauf für einen Lokuslüfter. Trigger erfolgt per 
Lichtschaler:

Licht an  -> Lüfter geht direkt oder mit Zeitverzug ein
Licht aus -> Lüfter läuft für T = Nachlaufzeit nach

von Harald (Gast)


Lesenswert?

Wenn Du noch wenig Kenntnisse hast:
Bevor Du das auf deinem Wunschprozessor AtTiny84 versuchst, würde ich 
Dir empfehlen, das zunächst auf Arduino zu programmieren.
Warum? Da gibt es eine riesige Community und Tonnen an ähnlichen 
Projekten im Netz. Wenn es dann läuft kannst Du das immer noch mit den 
gewonnenen Erfahrungen umsetzen (oder gleich den ATMEGA 328 als Urtyp in 
der Schaltung lassen)

von Hennes (Gast)


Lesenswert?

Lord Kirigaya schrieb:
> Das Problem ist, dass ich bis jetzt wenig vom Programmieren verstehe und
> nur ein Anfänger bin, daher die Frage nach einem kompletten
> Funktionstüchtigen Skript, mit dem ich ein Verständnis bekomme für
> Assembler und zudem noch ein fertiges Relais habe. Kleinere Skripts
> bekomme ich auch hin. Jedoch fehlen mir hier die Ideen.


Hallo

Danke :-)

Genau nach so was habe ich am Beginn und auch später beim µC (AVR ) 
programmieren erlernen gesucht.

1001 einfache Beispiele (egal welche Sprache) oder halt viel fertige 
Bibliotheken und Funktionen die viel erledigen leicht zu nutzen sind 
aber damit auch alles (für mich) interessante verbergen.
Die Fragen in Foren und das googeln zu: Wie funktioniert diese oder jene 
Bibliothek bzw. wie steuere ich z.B. ein Display an, nutze die Timer und 
Counter in einen echten Projekt (nicht nur als isolierten Selbstzweck) 
führt leider immer zu den gleichen Seiten die letztendlich nichts 
tiefgreifend Schritt für Schritt, oder nur den mehr oder weniger den 
ewig gleichen einfachen Kram erklären, bzw. man wird missverstanden oder 
bekommt die gleichen nicht hilfreichen Antworten (Lernen, machen, 
Erfahrung... bla bla bla).
Fertige Bibliotheken (C, C+ "Arduinosprache") auseinander zu nehmen ist 
meistens, da man ja noch Anfänger ist, sehr schwierig bis unmöglich da 
oft viele "Tricks" genutzt werden, extrem um die Ecke gedacht wird und 
die Kommentierung oft sehr bescheiden oder nur geeignet für andere 
Spezialisten ist...

Für Assembler ist das dann noch eine Stufe schlimmer :-(

Eine recht gute Seite (Wobei man einige wertende Kommentare und 
Meinungsäußerungen des Autoren besser nicht so ernst nimmt - und mit den 
etwas verworrenen Seitenaufbau leben muss) die sich auch an Anfänger 
wendet und so einiges tatsächlich Schritt für Schritt erklärt 
(allerdings teilweise dort wo man es nicht vermuten würde - halt der 
schon angesprochene verworrene Seitenaufbau) ist

http://www.avr-asm-tutorial.net/avr_de/index.html

Auch wenn teilweise recht alte µC verwendet werden und klar erkennbar 
einige Beiträge schon sehr alt sind so wird doch sehr viel gut und 
verständlich erklärt, meiner Meinung besser als bei den wenigen anderen 
deutschsprachigen ASM AVR Lehrgängen die es sonst noch gibt und leider 
alle zu schulisch aufbauen (wobei diese wohl teilweise tatsächlich aus 
den schulischen Bereich stammen und indirekt viel darüber aussagen warum 
selbst die interessantesten und schönsten Themen in schulischen Umfeld 
zur reinen Belastung werden und schnell jegliches echtes Interesse und 
der Spaß daran vergeht...)
http://www.weigu.lu/tutorials/avr_assembler/index.html
Da hat der Autor sehr viel Arbeit investiert, hat eindeutig Ahnung von 
der Materie, werden Quellen genannt aber leider letztendlich... :-(

Dann doch lieber jemand der halt seine "speziellen" Meinungen und 
Vorstellungen hat und dessen Seitenaufbau vielleicht manchmal etwas 
verwirrend und unlogisch ist, der aber versteht wie man als jemand  der 
gezielt (auch mal)Assembler für die µC Programmierung nutzen möchte weil 
er eben aus der Hardwareecke kommt bzw. "alles" verstehen will und keine 
Black Boxes nutzen möchte, denkt und was man als so jemand wirklich an 
Hilfe und Erklärungen benötigt.

Hennes

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.