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 Törlés irány Vezérlő Logika Órajel-forrás választás TOP, BOTTOM TCNT1 Adatbusz = OC1A OCR1A OCR1A OCR1A Hullámforma generátor ICR1 TCCR1A/B/C
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. 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. BOTTOM TOP OCR – compare BOTTOM OC1-bit Jel: OCR változik, az impulzushossz is.