Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

4. Attiny-Veranstaltung V 1.3 - Copyright 2010 by G. Heinrichs Organisatorisches Timer/Counter-Register Zählen, Takten, PWM Übung Mittagspause D/A-Wandler.

Ähnliche Präsentationen


Präsentation zum Thema: "4. Attiny-Veranstaltung V 1.3 - Copyright 2010 by G. Heinrichs Organisatorisches Timer/Counter-Register Zählen, Takten, PWM Übung Mittagspause D/A-Wandler."—  Präsentation transkript:

1 4. Attiny-Veranstaltung V Copyright 2010 by G. Heinrichs Organisatorisches Timer/Counter-Register Zählen, Takten, PWM Übung Mittagspause D/A-Wandler Übung (auch: Komparator und A/D-Wandler) Ergebnisse/Diskussion... In dieser Veranstaltung können wir nur einige der zahlreichen Möglichkeiten des Timer/Counters exemplarisch behandeln! A

2 Registermodell Pin T0 nicht mit Taster T0 verwechseln! A

3 Drehzahlmesser Unser Attiny soll Drehzahlen ermitteln. Dazu sollen Signale von Lichtschranken oder Tastern für 10 Sekunden gezählt werden. Diese auf 1 Minute hochzurechnen ist dann keine Kunst mehr...

4 Zählen - konventionell Enable INT0 Config INT0 = Falling(Signal an INT0) Enable interrupts On int0 zaehlen zaehler = 0 PortD.6 = 1(Zählbeginn anzeigen) Wait 10(10 s warten) PortD.6 = 0(Zählende anzeigen) Portb = zaehler End zaehlen: zaehler = zaehler + 1 return

5 Zählen mit dem Timer/Counter TCCR0B = &B (externer Takt über T0, fallende Flanke, starten) TCNT0 = 0(Zähler des T/C auf 0) PortD.6 = 1(Zählbeginn anzeigen) Wait 10(10 s warten) Portd.6 = 0(Zählende anzeigen) TCCR0B = 0 (T/C stoppen) PortB = TCNT0(Zählerstand ausgeben) end TCCR0BBedeutung &B Ext., fallende Flanke &B Ext., steigende Flanke &B T/C stoppen Config Timer0 = counter, edge = Falling Timer0 = 0... Stop Timer0(stoppen) PortB = Timer0(ausgeben)... A

6 Overflow-Interrupt Jeder 10. Kunde erhält einen Gutschein über 100 Euro! Unser Attiny soll bei jedem 10. Signal also einen Alarm auslösen!

7 Overflow-Interrupt I

8 Overflow-Interrupt II Tccr0b = &B 'ext. Takt, fallende Flanke, starten Tcnt0 = 246 'Preset!!! 10 Takte bis zum Overflow TIMSK.TOIE0 = 1 'Overflow-Interrupt ermöglichen SREG.7 = 1 'Interrupts global ermöglichen On Ovf0 Alarm 'Wenn Overflow-Interrupt... ' Oder: On Timer0 Alarm Do 'Hauptprogramm loop Alarm: 'Interruptroutine Tcnt0 = 246 'Preset neu einstellen! Portb = 255 'Blitz! Waitms 10 Portb = 0 Return

9 Attiny als Signalgeber Unser Attiny soll nun selbst regelmäßige Signale geben. Schleifen mit Warte-Befehlen sind zwar möglich, halten den Mikrocontroller aber von anderen Aufgaben ab. Auch hier kann der Timer/Counter helfen.

10 Interner Taktgeber

11 Taktgeber einstellen - Prescale TCCR0BBedeutung &B Timer0 anhalten &B Timer0 = Clock &B Timer0 = Clock/8 &B Timer0 = Clock/64 &B Timer0 = Clock/256 &B Timer0 = Clock/1024 &B Takt über T0, fallend &B Takt über T0, steigend

12 Frequenzgenerator für 440 Hz Portb.0 über TOV0-Interrupt toggeln TOV0-Frequenz muss 880 Hz betragen Systemfrequenz (Clock): Hz Wähle: Prescale = 64 Dann: Timerfrequenz = Hz / 64 = Hz TCNT0 muss jeweils / 880 = 71,02 Signale bis zum Overflow zählen Also: Preset = 256 – 71 = 185 Im Experiment überprüfen!!! A

13 PWM – Was ist das? Puls- Weiten- Modulation

14 PWM mit dem Attiny

15 Fast-PWM konfigurieren Timer einschalten und Prescale wählen Vergleichswerte OCR0A und OCR0B eingeben Fast-PWM-Mode wählen (sorgt für Sägezahn-Kurve): TCCR0A.WGM01 = 1 TCCR0A.WGM00 = 1 TCCR0B.WGM02 = 0 Reaktion einstellen TCCR0A.COM0A1 = 1 TCCR0A.COM0A0 = 1 TCCR0A.COM0B1 = 1 TCCR0A.COM0B0 = 0 Das Pulsverhältnis wird über den Vergleichswert OCR0A eingestellt.

16 PWM - Programm Tccr0a.wgm01 = 1 'FAST PWM Tccr0a.wgm00 = 1 'Tccr0b.wgm02 standardmäßig auf 0 'PWM an OC0A (PortB.2) Tccr0a.com0a1 = 1 'Compare Match, clear OC0A at TOP Tccr0a.com0a0 = 1 Ocr0a = 200 'erster Vergleichswert Tccr0b = &B Timer-Takt ist 4 MHZ/1024 Do Inputbin Vergleichswert 'Vergleichswert empfangen Ocr0a = Vergleichswert Loop Mit Oszilloskop überprüfen!!! A

17 D/A-Wandler Ideen: PWM an OC0A (Typ High Low) Tiefpassfilter benutzen Sollspannung ~ Vergleichswert OCR0A

18 A/D-Wandler Das machen Sie mal selbst! A


Herunterladen ppt "4. Attiny-Veranstaltung V 1.3 - Copyright 2010 by G. Heinrichs Organisatorisches Timer/Counter-Register Zählen, Takten, PWM Übung Mittagspause D/A-Wandler."

Ähnliche Präsentationen


Google-Anzeigen