Bạn nên cho biết bạn muốn làm gì với đoạn code này.
Tốt nhất bạn mô tả bài toán, sau đó là các thao tác cần thiết (theo bạn), rồi mới đến code. Từ đó sẽ dễ dàng đối chiếu code của bạn với các thao tác, cũng như kiểm tra các thao tác dựa vào datasheet.
Bạn chỉ đưa đoạn code lên thì sẽ rất khó cho người đọc. Theo tôi thì bạn viết code không tốt, bạn đang phát xung 10 kHz, nghĩa là sẽ có sự kiện được capture mỗi 100 us (bạn thiết lập để capture mỗi cạnh xuống tại RC2), trong khi đó vòng lặp của bạn lại có đến 2 lần delay với thời gian không dưới 100 us mỗi lần, như vậy sẽ xảy ra sự kiện tiếp theo trước khi bạn đọc giá trị CCPR1L, và CCPR1L sẽ bị ghi đè bởi giá trị mới. Bạn phát biểu rằng 'nó không chạy', nhưng theo bạn như thế nào là 'không chạy'?
Thân,
|