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
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.
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
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
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
So habe die PDF aber da steht zwar was über Timer aber nicht wie man sie Programiert!!!! Ich kann da mit nichts anfangen!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.