Thông báo

Collapse
No announcement yet.

Hi-Tech PIC và CCS C

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

  • Mình ở hà nội, NẾu bạn là sinh viên thì nên mua burnE (của Pduy) giá 200k (có thể đc bớt còn 190k) có thể nạp cho nhiều dòng MCU chất lượng cũng tốt. Còn pi ckit2 se loại trong nước tự lắp giá 220k đến 250k đầu tư trăm ngàn bộ mạch nạp để học thì tính toán làm gì hơn kém mấy chục, Cái nào tốt hơn cái nào thì không kết luận đc vì tùy theo mục đích. Nhưng với mình nếu chỉ làm việc với pi c thì chọn pikit2 (tương thích với mplab, pikit2.., phần mềm và firmware được viết rất kỹ). Bạn không nên hỏi han ở đây vì làm loãng chủ đề

    Comment


    • Nguyên văn bởi vuhapassall Xem bài viết
      Chính xác, số lệnh ASM ít hơn không có nghĩa là chạy nhanh hơn. Để hoàn thành 1 việc, không có nghĩa là số lệnh ASM ít thì ít chu kỳ máy hơn. Ví dụ như giải thuật sắp xếp thì biết. Hoặc đệ quy với không đệ quy, dùng vòng lặp và điều kiện vòng lặp, dùng các toán tử bit so với thực hiện phép toán. 1 vòng lặp vài lệnh ASM nhưng chạy cả ngàn chu kỳ máy, nhưng nếu khử vòng lặp đc bằng chục lệnh ASM thì chỉ cần hơn chục vòng máy. Đôi khi , số lệnh ASM nhiều hơn (ứng với code lớn hơn) nhưng chạy nhanh hơn.
      Quá đúng!!!
      Một số lệnh lúc thêm vào còn làm hệ thống chạy ổn định hơn...
      Last edited by quanghuy_125; 23-12-2013, 18:51.
      ĐT : 01676455880

      Comment


      • Code:
        Chính xác, số lệnh ASM ít hơn không có nghĩa là chạy nhanh hơn. Để hoàn thành 1 việc, không có nghĩa là số lệnh ASM ít thì ít chu kỳ máy hơn. Ví dụ như giải thuật sắp xếp thì biết. Hoặc đệ quy với không đệ quy, dùng vòng lặp và điều kiện vòng lặp, dùng các toán tử bit so với thực hiện phép toán. 1 vòng lặp vài lệnh ASM nhưng chạy cả ngàn chu kỳ máy, nhưng nếu khử vòng lặp đc bằng chục lệnh ASM thì chỉ cần hơn chục vòng máy. Đôi khi , số lệnh ASM nhiều hơn (ứng với code lớn hơn) nhưng chạy nhanh hơn.
        Chấp nhận có thể nhiều lệnh ASM chạy nhanh hơn ít lệnh ASM. Nhưng không phải luôn luôn là như thế. Phải lấy cái đa số làm đại diện. và đa phần là nó chạy chậm hơn.
        Last edited by duong_act; 24-12-2013, 09:25.

        Comment


        • Việc thêm lệnh có thể làm ổn định hơn trong 1 số trường hợp nhưng hiếm thấy nó chạy nhanh hơn . tương tự như đi đường thẳng nguy hiểm thì ta đi đường vòng .
          Con trỏ trong mấy loại MCU cỏ này thường chỉ có 1 nên việc nhiều lệnh cũng đồng nghĩa phải kiểm tra nhiều lần ở các vị trí lệnh .

          Cứ viết trực tiếp ASM , đưa thẳng trực tiếp vào thanh ghi xem ... viết thế nào nó chạy như vậy.
          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


          • Có thể kiểm tra nhanh compiler (8bit) có thông minh không bằng cách thử disasembly các lệnh như: (int x) 255-x, x/2, x/4, x/8, các biểu thức logic lằng nhằng. Compiler tốt sẽ tự tối giản và tối ưu các lệnh trên bằng các lệnh tối giản tương đương sẽ nhanh hơn và tốn ít ram/code hơn. Còn nếu thấy compiler "Phu quá" thì mình phải tối ưu thay nó

            Comment


            • Nguyên văn bởi vuhapassall Xem bài viết
              Có thể kiểm tra nhanh compiler (8bit) có thông minh không bằng cách thử disasembly các lệnh như: (int x) 255-x, x/2, x/4, x/8, các biểu thức logic lằng nhằng. Compiler tốt sẽ tự tối giản và tối ưu các lệnh trên bằng các lệnh tối giản tương đương sẽ nhanh hơn và tốn ít ram/code hơn. Còn nếu thấy compiler "Phu quá" thì mình phải tối ưu thay nó
              mấy cái trình dịch thì cũng đều do người mà ra , khi đã lập trình với C , biết ASM ... kể cả HTPIC , CCS , mikro , Xc8 hay gì đi nữa người ta đều view ra để kiểm tra trong 1 số trường hợp cần thiết về tối ưu . Nên chuyện tối ưu thay vẫn phải làm là chuyện thường khi thực sự cần thiết phải tối ưu ... còn không đơn giản thì cứ viết và chạy 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


              • Các bác nói đều chuẩn men!
                Mấy cái trình dịch nói chung đều cho phép ta có thể tối ưu mã bằng hợp ngữ(ASM) .
                Nhưng việc này có vẻ mất thời gian, ít ai để ý... Việc dùng trình dịch nào hay thì cũng rất khó nói, ai biết nhiều và thành thạo về trình dịch nào thì đó đều hay...( Như con người cũng vậy ADN giống nhau tới 99.99% nhưng cũng khác như vậy là có thể thành em chuột ngay)...
                ĐT : 01676455880

                Comment


                • Mình thấy việc tối ưu chủ yếu do người viết có hiểu được MCU, có hiểu được trình dịch họ đang dùng hay không. Mình nghĩ cái gọi là tối ưu nó không chỉ đơn giản là sinh ra mã hex nhỏ mà cái chính nó phải đáp ứng được công việc, tốc độ,... Một chương trình có mã hex nhỏ, chạy nhanh nhưng ẩn chứa các lỗi (bug) thì cũng vứt.

                  Comment


                  • Cảm thấy ớn quá thì tự build lấy 1 cái mà sài các bác ạ . E thì e xin chịu, ăn đồ chùa nó quen roài, vì sài chùa nên chả dám kêu . Chạy đc và bảo đảm cái đã, tối ưu tính sau .


                    Add: 97 Quán Nam - Lê Chân - Hải Phòng.
                    Tel: 031 518648 Phone: 0904 283 505

                    Comment


                    • hức sau 1 ngày cố chuyển 1 project từ hitech pic --> Mikroc thì thấy có điều gì đó ko ổn?
                      hitech pic (dùng 16f887) viết full code 97%.
                      khi chuyển sang Mikroc khi dịch thì nó báo lỗi ( There is not enough ROM space __Lib_System.c
                      Address must be greater than 0 main MyProject.c
                      Address must be greater than 0 statu_stack MyProject.c
                      .................................................. .................................)
                      theo mình hiểu thì nó báo thiếu rom và cái gì nữa ko biết?
                      bác nào đã gặp trường hợp này vào cho ý kiến cái.đang kỳ vọng và Mikroc quá chẳng nhẽ hụt hơi
                      p/s: thư viện dùng mỗi adc và eeprom
                      Last edited by kiemkhach10; 26-12-2013, 17:46.

                      Comment


                      • Ở đời cứ kỳ vọng vào cái gì nhiều quá (bất kể cái gì) thì thất vọng cũng sẽ tương xứng thôi.
                        Phần mềm tự do hoặc không dùng máy tính nữa !.

                        Comment


                        • bác nói nghe chua chát thế. chỉ tại từ trước dùng mấy cái hitec và c18 nó viết hơi thủ công định chuyển sang dùng kiểu ăn sẵn xem sao ai dè chưa được. nếu bí quá ta lại tìm hướng khác mà.

                          Comment


                          • Tốt nhất thì hiểu cái nào thì sài cái đó , am hiểu tường tận thì mới biết nó thừa, thiếu ở đâu ... cứ học theo kiểu phong trào thấy cái lọ cái chai hay lại phi thân vào ... thì thất vọng là điều đương nhiên !

                            Cỗ bày sẵn nhưng cũng phải biết cách ăn , cách gắp ... chứ không là chết hóc !
                            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


                            • Nguyên văn bởi kiemkhach10 Xem bài viết
                              hức sau 1 ngày cố chuyển 1 project từ hitech pic --> Mikroc thì thấy có điều gì đó ko ổn?
                              hitech pic (dùng 16f887) viết full code 97%.
                              khi chuyển sang Mikroc khi dịch thì nó báo lỗi ( There is not enough ROM space __Lib_System.c
                              Address must be greater than 0 main MyProject.c
                              Address must be greater than 0 statu_stack MyProject.c
                              .................................................. .................................)
                              theo mình hiểu thì nó báo thiếu rom và cái gì nữa ko biết?
                              bác nào đã gặp trường hợp này vào cho ý kiến cái.đang kỳ vọng và Mikroc quá chẳng nhẽ hụt hơi
                              p/s: thư viện dùng mỗi adc và eeprom
                              Lên mạng tra cái lỗi đó xem nguyên nhân tại sao. Nó báo không đủ ROM chưa chắc là đã là do > 100% ROM. Ví dụ CCS nó sẽ không cho 1 hàm vượt quá dung lượng 25% ROM. Hãy chia nhỏ các hàm ra xem sao ( và đấy cũng là cách hay hơn tống tất cả vào 1 hàm ). Mỗi thằng trình dịch có một phương pháp làm việc khác nhau nên việc ôm toàn bộ code của thằng này ốp vào thằng kia không phải là cách tốt. Hãy tìm hiểu cho kĩ trình dịch để phối hợp với nó mới cho ra kết quả tốt được.
                              Lời khuyên đây này :
                              Cỗ bày sẵn nhưng cũng phải biết cách ăn , cách gắp ... chứ không là chết hóc !

                              Comment


                              • các bác xem dùm cái này hơi kỳ lạ
                                với lệnh cơ bản này:
                                Code:
                                //------------------------// cai nay thi chạy tot.
                                char i;//ko khoi tao gia tri dau cho i
                                void main()
                                {
                                   while(1)
                                   {
                                      if( ++i  >10)
                                        i=0;
                                    }
                                }
                                //-----------------------------
                                //------------------------// cai nay thi ko chạy
                                char i=0;// khoi tao gia tri ban dau cho i=0;
                                void main()
                                {
                                   while(1)
                                   {
                                      if( ++i  >10)
                                        i=0;
                                    }
                                }
                                //-----------------------------
                                các bác xem cho ý kiến với với vì sao KHỞI TẠO GIÁ TRỊ ĐẦU LẠI KO CHẠY CÒN BỎ MẶC LẠI CHẠY NHIỆT TÌNH NHỈ ?

                                p/s: cả vấn đề cộng dồn nữa cũng ko ổn lắm.
                                int x1,x2;
                                x1+=x2;
                                //cộng đủ 50 lần rùi hiển thị x1;
                                chẳng hiểu sao nó cứ hiện lung tung . với htech hay c18 thì hiển thị bình thường còn Mikroc lại hiển thị lung tung
                                Last edited by kiemkhach10; 27-12-2013, 17:11.

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                Đang tải...
                                X