Thông báo

Collapse
No announcement yet.

Sao chỉ có thể là 8.

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

  • #16
    Cho t hỏi cách khai báo ADC để có thể khởi tạo Vref + và Vref- có thể đặt điện áp vào để có thể tạo khoảng chênh lệch 1024mV.
    "Hãy nhìn người yêu mình là đẹp
    Chứ đừng nhìn người đẹp mà yêu"

    Comment


    • #17
      Nguyên văn bởi phanlamdien Xem bài viết
      Cho t hỏi cách khai báo ADC để có thể khởi tạo Vref + và Vref- có thể đặt điện áp vào để có thể tạo khoảng chênh lệch 1024mV.
      Việc chênh điện áp thì là do bạn hiệu chỉnh ở mạch ngoài ( chiết áp chẳng hạn ) ... còn để khởi tạo ADC với Vref+ , Vref- thì bạn xem thêm thanh ghi ADCON1

      các bit 0 --> 3 ( PCFG0 --> PCFG3 ) có trong datasheet của pic16f877AClick image for larger version

Name:	ADCON1_register.jpg
Views:	1
Size:	88.3 KB
ID:	1347509
      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


      • #18
        ẹc cái nì thì bít rùi nhưng không biết khai báo như thế nào trong C á vd như: setup_adc_ports(RA0_RA1_ANALOG_RA3_REF); cái nì chỉ có thể chọn Vref- là Vss thui. Tui muốn hỏi khai báo tương tự như thế này. Lúc trước có cái tài liệu lập trình C tự nhiên bây giờ tìm không thấy nữa chán quá.
        "Hãy nhìn người yêu mình là đẹp
        Chứ đừng nhìn người đẹp mà yêu"

        Comment


        • #19
          Nguyên văn bởi phanlamdien Xem bài viết
          ẹc cái nì thì bít rùi nhưng không biết khai báo như thế nào trong C á vd như: setup_adc_ports(RA0_RA1_ANALOG_RA3_REF); cái nì chỉ có thể chọn Vref- là Vss thui. Tui muốn hỏi khai báo tương tự như thế này. Lúc trước có cái tài liệu lập trình C tự nhiên bây giờ tìm không thấy nữa chán quá.

          cái này thì bạn ghi kết quả trực tiếp vào setup_adc_ports(0x08); chẳng hạn ...
          hoặc vào PICC ( trong program flies ) rồi xem cái file 16F877A.h trong thư mục devices ý AN0_AN1_AN4_AN5_AN6_AN7_VREF_VREF

          --- Nói chung cái nào không nhớ thanh ghi , define tên ... thì cứ chui vào mà tìm file .h của con tương ứng rồi tra cứu vậy ( kinh nghiệm cho người mới học )

          Mà cái thằng CCS này dài dòng vãi cả ra ... viết mỏi hết cả tay ( nên đổi trình dịch khác đi thôi cho nó bám sát với datasheet ) . hoặc nếu không phải nhớ cặn kẽ các thanh ghi

          trình dịch khác thì chỉ cần ADCON1=0x08;
          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


          • #20
            Nguyên văn bởi queduong Xem bài viết
            mình dùng trực tiếp CCS không bị như vậy , mikroC cũng không bị , MPLAB , HTPIC cũng không bị ( mình dùng rất nhiều loại trình dịch ) nhưng chưa gặp hiện tượng .
            Phiên bản CCS của bạn là bao nhiêu ? Thử download bản mới nhất xem ( nếu không có thể post lên mình test thử cho )
            Anh quế dương sử dụng nhiều vậy, em cũng chỉ sử dụng Micro C là flow code thôi. anh có có đoạn code nào thì mang lên cho anh em chiêm ngưỡng làm mẫu đi. Thanks anh ( em nghĩ mở một box để chia sẻ code mẫu, mọi người coi đó là tài nguyên nghiên cứu nhé)
            Be quan. Plz contact through email:

            Comment


            • #21
              Sẳn đây cho tôi hỏi mấy huynh là khi build xong thì file hex nó có dung lượng trên 20k vậy điều này có hợp lí không khi bộ nhớ của PIC chỉ có 8k.
              "Hãy nhìn người yêu mình là đẹp
              Chứ đừng nhìn người đẹp mà yêu"

              Comment


              • #22
                Sao ta thấy lạnh lẽo quá.
                "Hãy nhìn người yêu mình là đẹp
                Chứ đừng nhìn người đẹp mà yêu"

                Comment


                • #23
                  Nguyên văn bởi phanlamdien Xem bài viết
                  Sẳn đây cho tôi hỏi mấy huynh là khi build xong thì file hex nó có dung lượng trên 20k vậy điều này có hợp lí không khi bộ nhớ của PIC chỉ có 8k.
                  Cái này đã có nhiều luồng hỏi , trả lời rồi . Dung lượng trên PC và dung lượng chip chẳng có gì liên quan với nhau cả .

                  -- Trình dịch đã dịch thành công là nạp được . Mỗi loại MCU trong trình dịch đã có giới hạn code từng loại rồ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


                  • #24
                    8 case.

                    do.zip

                    Bác Dương xem giúp sao case đo công suất nó ko chịu chạy.
                    "Hãy nhìn người yêu mình là đẹp
                    Chứ đừng nhìn người đẹp mà yêu"

                    Comment


                    • #25
                      Nguyên văn bởi phanlamdien Xem bài viết
                      [ATTACH]29473[/ATTACH]

                      Bác Dương xem giúp sao case đo công suất nó ko chịu chạy.
                      Vì bạn code không tối ưu , lại xử lý toàn số thực ... Nó quá bộ nhớ chứ sao nữa . Thay con PIC khác đi ... dùng con nào bộ nhớ to to vào . Lúc ấy Case với code viết thoải mái 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


                      • #26
                        Nhưng nó không báo full load mà.
                        "Hãy nhìn người yêu mình là đẹp
                        Chứ đừng nhìn người đẹp mà yêu"

                        Comment


                        • #27
                          Code có rất nhiều đoạn trùng lặp ... các phép tính trùng lặp ... Tại sao không gom nó vào thành 1 chức năng để giảm ROM CODE ... mà chỗ nào cũng thích viết tất ra vậy . ???

                          ví dụ
                          Code:
                            void channel_a()
                          {
                                setup_adc(ADC_CLOCK_INTERNAL);
                                setup_adc_ports(ALL_ANALOG);
                                set_adc_channel(0);
                                delay_us(100);
                                ampe0=(float)read_adc()*10.0/2.046;
                          }
                          
                          void channel_b()
                          {
                                setup_adc(ADC_CLOCK_INTERNAL);
                                setup_adc_ports(ALL_ANALOG);
                                set_adc_channel(1);
                                delay_us(100);
                                ampe1=(float)read_adc()*10.0/2.046;
                          }

                          hoàn toàn có thể viết :

                          Code:
                          void channel_select(unsigned char channel)
                          {
                                setup_adc(ADC_CLOCK_INTERNAL);
                                setup_adc_ports(ALL_ANALOG);
                                set_adc_channel(channel);
                                delay_us(100);
                                ampe1=(float)read_adc()*10.0/2.046;
                          }
                          khi gọi thì chỉ cần channel_select(0); hoặc channel_select(1); thôi .

                          Rom code, ram MCU nó có giới hạn chứ có nhiều như ổ đĩa PC đâu nên phải cần phải tối ưu để giảm bớt !
                          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


                          • #28
                            Nguyên văn bởi phanlamdien Xem bài viết
                            Nhưng nó không báo full load mà.
                            nó vượt quá nó báo Out of ROM ... segment too large gì gì đó
                            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


                            • #29
                              Nhưng cần đến 2 giá trị ampe0 và ampe1 để tính toán mà nếu làm như bác nói thì làm sao có thể xác định giá trị nào là 1 và giá trị nào là 0.
                              "Hãy nhìn người yêu mình là đẹp
                              Chứ đừng nhìn người đẹp mà yêu"

                              Comment


                              • #30
                                Tôi đã chỉnh sửa lại chương trình rùi và nó hoàn toàn ko báo gì cả và nó chỉ dùng có 50% của ROM và 24% của RAM.
                                "Hãy nhìn người yêu mình là đẹp
                                Chứ đừng nhìn người đẹp mà yêu"

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X