Politehica din Bucuresti proiect de diplomă Facultatea transporturi



Yüklə 1,46 Mb.
səhifə60/104
tarix09.01.2022
ölçüsü1,46 Mb.
#91958
1   ...   56   57   58   59   60   61   62   63   ...   104
1.9.5 Output Compare Units
Comparatorul pe 16 biţi compară TCNT1 cu ieşirea registrului Output Compare Register (OCR1x).Dacă TCNT este egal cu OCR1x comparatorul semnalizează o potrivire.Aceasta setează Output Compare Flag (OCF1x)

pentru urmatorul ciclu de ceas. Dacă OCIE1x =1, Output Compare flag generează o ieşire output compare interrupt.

OCF1x flag este dezactivat automat atunci când se execută o întrerupere. OCF1x flag poate fi de asemenea dezactivat prin trecerea în ‘1’ logic a bitului I/O.Generatorul de undă utilizează potrivirea de semnale pentru a genera o ieşire în concordanţa cu biţii Waveform Generation mode (WGM13:0) şi Compare Output mode (COM1x1:0).Semnalele TOP şi BOTTOM sunt utilizate de generatorul de undă pentru tratarea cazurilor speciale cu valori extreme în unele moduri de operare.O caracteristică specială a ieşirii unităţii de comparare permite definirea valorii TOP pentru Timer/Counter.Această valoare defineşte perioada de timp necesară generatorului de undă pentru executare.

Figura 3.34 prezintă diagrama bloc a unităţii output compare unit.Litera ‘n’ asociată numelui registrului şi numelui bitului indică numărul asociat n = 1 pentru Timer/Counter1,şi litera ‘x’ indică output compare unit (A/B).

Elementele care nu fac parte din blocul principal al unităţii output compare unit sunt reprezentate în culoarea gri.

Fig. 3.34

Registrul OCR1x are buffer dublu la utilizarea unuia din cele doisprezece moduri Pulse Width Modulation (PWM).În modul de operare Clear Timer on Compare (CTC) buferr-ul dublu este dezactivat.Buffer-ul dublu sincronizează actualizarea registrului OCR1x Compare Register cu cea a fronturilor TOP şi BOTTOM din secvenţa de numărare.Această sincronizare previne propagarea pulsurilor nesimetrice,cu lungimi diferite,privind căderile libere la ieşire.

Accesarea registrului OCR1x poate fi complexă însă nu în acest caz.Atunci când buffer-ul dublu este activ CPU are acces la registrul OCR1x Buffer Register,iar în cazul în care este dezactivat,CPU are acces direct la registrul OCR1x.Conţinutul registrului OCR1x poate fi modificat doar prin scriere(Timer/Counter nu actualizează automat acest registru ca în cazul registrelor TCNT1 şi ICR1.Din acest motiv OCR1x nu este citit de bitul frontului înalt al registrului temporar TEMP.Înaintea manipulării celor 16 biţi este de preferat să se citească bitul de pe frontul inferior.

Scrierea în registrul OCR1x trebuie să se realizeze prin registrul TEMP în cazul în care compararea celor 16 biţi decurge în mod continuu.Bitul de pe frontul superior trebuie să fie primul scris.Atunci când adresa bitului I/O de pe frontul superior este scrisă de către CPU,registrul TEMP se va actualiza cu valoarea care a fost scrisa.Când bitul de pe frontul inferior (OCR1xL) este scris de cei opt biţi inferiori,bitul superior va fi copiat lânga cei opt biţi de pe frontul superior sau în buffer-ul OCR1x ,sau în registrul OCR1x Compare,totul în acelaşi ciclu de ceas.




Yüklə 1,46 Mb.

Dostları ilə paylaş:
1   ...   56   57   58   59   60   61   62   63   ...   104




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin