Thông báo

Collapse
No announcement yet.

lỗi khi giao tiếp pic 18 với chíp flash qua SPI của trình dịch HT pic

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • lỗi khi giao tiếp pic 18 với chíp flash qua SPI của trình dịch HT pic

    em mới chuyển sang viết C cho pic mà cảm thấy nản quá
    hồi trước em sử dụng ASM viết cho con 18f46k20 giao tiếp SPI thì không gặp vấn đề gì nhưng nay chuyển sang HT pic viết gặp một chút vấn đề mong các cao thủ giúp đỡ.

    để chuyển dữ liệu qua modun MSSP em sử dụng lệnh sau:
    unsigned char data = 60;
    SSPBUF = data;
    thì dữ liệu truyền qua SPI cứ loạn lên

    nhưng khi thay bằng đoạn mã
    SSPBUF = 0X60;

    thì lại không gặp vấn đề gì


    xem lại code ASM mà trình dịch dich ra em thấy thế này:

    nếu sử dụng đoạn mã đầu tiên thì đoạn chương trình có dạng

    MOVFF SSPBUF,DATA
    NOP


    em thử thay lại nó bằng dòng lệnh

    MOVF DATA,W
    MOVWF SSPBUF,F



    THÌ CHƯƠNG TRÌNH LẠI CHẠY BÌNH THƯỜNG
    các cao thủ cho em hỏi trong HT pic có cách nào để thay đổi cách dịch của chuơng trình không ah? hoặc là có cách nào khắc phục lỗi trên không?


    help meeeeeeeeeeeeeeee!

  • #2
    0x60 và 60 là 2 giá trị hoàn toàn khác nhau ( 0x60 dạng hexa ) = 96 hệ thập phân

    96 thì đương nhiên là khác 60 rồi .

    trong C có vài cách biểu diễn số : VD ( kiểu binary : 0b11001010; kiểu hexa : 0xCA ; kiểu thập phân : 202 )
    ngoài ra khi khai báo dữ liệu kiểu mặc định ( nếu là dữ liệu thay đổi liên tục ( biến ) ) ... thì không nên ( hoặc chú ý các) khai báo trong các chương trình con , ngắt ... mà khai báo ở toàn cục .

    vì nhiều khi gọi các chương trình con , ngắt ... mà có các giá trị khai báo ... các giá trị này sẽ bị load ... làm sai kết quả ở bộ đệm hiện thời !
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

    Comment


    • #3
      em viết nhầm ah! nhưng lỗi này em fix được rùi. là do lẹnh MOVFF của pic 18 em thay lệnh đó bằng lệnh MOVFW, va lenh MOVWF là oke nhưng bây giờ nó gặp một lỗi thế này mà em khong hiểu tại sao?
      Error [491] ; 0. can't find 0x3F words for psect "rparam" in segment "COMRAM"
      vẫn là pic 18f46k20 ah

      Comment

      Về tác giả

      Collapse

      thetung_bk Tìm hiểu thêm về thetung_bk

      Bài viết mới nhất

      Collapse

      Đang tải...
      X