Thông báo

Collapse
No announcement yet.

Thắc mắc về dấu chấm động trong CCS

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

  • Thắc mắc về dấu chấm động trong CCS

    Em viết code cho PIC 18F4620 dùng CCS, khi lập trình đọc và xử lý các giá trị cảm biến cần dùng định dạng float, thử chuyển kết quả về máy tính thì thấy toàn là 0.00. Do quá trình xử lý dữ liệu có nhân với 1 hằng số khá nhỏ nên kết quả <0.01 là chuyện bình thường, nhưng em có thắc mắc là khi hiển thị như vậy, kết quả mà PIC lưu trong RAM là 0.00xxx hay là 0.00?
    VD như em đặt biến const float P = 3.14159, khi cho hiển thị lên LCD ( printf(lcd_putc,"P= %f", P) hoặc chuyển kết quả về máy tính (printf("P= %f" , P) đều nhận được kết quả là 3.14. Như vậy con PIC nó có hiểu số P em định nghĩa hay là nó tự làm tròn? Nếu nó không tự làm tròn mà em muốn nhận được kết quả số thực với nhiều chữ số sau dấu phẩy hơn thì phải dùng lệnh gì? (Chương trình em tính toán với nhiều số nhỏ nên yêu cầu chính xác cao)

  • #2
    mình nghĩ bạn có thể nhân với nó thêm cho 100 hoặc 1000 để được nhiều chữ số sau dấu phẩy hơn, khi truyền lên PC bạn chỉ cần chia lại thôi

    Comment


    • #3
      Bạn dùng printf(lcd_putc,"P= %2.10f", P) là được mà

      Comment


      • #4
        Khỏi cần print .Send luôn 4byte lên máy tính.Muốn số nhỏ cũng được.Bạn dÙng kiểu union,hoặc lấy địa chỉ của số float,sau đó read 4 byte từ địa chỉ này.
        , , ,

        Comment


        • #5
          hic, mấy thao tác đó mình chưa làm bao giờ, nghe bạn nói như vịt nghe sấm @_@

          Comment


          • #6
            Như thế này nhé:
            cách 1:
            tạo kiểu union như sau:
            union float_4byte{
            float so;
            unsigned char array_byte[4];
            };
            khi dÙng thì khai báo như sau:
            float_4byte bien;
            float gt;
            giả sử nạp giá trị vào biến:
            bien.so=gt;//đặt giá trị
            đọc từng byte
            đọc từng byte:
            for(i=0;i<4;i++)
            read=bien.array_byte[i];
            cách 2:
            float bien;
            float gt;
            unsigned char *pdata;//trỏ đến địa chỉ
            nạp giá trị vào biến:
            bien=gt;
            lấy địa chỉ pdata=(unsigned char *)&bien;
            giá trị từng byte
            for(i=0;i<4;i++)
            read=*pdata++;
            , , ,

            Comment


            • #7
              Lưu ý byte có chỉ số thấp là byte thấp ví dụ: array_byte[0] là byte thấp nhất,array_byte[3] byte cao nhất.
              1 chỗ khi khai báo biến với kiểu union làm như sau:
              union float_4byte bien;//ko phải float_4byte(định nghĩa typedef thì dÙng kô cần thêm union vào)
              , , ,

              Comment


              • #8
                thế này là ổn rồi :
                Bạn dùng printf(lcd_putc,"P= %2.10f", P) là được mà
                Last edited by hienclubvn; 13-01-2012, 10:47.
                My Face :

                Comment


                • #9
                  heheh, nói thì giỏi nhiều, nhưng có ai viết được code c cho xu lý ảnh khôg?
                  như lọc trung vị, lọc trung bình....nén ảnh

                  Comment


                  • #10
                    Nguyên văn bởi nguyenmanht Xem bài viết
                    heheh, nói thì giỏi nhiều, nhưng có ai viết được code c cho xu lý ảnh khôg?
                    như lọc trung vị, lọc trung bình....nén ảnh
                    tự nhiên nhảy vào đây chém ? bạn ko thấy ngại à ?
                    Người ta đang hỏi về vấn đề của họ mà. Còn bạn muốn xử lý ảnh thì chúng ta có Thread bên OpenCV mà, sao ko qua đó mà chém ?
                    My Face :

                    Comment


                    • #11
                      Kô Có gì.Ép kiểu : *(float *)pdata.
                      Last edited by rptdnmqs; 13-01-2012, 12:10.
                      , , ,

                      Comment


                      • #12
                        ----------------------------------------------------------
                        Last edited by hienclubvn; 13-01-2012, 10:47.
                        My Face :

                        Comment


                        • #13
                          -+++-++-+-++-++*** chúc tất cả mọi người có tết ấm no hạnh phúc
                          Last edited by rptdnmqs; 13-01-2012, 12:14.
                          , , ,

                          Comment


                          • #14
                            --------------------------------------------------------
                            Last edited by hienclubvn; 13-01-2012, 10:47.
                            My Face :

                            Comment

                            Về tác giả

                            Collapse

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

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

                            Collapse

                            • nhathung1101
                              Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                              bởi nhathung1101
                              Loa Tầu nó đáp ứng được tiếng VN, vì mấy câu hát kiểu "oăng oẳng như sủa" Nhật nó không có. Nó chỉ hát kiểu "đục đục chạc chạc" thôi.
                              Nếu thấy loa Tầu hay, thì gỡ cái mác SONY gắn vào là xong. Còn cái loa Nhật thì vứt luôn, chỉnh làm quái gì.
                              ...
                              hôm nay, 23:17
                            • since0501
                              Trả lời cho Pin Li-FePO4 (pin sắt) rất dể hỏng! Các biện pháp ngăn ngừa.
                              bởi since0501
                              Mình đào mộ xíu, cho mình hỏi là pin của bác vẫn ok chứ? Mình vừa đóng khối pin 16 cell 40135 thì khi chạy điện áp nó sụt so với khi nghỉ như video mình dẫn link, vậy cho mình hỏi là dung lượng pin sẽ tính khi áp nghỉ hay áp đang hoạt động, và pin sụt áp như vậy là bình thường hay pin kém?
                              ht...
                              hôm nay, 17:56
                            • mèomướp
                              Trả lời cho Sửa bộ nguồn DC 60V 45A
                              bởi mèomướp
                              Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                              Hôm qua, 13:11
                            • tuyennhan
                              Trả lời cho Sửa bộ nguồn DC 60V 45A
                              bởi tuyennhan
                              Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                              Hôm qua, 09:25
                            • tuyennhan
                              Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                              bởi tuyennhan
                              Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                              Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                              Hôm qua, 09:10
                            • Ng.Phuong.5
                              Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                              bởi Ng.Phuong.5
                              Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                              Mấy con...
                              09-01-2025, 19:44
                            • viettinh
                              Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                              bởi viettinh
                              Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                              Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                              09-01-2025, 18:12
                            • nguyendinhvan
                              Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                              bởi nguyendinhvan
                              Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                              Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                              Cách đơn giản...
                              09-01-2025, 00:04
                            • mèomướp
                              Trả lời cho Sửa bộ nguồn DC 60V 45A
                              bởi mèomướp
                              Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                              08-01-2025, 19:02
                            • tuyennhan
                              Trả lời cho Sửa bộ nguồn DC 60V 45A
                              bởi tuyennhan
                              Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                              08-01-2025, 15:43
                            Đang tải...
                            X