10.5 Verwendung eines Timers als Zähler
Ergänzungen aus der Vorlesung vom 02.04.2014
Additions from the lecture of 02.04.2014
Dodatki z wykładu z 02.04.2014

|
Übungsaufgaben
exercises
ćwiczenia
Aufgabe 1 - Programmieren Sie eine Stopuhr
Task 1 - Program a stopwatch
Zadanie 1 - Zaprogramuj stoper
|
Aufgabe 2 - Wechselblinkanlage
Task 2 - Alternating flashers
Zadanie 2 - Migacze naprzemienne
|
ENDE Ergänzungen aus der Vorlesung vom 02.04.2014
END Supplements from the lecture of 02.04.2014
END Dodatki z wykładu z 02.04.2014
Übung 3 zur Vorlesung vom 09.04.2014
Exercise 3 for the lecture from 09.04.2014
Ćwiczenie 3 do wykładu od 09.04.2014
Lösen Sie die Aufgaben A2 und A4 der Übung zur
Vorlesung vom 26.03. (Foto Tafelbild zu Beginn von Kapitel 3) unter Verwendung von
Bitshift-Operatoren und unter Verwendung der
Konstanten, die für jedes Bit der Register definiert sind.
Beispielsweise würde man statt (PORTA & 0b00000001) folgendes
schreiben: (PORTA & (1<
Complete tasks A2 and A4 of the exercise Lecture from 26.03. (Photo panel at the beginning of Chapter 3) usi Bitshift operators and using the Constants defined for each bit of the registers. For example, instead of (PORTA write: (PORTA
Wykonaj zadania A2 i A4 ćwiczenia Wykład z 26.03. (Panel ze zdjęciami na początku rozdziału 3) za pomo Operatorzy Bitshift i używanie Stałe zdefiniowane dla każdego bitu rejestrów. Na przykład zamiast (PORTA napisz: (PORTA
Die notwendigen Vergleichsbedingungen sollen direkt formuliert werden, wo sie benötigt werden, ohne die Verwendung von Hilfsfunktionen.
The necessary comparison conditions should be direct be formulated where they are needed without the Use of auxiliary functions.
Niezbędne warunki porównania powinny być bezpośrednie być sformułowane tam, gdzie są potrzebne bez Korzystanie z funkcji pomocniczych.
Die Aufgaben sollen somit in der Form gelöst werden, wie es in der Tabelle 3.3-1 in Kapitel 3.3 in der vierten Spalte (Alternative Umsetzung 3) angegeben ist.
The tasks should thus be solved in the form, as it in Table 3.3-1 in Chapter 3.3 in the fourth column (Alternative implementation 3) is indicated.
Zadania powinny zatem zostać rozwiązane w formie, jak w tabeli 3.3-1 w rozdziale 3.3 w czwartej kolumnie (Alternatywne wdrożenie 3) jest wskazane.
Orientieren Sie sich dabei an der Musterlösung zur Stopuhr-Aufgabe aus der Vorlesung vom 09.04.
Orient yourself to the model solution for Stopwatch task from the lecture of 09.04.
Skorzystaj z modelu rozwiązania dla Zadanie stopera z wykładu 09.04.
ENDE Übung 3
END Exercise 3
KONIEC Ćwiczenie 3
Nutzen des Beispiels
|
Verwendete Befehle und ihre Bedeutung
Befehl | Bedeutung |
---|---|
TCCR2 | Resgister zur Konfigurierung des Timers 2 |
DDRD |= (1<<PD7); | Bit 7 von PortD in jedem Fall auf 1 setzen, ohne die anderen Bits zu beeinflussen. |
Tabelle 10.5-1: Befehlsübersicht
Beispielprogramm
#include<avr/io.h> using namespace std; int main(void) { bool toggel = false; //Timer 2 als Zähler mit Vorteilung von 256 definieren: //WGM20 = 0 WGM21 =0 => Zählbetrieb, zählt ständig von 0 bis 255 //COM20 = 0 COM21 = 0 => Pin OC2 nicht verbunden //COM20 = 1 COM21 = 1 => Pin OC2 löschen on Top, setzen bei Compare //CS 22 21 20 : 000 gestoppt //CS 22 21 20 : 001 Vorteilung durch 1 //CS 22 21 20 : 010 Vorteilung durch 8 //... TCCR2 = (1<<FOC2) | (0<<WGM20) | (0<<COM21) | (0<<COM20) | (0<<WGM21) | (1<<CS22) | (1<<CS21) | (0<<CS20); //OCR2 auf bestimmten Comparewert setzen, um Ton zu erzeugen: ??? //OCR2 = 127; DDRD |= (1<<PD7); //Pin mit Lautsprecher auf Ausgang setzen. toggel = false; TCNT2=0; while(true) { //Pin PD7 toggeln: if(toggel==true) PORTD |=0b10000000; else PORTD &=0b01111111; toggel=!toggel; while(TCNT2<36); //90->400Hz, 36->1kHz Durch das Toggeln hört man immer f/2 TCNT2=0; } return 0; }
Code 10.5-1: Beispiel
