Trích:
Nguyên văn bởi namqn
Không rõ thực ra bạn đang muốn hiện thực điều gì, nhưng bạn đang hỏi cách đưa PIC về trạng thái reset sau khi thực hiện xong chương trình con dacbiet(). Như vậy, tôi cho rằng ở cuối chương trình con dacbiet() thì bạn có thể dùng lệnh reset mềm của các PIC lõi 14-bit (mà PIC16F877A là một trong số đó). CCS C cung cấp một hàm để làm việc đó, tên là reset_cpu().
Thân,
|
Em cám ơn thầy Nam, dù chưa được gặp thầy bao giờ nhưng em rất kính và mến thầy hihi (em khóa 2004, lúc đó chắc thầy vừa đi du học).
Ý của em ngắn gọn như sau: làm sao để khi chương trình ngắt phục vụ xong, thì con trỏ PC không trỏ lại về địa chỉ đang thực hiện ngay trước khi ngắt (lưu trong stack), mà trỏ đến một vị trí khác do mình chọn. Và phải xóa được biến đếm stack trước khi reset cpu về 0000h.
Nếu thực hiện lệnh reset_cpu() như thầy nói thì vẫn bị tràn stack (mô phỏng cho thấy tràn rất nhanh), còn thực tế thì không chạy đúng yêu cầu.
Giờ giải pháp làm sao ạ? Nhờ thầy và các bạn giúp em với