Laborübung 3
- Schreiben Sie das im vorangehenden Kapitel veranschaulichte Programm:
- Wird kein Taster gedrückt, ist der an's Testboard angeschlossene Servo in 0 Grad-Position und in der Anzeige erscheint eine 1.
- Wird der Taster bei PB0 gedrückt, ist der an's Testboard angeschlossene Servo in -45Grad Grad-Position und in der Anzeige erscheint eine 0
- Wird der Taster bei PB1 gedrückt, ist der an's Testboard angeschlossene Servo in +45Grad Grad-Position und in der Anzeige erscheint eine 2
- Zur rascheren Umsetzung sollten Sie schauen, ob Sie Klassen aus Kapitel 4.5 verwenden können. Den Quellcode können Sie den downloadbaren Projekten entnehmen.
- Als PWM-Geber soll Timer0 benutzt werden.
- Dieser liefert sein PWM-Signal auf Pin 4 == PB3 == OC0.
- Klären Sie im Vorfeld, ob sich überhaupt ein Phasen korrektes PWM-Signal, wie es für den Servo nötig ist mit Timer0 bei 9,216MHz Taktrate erzeugen läßt.
- Falls das möglich ist, dann bestimmen Sie den richtigen Teiler N (vergl. Kapitel 8.4) und berechnen Sie die notwendigen Belegungen für das Register OCR0 bei den geforderten Winkelstellungen.
- Hier noch einmal die wichtigsten Informationen in Stichpunkten:
|
Servo:
schwarz: GND
rot: +5V
gelb: PWM-Eingang
2. 4er-Steckplatz (vergl. Schaltplan Testboard Kapitel 1.5.4,
Fehler in Schaltplan: 1./2. 4er-Steckplatz vertauscht.):
von Servo verbinden:
---
|O| GND schwarz
|O| AIN0 nichts
|O| AIN1 / OC0 gelb
|O| +5V rot
---
Periode Servo: 10..20ms
PWM-Breite Mitte: 1,5ms
PWM-Breite -45 Grad: 1,0ms
PWM-Breite +45 Grad: 2,0ms
Timer0 - Berechnung der Frequenz bei Phasenkorrektem Signal:
s. Datenblatt S.75:
f = fclk / (N*510)
s. Datenblatt S.79/80
Tabelle:
N CS02 CS01 CS00
1 0 0 1
8 0 1 0
64 0 1 1
256 1 0 0
1024 1 0 1
Code 0-1: Spezifizierungen zur Aufgabe.