kramann.info
© Guido Kramann

Login: Passwort:










4.7 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 4.7-1: Spezifizierungen zur Aufgabe.