Forum: Mikrocontroller und Digitale Elektronik Habe ein neues Problem


von Tobias Halenka (Gast)


Lesenswert?

Nabend.

Habe ein neues Problem!
Ich habe jetzt mit hilfe von Stack ein kleines Lauflicht gebaut.  Ich
möchte meine Schaltung an meine Festplatte anschließen. Habe ich auch
über einen Optokopler gemacht an dem LED Ausgang und läuft auch super.
Jetzt kommt mein Problem: Ich möchte wenn die Festplatte arbeitet das
ein Lauflicht1 läuft. Wenn die Festplatte nicht arbeitet soll
Lauflicht2 laufen! Sprich wenn normalerweise die Festplatten-LED blinkt
soll Lauflicht1 laufen und wenn sie nicht blinkt dann Lauflicht2! Bloß
wie stelle ich das an???

Chip:
AT90S2313

Programiersprache:
AVR

von Benedikt (Gast)


Lesenswert?

Du musst im Prinzip ein retriggerbares Monoflop programmieren.
Ist es gesetzt, blinkt die LED in bestimmten Abständen mindestens
einmal. Ist die LED aus, wird das Monfolop nach einigen 10 bis 100ms
gelöscht.

von Tobias Halenka (Gast)


Lesenswert?

Aha aber wie mache ich das???

P.s.: Ihr seit ja scnell im antworten

von Benedikt (Gast)


Lesenswert?

z.B. mit einem Timerüberlauf.
HDD Lampe an -> Externer Interrupt -> Timer zurücksetzen und Lauflicht
1 einschalten
läuft der Timer über, ist die HDD LED aus, also auf Lauflicht 2
umschalten

von Tobias Halenka (Gast)


Lesenswert?

So habe jetzt mal im Forum und bei google nach Timer geucht! Leider
versteh ich da nur Bahnhof. Zu einen wie ich den Timer Programieren
soll zu anderen wie ich den einbinden soll!
Bitte könnte mir jemand mal einen Code Posten??
Danke im Voraus

von Christof Rieger (Gast)


Lesenswert?

Sorry,

Du hast noch nicht viel mit den AVR gemacht, oder ?
Hast du das Datenblatt zum AT90S2313.
Darin sind die Timer genau beschrieben.
Der Timer ist im Prinzip nichts anderes als ein Zähler
der mit jedem Takt des Quarzes um eins erhöht wird.

Frage ? wie konntest du ein für die Augen wahrnehmbares Lauflicht
bauen ohne die Timer zu nutzen.

Taktest du den AVR so langsam oder hast du mehrstufige Zählerschleifen
programmiert

von Tobias Halenka (Gast)


Lesenswert?

Ich habe Zählerschleifen benutzt.

von Christof Rieger (Gast)


Lesenswert?

Hast du den das Datenblatt vom AT90S2313 ?

von Tobias Halenka (Gast)


Lesenswert?

So habe die PDF aber da steht zwar was über Timer aber nicht wie man sie
Programiert!!!! Ich kann da mit nichts anfangen!

von Werner (Gast)


Lesenswert?

Vielleicht solltest du erstmal nen paar grundlagen machen und verstehen.
Allein Dein erstes Posting mit der Programmiersprache AVR zeugt nicht
unbedingt davon, das Du dich mit dem Thema beschäftigt hast.
Es gibt hier ein sehr gutes Tutorial. Lese, baue und verstehe erstmal
das, dann geht das mit eigenen Projekten auch viel einfacher.

von Christof Rieger (Gast)


Lesenswert?

Nehmen wir den timer 0

er hat folgende register:

TCCR0 für die Einstellung des vorteilers
TCNT0 für den eigendlichen Zähler
und im TIFR das TOV0 Bit für die Anzeige des Überlaufs

mit:
ldi r16,0
out TCNT0,r16
kannst du den Zähler zurücksetzen
mit:
ldi r16,0b00000101
out TCCR0,r16
wir der Timer nach jedem 1024. CPU Takt um eins erhöht
mit:
in r16,TIFR
andi r16,0b00000010
breq xxxx
kannst du prüfen ob der timer von 255 auf 0 gesprunngen ist
mit:
ldi r16,0b00000010
out TIFR,r16
löschst du das TOV0-Bit wieder.

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.