JavaScript is required

Cho Fck = 8 MHz, 1MC = 125 ns. Đoạn lệnh sau khởi động Timer1 làm việc ở mode nào?

asm

Sao chépChỉnh sửa

LDI R17,0

STS TCCR1A,R17

LDI R17,$43

STS TCCR1B,R17

A.

A. CTC, CLK_T1 = 8 µs, tín hiệu bắt ngõ vào kích khởi cạnh lên

B.

B. NORMAL, CLK_T1 = 8 µs, tín hiệu bắt ngõ vào kích khởi cạnh xuống

C.

C. CTC, CLK_T1 = 8 µs, tín hiệu bắt ngõ vào kích khởi cạnh xuống

D.
D. NORMAL, CLK_T1 = 8 µs, tín hiệu bắt ngõ vào kích khởi cạnh lên
Trả lời:

Đáp án đúng: D


Đầu tiên, ta phân tích đoạn code:

- LDI R17,0\nSTS TCCR1A,R17: Ghi giá trị 0 vào thanh ghi TCCR1A. Điều này có nghĩa là các bit COM1A1, COM1A0, COM1B1, COM1B0, WGM11, WGM10 đều bằng 0.

- LDI R17,$43\nSTS TCCR1B,R17: Ghi giá trị 0x43 (0b01000011) vào thanh ghi TCCR1B. Điều này có nghĩa là các bit ICNC1, ICES1, WGM13, WGM12, CS12, CS11, CS10 có giá trị lần lượt là 0, 1, 0, 0, 0, 1, 1.

Từ đó, ta suy ra:

- WGM13 = 0, WGM12 = 0, WGM11 = 0, WGM10 = 0: Timer1 hoạt động ở chế độ NORMAL.

- CS12 = 0, CS11 = 1, CS10 = 1: Prescaler là 64. Do đó, CLK_T1 = 64 / Fck = 64 / 8MHz = 8µs.

- ICES1 = 1: Tín hiệu bắt ngõ vào kích khởi cạnh lên.

Vậy, Timer1 hoạt động ở chế độ NORMAL, CLK_T1 = 8 µs, tín hiệu bắt ngõ vào kích khởi cạnh lên.

Câu hỏi liên quan