Hướng dẫn bài 6 timer/counter 0

dominhcuong9

Học sinh phổ thông
#24
anh cho em làm sao để đếm được xung encoder (chạy thuận chạy ngược( dùng encoder)
 

toanvp

Học sinh phổ thông
#25
Anh cho e hỏi: nếu timer ngắt tràn sau 1ms, e viết hàm phục vụ trong chương trình ngắt tràn.nhưng nếu khi chương trình phục vụ ngắt đang chạy dở,mà timer lại tràn tiếp thì nó sẽ chạy nốt chương trình phục vụ ngắt trước hay nó bỏ qua và nhảy đến đầu chương trình ngắt tiếp theo ?
 

mta_cdt

Super Moderator
Thành viên BQT
#26
Anh cho e hỏi: nếu timer ngắt tràn sau 1ms, e viết hàm phục vụ trong chương trình ngắt tràn.nhưng nếu khi chương trình phục vụ ngắt đang chạy dở,mà timer lại tràn tiếp thì nó sẽ chạy nốt chương trình phục vụ ngắt trước hay nó bỏ qua và nhảy đến đầu chương trình ngắt tiếp theo ?
Thế thì treo chip không chạy được đâu bạn nhé. Trình phục vụ ngắt phải ngắn gọn, đơn giản chứ để thực hiện ngắt xử lý không kịp thì chip chạy làm sao được.
 

toanvp

Học sinh phổ thông
#27
A Lành cho e hỏi ngoài lề 1 chút ạ :
Ví dụ e code cho atmega16.Trong cùng 1 PORTD,e muốn dùng chân PD0 và PD1 cho UART; dùng chân PD4 và PD5 cho PWM; còn lại dùng cho IN-OUT bình thường.Khai báo thanh ghi cho UART và PWM thì e không lăn tăn gì ; nhưng khi e muốn khai báo thanh ghi DDRD=0b11111111(hay đại loại là 1 giá trị DDRD khác) cho chức năng IN-OUT ở chân PD2,PD3,PD6,PD7 ; thì giá trị DDRD có bị ảnh hưởng đến các chân PD0,PD1(UART) và PD4,PD5(PWM) không ạ (e không dùng các chân PD0,PD1,PD4,PD5 cho chức năng IN-OUT nhưng lại bị thanh ghi DDR điều hướng chúng)?
Hay là e phải dùng từng bit theo kiểu sbi(DDRD,x) cho chân IN-OUT,còn các chân còn lại thì không viết gì ?
Cảm ơn a.
 

emeien_13

Sinh viên đại học
#28
A Lành cho e hỏi ngoài lề 1 chút ạ :
Ví dụ e code cho atmega16.Trong cùng 1 PORTD,e muốn dùng chân PD0 và PD1 cho UART; dùng chân PD4 và PD5 cho PWM; còn lại dùng cho IN-OUT bình thường.Khai báo thanh ghi cho UART và PWM thì e không lăn tăn gì ; nhưng khi e muốn khai báo thanh ghi DDRD=0b11111111(hay đại loại là 1 giá trị DDRD khác) cho chức năng IN-OUT ở chân PD2,PD3,PD6,PD7 ; thì giá trị DDRD có bị ảnh hưởng đến các chân PD0,PD1(UART) và PD4,PD5(PWM) không ạ (e không dùng các chân PD0,PD1,PD4,PD5 cho chức năng IN-OUT nhưng lại bị thanh ghi DDR điều hướng chúng)?
Hay là e phải dùng từng bit theo kiểu sbi(DDRD,x) cho chân IN-OUT,còn các chân còn lại thì không viết gì ?
Cảm ơn a.
Bạn sử dụng a|=b và a&=b để set với clear bit mà k ảnh hưởng đến các bit khác nhé.
Chứ đừng dùng lệnh gán
 

Quảng cáo Google