A 16 bites számláló (Timer/Counter) és hozzá kapcsolódó

Download Report

Transcript A 16 bites számláló (Timer/Counter) és hozzá kapcsolódó

Atmega128 mikrokontroller
programozása
• Általános I/O portok
- D-port: ledek (PORTD 2:5), negált
- C-port: hétszegmensű kijelző (PORTC 0:7), negált
- E-port: nyomógombok (PORTE 4:7), negált
LCD – kijelző (Port A)
Uart – kommunikáció soros porton
• ADC, analóg digitális konverzió
• Timer/Counter, PWM: Impulzushossz moduláció
A 16 bites számláló (Timer/Counter) és hozzá
kapcsolódó impulzushossz modulátor (PWM)
A számláló
• A számláló áramkör lényege, hogy egy
órajel (felfutó v. lefutó él) hatására a hozzá
kapcsolódó regiszter értéke 1-el
megváltozik.
• 1-es számláló: TCNT1 16 bites regiszter.
• 8 bites adatbusz <–> 16 bites regiszter!!
• BOTTOM: 0x0000; MAX: 0xFFFF
• TOP: állítható TOP<=MAX
• A számlálót vezérlő órajel többféle lehet!
(külső, belső, stb)
• Beállítása: TCCR1B0:2 CS0:2 bitek.
• A számlálási irány lehet fel vagy le.
• A működési mód többféle lehet
– A TCCR1A/B regiszterek megfelelő bitjeinek
beállításával.
Különleges lehetőségek
• A számláló tartalma összehasonlításra kerül az OCRA/B/C
regiszterek tartalmával. Egyenlőség esetén: OCA/B/C bitek állítása,
megszakítás (output compare interrupt request, PWM)
• Ha a számláló tartalma eléri a TOP agy BOTTOM értéket,
működési módtól függően megszakítás.
• Az ICR regiszter (Input Capture) megkapja TCNT értékét, ha egy
külső jelszint meghalad egy bizonyos értéket. (Külső esemény
kezelése a megfelelő megszakítással)
A számláló nagyon vázlatos felépítése
TOV1 int.
Számolás
Vezérlő Logika
Törlés
irány
TCNT1
TOP,
BOTTOM
Órajelforrás
választás
Adatbusz
=
OCR1A
ICR1
TCCR1A/B/C
OC1A
Hullámforma generátor
A fázis és frekvenciahelyes PWM üzemmód
TOP
• A számláló fel és le számol.
• Amikor BOTTOM, akkor generál
megszakítást.
BOTTOM
• Amikor felfelé számolva eléri az OCR
más néven PWM regiszter értékét, akkor
az OC1 bitet alacsonyra húzza
• Amikor lefelé számolva, akkor magasra.
TOP
OCR – compare
BOTTOM
OC1-bit
Jel: OCR változik, az impulzushossz is.