Professional Documents
Culture Documents
𝒇𝑶𝑪𝒏𝒙 =
𝑭𝑶𝑺𝑪 𝑻𝑶𝑪𝒏𝒙 = 𝑭𝑵. 𝟐(𝟏 + 𝑻𝑶𝑷)
𝑵.𝟐(𝟏+𝑻𝑶𝑷) 𝑶𝑺𝑪
n
Bài giảng môn Vi xử lý Ttimern
GV: Lê Thị Kim Anh
Chương 7
TẠO SÓNG TRÊN NGÕ OCnx BẰNG PHẦN CỨNG
MODE NOR-CTC(Non PWM) COMnA1:0 = 1
KẾT LUẬN: Muốn tạo t/h xung có tần số f trên chân OCnx ở mode CTC thì cần
xác định các thông số sau:
- Từ f T? N? n? (n= 1+ OCRnA) {OCRnAmax=MAX($FF/$FFFF)}
- Suy ra số xung cần nạp vào thanh ghi OCRnA = n - 1.
Lưu ý:
COMnA1:0 = 10 OCnx=0 khi OCFnx=1
COMnA1:0 = 11 OCnx=1 khi OCFnx=1
OCF0B=1
PB3(OC0A)
PB4(OC0B)
HD:
Cần xác định giá trị nạp vào OCRnA và OCRnB để khi OCF0A=1,
OCF0B=1 thì Timer0 đếm được khoảng thời gian lần lượt là T/2
và T/4. Bài giảng môn Vi xử lý
GV: Lê Thị Kim Anh
Chương 7
TẠO SÓNG TRÊN NGÕ OCnx BẰNG PHẦN CỨNG
GIẢI THUẬT
Lưu ý:
Việc thay đổi độ rộng xung bằng cách nạp giá trị cho các thanh ghi
OCRnx tương ứng với thời gian ở mức cao và thấp trong mỗi một
chu kỳ. Thường được sử dụng bằng pp tra bảng.
Bài giảng môn Vi xử lý
GV: Lê Thị Kim Anh
Chương 7
TẠO SÓNG TRÊN NGÕ OCnx BẰNG PHẦN CỨNG
MODE NOR – CTC(PWM: Pulse Width Modulation )
VD9: sử dụng mode CTC tạo sóng bằng phần cứng trên ngõ
PD7=OC2A có dạng sau: (cho FOSC=8MHz, CKDIV8=1)
PD7
t(s)
75 25 50 50 60 40
HD:
- Chọn N=8 Ttimer=1s.
- Các giá trị lần lượt nạp cho OCR2A: 74,24,49,49,59,39
Bài giảng môn Vi xử lý
GV: Lê Thị Kim Anh
Chương 7
TẠO SÓNG TRÊN NGÕ OCnx BẰNG PHẦN CỨNG
MODE NOR – CTC(PWM: Pulse Width Modulation )
HD: OCF2A=1
TCNT2
COM2A1:0= 01
OCR2A= 74
59
49 49
39
24
BOTTOM
PD7
t(s)
75 25 50 50 60 40
COMnx1:0= 10
OCnx
OCnx COMnx1:0= 11
Chu kỳ
Khi COMnx=10 ngõ OCnx=1 tại BOTTOM cho đến khi đạt trạng thái so sánh thì
xóa về 0, ngược lại với COMnx=11. Giá trị OCRnx cập nhật tại BOTTOM.
TCNTn
1/fOCnx
OCFnB=1
(OCRnB+1)*Ttimern
OCnB
OCFnA=1
OCnA
0
(OCRnA+1)*Ttimern
SBI DDRB,3
SBI DDRB,4
LDI R17,0B10100011 ;Timer0 mode FPWM3
OUT TCCR0A,R17 ;Kênh A không đảo, Kênh B không đảo
LDI R17,$2 ;N = 8{Ttimer0=1s}
OUT TCCR0B,R17
LDI R17,199 ;độ rộng xung kênh A 200 s
OUT OCR0A,R17
LDI R17,99 ;độ rộng xung kênh B 100 s
OUT OCR0B,R17
HERE:
RJMP HERE
VD11: sử dụng mode FPWM3 tạo sóng bằng phần cứng trên ngõ
PB3=OC0A có dạng sau: (cho FOSC=8MHz)
TCNT0
TCNTn
(OCRnA+1)*Ttimern
OCRnA TOVn=1
OCFnA=1
OCRnB OCFnB=1
OCnB t(s)
(OCRnB+1)*Ttimern
OCnA
Bài giảng môn Vi xử lý
GV: Lê Thị Kim Anh
Chương 7
TẠO SÓNG TRÊN NGÕ OCnx BẰNG PHẦN CỨNG
VD12: sử dụng mode FPWM7 tạo sóng bằng phần cứng trên ngõ
PD6=OC2B có dạng sau:(cho FOSC=8MHz)
TCNT0
TOP=OCR0A OCF0A =1
OCF0B =1
OCR0B= 199
149
99
49
BOTTOM
TCNTn
OCnx COMnA1:0= 10
OCnx COMnA1:0= 11
Chu kỳ
Khi TCNTn đếm xuống đạt trạng thái so sánh đặt ngõ OCnx=1, cho đến khi
TCNTn đếm lên đạt trạng thái so sánh xóa OCnx=0(COMnA1:0= 10).
TCNT1
OC1x COM1x1:0= 10
Chu kỳ
Khi Timer đang chạy, việc thay đổi OCR1x có thể làm xung ngõ ra bị mất đối xứng về
mặt tần số/chu kỳ, mặc dù độ rộng xung vẫn đối xứng quanh điểm BOTTOM.
Lưu ý: Giá trị đặt trước tối thiểu cho OCR1x hay ICR1 = 0x0003
COM1x1:0= 10
OCnx
COM1x1:0= 11
OCnx
Chu kỳ