Thông báo

Collapse
No announcement yet.

Lỗi hàm __delay_ms() trong XC8

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

  • Lỗi hàm __delay_ms() trong XC8

    em mới chuyển sang code cho PIC18 bằng XC8, làm cái bài blink led, tuy nhiên khi dùng hàm __delay_ms(100) thì nó lại báo "long argument" (đại loại là thế), em giảm xuống còn __delay_ms(10) thì lại được. Trước đây khi dùng HT C thì em có thể viết lên tới 1000 cũng được (bản v9.83) nhưng XC8 lại dính lỗi này. ai biết cách khắc phục chỉ hộ em cái

    PHP Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <xc.h>
    #include "config.h"

    #define _XTAL_FREQ 20000000

    /*
     * 
     */
    int main()
    {
        
    TRISC 0x00;
        
    TRISD 0x00;

        while(
    1)
        {
           
    LATC ^= 255;
            
    __delay_ms(100);
        }
        return 
    0;


  • #2
    không dùng nên không biết

    --- sao không tự viết hàm delay mà phải phụ thuộc vào nó ?
    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
      tại em thấy nó có nên xài luôn, tự viết thấy nó ko có chính xác lắm, hồi dùng Hitech c cũng dùng delay của nó giờ chuyển sang thằng này thử xem, nhưng mà nó mới quá nên tài liệu ít

      Comment


      • #4
        Hàm này phụ thuộc vào tần số thạch anh. Tần số càng lớn thì cái tham số thời gian trễ cấp cho hàm này không lớn quá được.
        Phần mềm tự do hoặc không dùng máy tính nữa !.

        Comment


        • #5
          Nguyên văn bởi xe đạp Xem bài viết
          em mới chuyển sang code cho PIC18 bằng XC8, làm cái bài blink led, tuy nhiên khi dùng hàm __delay_ms(100) thì nó lại báo "long argument" (đại loại là thế), em giảm xuống còn __delay_ms(10) thì lại được. Trước đây khi dùng HT C thì em có thể viết lên tới 1000 cũng được (bản v9.83) nhưng XC8 lại dính lỗi này. ai biết cách khắc phục chỉ hộ em cái

          PHP Code:
          #include <stdio.h>
          #include <stdlib.h>
          #include <xc.h>
          #include "config.h"

          #define _XTAL_FREQ 20000000

          /*
           * 
           */
          int main()
          {
              
          TRISC 0x00;
              
          TRISD 0x00;

              while(
          1)
              {
                 
          LATC ^= 255;
                  
          __delay_ms(100);
              }
              return 
          0;

          Bạn vào ổ C và thư mục cài đặt chương trình rồi gõ tên các thư viện mà bạn include ở trong code rồi mở bằng notepad ra xem mã nguồn của nó thế nào mới biết vì sao sai được.

          Comment


          • #6
            Nguyên văn bởi tan0710 Xem bài viết
            Bạn vào ổ C và thư mục cài đặt chương trình rồi gõ tên các thư viện mà bạn include ở trong code rồi mở bằng notepad ra xem mã nguồn của nó thế nào mới biết vì sao sai được.
            bác này nói chuẩn nè, mấy cái lib này đều có mã mở, có thể xem được nội dung cách cấu hình bên trong nó, bạn thử xem nó phụ thuộc vào những gì
            mình cũng ko xài XC mà chỉ dùng mấy thằng như HTC nhưng mà mấy cái delay của nó phụ thuộc vào cấu hình thạch anh và nó cũng ko chuẩn cho lắm, nói chung chỉ dùng mang tính chất tương đối ko cần chuẩn xác. Nghe đâu đó mấy hàm delay đó chỉ chạy tầm dưới 200 thì chuẩn chuẩn chút còn trên 200 sai từa lưa
            Website chính thức đổi địa chỉ website thành
            Mời các bạn ghé thăm !!!

            Comment

            Về tác giả

            Collapse

            xe đạp Tìm hiểu thêm về xe đạp

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

            Collapse

            Đang tải...
            X