Habe ein neues Problem

Gast #107443
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
Gast #107447
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
Gast #107448
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
Gast #107452
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.
Gast #107453
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.

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