Thông báo

Collapse
No announcement yet.

Vấn đề với hàm LOG() trong CCS

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

  • Vấn đề với hàm LOG() trong CCS

    Các bác cho em hỏi CCS có bị lỗi gì không mà khi em dùng hàm log() tính ra kết quả trật lất
    Log(8788) ==> - 24.55 (sai)

    Trong khi đó nếu em dùng mikroC hoặc tính bằng Excel đều ra kết quả là: 9.081255175 (đúng)

    Version của CCS em đang xài là 4.023 và code viết con PIC18f2550.

    Tính dùng CCS để tận dụng cái thư viện giao tiếp USB bằng CDC của nó mà tính toán kiểu này oải quá. mikroC viết sao chạy vậy chỉ tội chưa có thư viện CDC.

    Thank you.
    “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

  • #2
    Cài thêm "errno.h" vào để xem lỗi là ở đâu. Cách sử dụng log( )
    , errno.h rất chi tiết trong help của ccs

    Function:
    Computes the natural logarithm of the float x. If the argument is less than or equal to zero or too large, the behavior is undefined.



    Note on error handling:

    "errno.h" is included then the domain and range errors are stored in the errno variable. The user can check the errno to see if an error has occurred and print the error using the perror function.



    Domain error occurs in the following cases:

    · log: when the argument is negative
    Từ chối trách nhiệm:
    Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
    Blog: http://mritx.blogspot.com

    Comment


    • #3
      Thanks bác itx. Đêm qua em đã thêm errno.h để kiểm tra và errno luôn bằng 0, có lúc kết quả Log(8788) ra số âm, có lúc ra khoảng 80 (sai bét)
      “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

      Comment


      • #4
        Nguyên văn bởi bxngoc Xem bài viết
        Thanks bác itx. Đêm qua em đã thêm errno.h để kiểm tra và errno luôn bằng 0, có lúc kết quả Log(8788) ra số âm, có lúc ra khoảng 80 (sai bét)
        =========>
        if the argument is less than or equal to zero or too large, the behavior is undefined.
        Từ chối trách nhiệm:
        Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
        Blog: http://mritx.blogspot.com

        Comment


        • #5
          Google một hồi cũng ra: log(A*B) = log(A) + log(B). Trời ơi sao mình dốt toán thế nhỉ
          ==> Log(8788) = Log(87.88) + Log(100)

          Để tối về thử lại coi thằng CCS mần ăn làm răng.

          Thanks bác itx
          “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

          Comment


          • #6
            Tình hình vẫn không khả quan hơn. Dù chia nhỏ giá trị cho 100, 10 để tính log nhưng vẫn ra giá trị âm. Chạy mô phỏng trên Proteus và trên board thực đều giống nhau.
            Trong khi đó nếu biên dịch bằng HT-PIC, MikroC hoặc tính bằng Excel đều ra kết quả đúng.
            Không biết bác nào có dùng CCS version khác 4.023 biên dịch thử và chạy thử giùm em xem hàm Log(8788) hoặc Log(87.88) + Log(100) có ra 9.081255175 không?
            “If you create your own electricity, heating and water systems, you create your own politics. Maybe that’s what they’re afraid of.” –– Michael Reynolds

            Comment


            • #7
              Up lên cái code ccs lỗi xem sao? thường thì ccs không bị lỗi này, chủ yếu là do thuật giải người dùng thế nào.
              Từ chối trách nhiệm:
              Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
              Blog: http://mritx.blogspot.com

              Comment


              • #8
                Bạn up code lên đi.trước làm với hàm log() suốt mà có thấy lỗi gì đâu.

                Comment

                Về tác giả

                Collapse

                bxngoc Nothing to reveal Tìm hiểu thêm về bxngoc

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

                Collapse

                Đang tải...
                X