Cách nhanh nhất để chuyển bit1 trong MPASM cho tập lệnh được tăng cường 14 bit là gì? (Tôi đang làm việc với PIC16F1829)
Mã phải là độc lập - ý tôi là nó có thể được gọi vào bất kỳ lúc nào, mà không cần biết giá trị của bit vào thời điểm đó.
Tiêu chí chính là tốc độ ở đây: một chương trình có ít chu kỳ hướng dẫn sẽ tốt hơn. Số chu kỳ hướng dẫn được tính bằng số khi bit bằng 0 + số khi bit bằng 1, chia cho 2.
1: với chuyển đổi Tôi có nghĩa là mã phải tương tự như pin =! Pin trong C
Tôi đã giả định rằng bit bạn muốn chuyển đổi là một phần của thanh ghi có "không quan tâm" trong các bit khác và do đó trao đổi nibble sẽ hoạt động. Bạn không bao giờ nói rằng nó không thể hoạt động như thế này và nếu bạn thiếu các thanh ghi đến mức bạn cần các bit khác thì nên viết lại mã hoặc nâng cấp MCU.
Bạn cần thiết lập 11110000 (bất kỳ mẫu nào sẽ cung cấp bn không bằng bn + 4) ban đầu nhưng sau đó mỗi lần bạn muốn đảo ngược một trong các bit bạn sử dụng: -
hoán đổi f, d
Đó là một hoạt động một chu kỳ và không cần 1 trong thiết lập đăng ký w.
Tất nhiên, trong phần còn lại của chương trình, bạn phải tuân thủ phương pháp thay đổi bit này một lần nữa, bạn đã nói rằng bạn không thể - nói cách khác, hướng dẫn BCF hoặc BSF bị đặt ra ngoài vòng pháp luật.
Tôi đã nghĩ về việc xoay vòng nhưng chúng xoay vòng mang và điều này có thể sẽ làm hỏng thứ - tôi đã không viết mã PIC trong hơn 20 năm nên sự tha thứ phải được đặt lên hàng đầu trong tâm trí của bạn khi bỏ phiếu !!!