Tôi có một cơ quan giám sát trong vi điều khiển của tôi rằng nếu nó không được khởi động, sẽ đặt lại bộ xử lý. Ứng dụng của tôi chạy tốt trong một thời gian nhưng cuối cùng sẽ thiết lập lại vì cơ quan giám sát đã không bị đá. Nếu tôi bước qua chương trình thì nó hoạt động tốt.Cách gỡ lỗi thời gian chờ của cơ quan giám sát
Một số cách để gỡ lỗi điều này là gì?
CHỈNH SỬA: Kết luận: Cách tôi tìm thấy lỗi của tôi là đường dẫn watchdog.
Tôi đang sử dụng PIC có vectơ ISR cao và thấp. Các vector cao được cho là để xử lý ma trận LED và vector thấp là để xử lý các đánh dấu hẹn giờ. Nhưng tôi đặt cả hai bộ xử lý ISR trong vector cao. Vì vậy, khi tôi vô hiệu hóa ISR ma trận LED và bộ đếm thời gian đánh dấu dịch vụ ISR cần thiết, bộ xử lý sẽ bị kẹt trong ISR thấp để xử lý việc đánh dấu hẹn giờ, nhưng bộ đếm thời gian đánh dấu không có ở đó.
Đường dẫn giới hạn tìm kiếm của tôi xuống chức năng xử lý ma trận dẫn và vô hiệu hóa ngắt ma trận LED.
Chỉ cần thêm cho bất kỳ ai đến đây: Một "biến toàn cục chưa được khởi tạo" sẽ cần một số ngữ nghĩa đặc biệt với trình biên dịch C. Tiêu chuẩn nói rằng thậm chí các biến toàn cầu không được gán giá trị phải được khởi tạo bằng không. Vì vậy, thông thường, một thuộc tính sẽ cần thuộc tính cho các biến này, ví dụ: ".noinit" cho avr-gcc. – FourtyTwo