Thông báo

Collapse
No announcement yet.

Hi-Tech PIC và CCS C

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

  • Nguyên văn bởi kiemkhach10 Xem bài viết
    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
    DisAssembly là ra hết mọi chuyện. Hi vọng là bạn biết ASM

    Comment


    • Các biểu thức nhất là những biểu thức phức tạp (cần yêu cầu ưu tiên phép toán) mình thấy các trình dịch khác nhau biên dịch một cách khác nhau đó, đôi khi nó không hiểu đúng ý mình đâu. bạn xem lại những biểu thức sau ++i >10, x1+=x2; bạn cứ viết rõ ràng ra nhé.

      Comment


      • mình mù tịt asembly
        Nguyên văn bởi duong_act Xem bài viết
        DisAssembly là ra hết mọi chuyện. Hi vọng là bạn biết ASM

        Comment


        • theo kinh nghiệm lập trình của tôi thì cứ viết bình thường, rành mạch ra ... chương trình sáng sủa , chạy đâu hiểu đấy , dễ tối ưu khi cần... dễ sửa .
          Chứ cái kiểu chưa leo qua gốc đã muốn nhảy lên ngọn ... thì có lúc vỡ đầu mà chết !

          Học theo kiểu sinh viên hiện nay ... đã dốt lại hay thích chơi chữ ... thì khó mà nên hồn ... rồi cuối cùng chẳng hiểu cái mô tê 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


          • Nguyên văn bởi kiemkhach10 Xem bài viết
            mình mù tịt asembly
            Thế thì đành có cách viết cho rõ ràng rành mạch ra.

            Code:
            char i=0;
            void main()
               while(1)
               {
                   i++;
                   if(i>10) i=0;
               }
            Cũng chả dài hơn tí nào. Đơn giản, dễ hiểu, dễ kiểm tra và cũng cần nên biết 1 ít ASM mới là hoàn chỉnh.

            Comment


            • thì mình cũng viết lại như vậy cũng ko được. chắc có gì đó chưa ổn để hum nay mình tim nốt vậy.chắc mình bị mắc ở chỗ nào viết chưa rõ thui
              Nguyên văn bởi duong_act Xem bài viết
              Thế thì đành có cách viết cho rõ ràng rành mạch ra.

              Code:
              char i=0;
              void main()
                 while(1)
                 {
                     i++;
                     if(i>10) i=0;
                 }
              Cũng chả dài hơn tí nào. Đơn giản, dễ hiểu, dễ kiểm tra và cũng cần nên biết 1 ít ASM mới là hoàn chỉnh.

              Comment


              • hi! mọi người.
                **Mục tiêu
                +Em ngồi biên dịch thử 1 đoạn code nhỏ viết cho pic. bằng mikroc và mplab x xc8 để kiểm tra mấy thứ
                **Vấn đề mắc phải
                +ở mikroc khi dịch đến đoạn code có lỗi thì nó sẽ báo trực tiếp lên chương trình của mình nhìn cái là biết luôn và sửa lun.
                +nhưng ở mplab xc8 thì em chỉ thấy nó ghi ở phần OUTPUT với thông báo là có lỗi thui chứ nó ko hiện lên trên main mặc dù em đã kích vào lỗi đó.
                **Phương pháp giải quyết
                +Bác có cách làm cho nó hiện lỗi lên phần main như các trình dịch khác thì chỉ em với

                Thank mọi người!

                Comment


                • Thông báo lỗi của MPLABX luôn đi kèm số # dòng nơi trình dịch báo lỗi. Đồng thời kích chuột vào cái thông báo đó thì con trỏ sẽ nhảy tới chỗ mã nguồn có lỗi luôn. Tiện dụng đến thế rồi còn gì nữa

                  Phần mềm tự do hoặc không dùng máy tính nữa !.

                  Comment


                  • Nguyên văn bởi bqviet Xem bài viết
                    Thông báo lỗi của MPLABX luôn đi kèm số # dòng nơi trình dịch báo lỗi. Đồng thời kích chuột vào cái thông báo đó thì con trỏ sẽ nhảy tới chỗ mã nguồn có lỗi luôn. Tiện dụng đến thế rồi còn gì nữa
                    sao của bác nó hiện các lỗi rõ ràng thế nhỉ? mà của em thì ko hiện lỗi mà chỉ hiện thông báo như này thui.
                    hay em có nghí ngoáy bỏ tích mục hiện lỗi ko nhỉ?
                    Click image for larger version

Name:	qwe.jpg
Views:	1
Size:	78.2 KB
ID:	1390908

                    Comment


                    • Có thể bạn đặt cấu hình cho MPLABX bỏ tính năng này. Rõ ràng không phải lỗi phần mềm vì bạn dùng bản MPLABX mới hơn cá bqv đang dùng. Cũng có thể bản MPLABX cho Linux có tính năng khác so với bản cho Windows chăng ? khả năng này rất thấp.
                      Phần mềm tự do hoặc không dùng máy tính nữa !.

                      Comment


                      • Nguyên văn bởi bqviet Xem bài viết
                        Có thể bạn đặt cấu hình cho MPLABX bỏ tính năng này. Rõ ràng không phải lỗi phần mềm vì bạn dùng bản MPLABX mới hơn cá bqv đang dùng. Cũng có thể bản MPLABX cho Linux có tính năng khác so với bản cho Windows chăng ? khả năng này rất thấp.
                        +mình gỡ hết ra và cài lại từ đầu thì ok luôn

                        cơ chế ngắt ưu tiên của pic 18f trong mplab xc mình muốn hỏi chút:
                        mình muốn sử dụng 2 mức ngắt. trong đó ưu tiên mức cao trước thì phải khai báo như nào?
                        để nếu đang xử lý ngắt ở mức thấp mà có ngắt ở mức cao thì nó sẽ nhảy vào mức cao thực hiện xong quay lại mức thấp thực hiện tiếp công việc giang dở.
                        Code:
                        void interrupt CAO (void)
                        {
                         //xử lý mức cao
                        }
                        void interrupt THAP (void)
                        {
                        //xử lý mức thấp
                        }
                        thank!

                        Comment


                        • Trích từ hướng dẫn sử dụng của XC8, mục 5.9.5

                          Khai báo hàm ngắt ưu tiên thấp
                          Code:
                          void interrupt low_priority foo(void) {
                            if (TMR1IE && TMR1IF) {
                              TMR1IF=0;
                              tick_count = 0;
                              return;
                            }
                            // process any other low priority sources here
                          }
                          Khai báo hàm ngắt ưu tiên cao còn đơn giản hơn
                          Code:
                          void interrupt bar(void) {
                          
                          }
                          Trước đây C18 phải khai báo thêm một ít mã ASM ở đúng địa chỉ vector ngắt rồi nhảy tới hàm ngắt thực, dùng XC8 thì không cần những thứ rườm rà đó nữa. Hầm ngắt giờ rất gọn gàng.
                          Phần mềm tự do hoặc không dùng máy tính nữa !.

                          Comment


                          • ở hàm ngắt ưu tiên thấp
                            Code:
                            void interrupt low_priority foo(void) {
                              if (TMR1IE && TMR1IF) {
                                TMR1IF=0;
                                tick_count = 0;
                                return;
                              }
                              // process any other low priority sources here
                            }
                            ở phần hướng dẫn có lúc có lệnh return có lúc lại ko có lệnh return.
                            vậy khi nào sử dụng lệnh đó?
                            thank

                            Comment


                            • Đây không hiểu là lỗi của nhà sản xuất hay lỗi của trình dịch ( bác nào gặp trường hợp như này chưa ?)
                              + ở data sheet (pic18f45k22 và pic18f46k22 thì định nghĩa các chức năng ở pin số 7 tức là chân RA5 như sau)
                              ***RA5/C2OUT/SRNQ/SS1/HLVDIN/AN4
                              có rất nhiều tính năng trong đó có tính năng input analog (AN4)
                              +vậy mà ở file header (pic18f45k22.h và pic18f46k22.h ) lại định nghĩa thiếu tính năng AN4.
                              Code:
                              #ifndef __18F46K22_H
                              #define __18F46K22_H
                              
                              extern volatile far  unsigned char       ANSELA;
                              extern volatile far  struct {
                                unsigned ANSA0:1;
                                unsigned ANSA1:1;
                                unsigned ANSA2:1;
                                unsigned ANSA3:1;
                                unsigned :1;
                                unsigned ANSA5:1;
                              } ANSELAbits;
                              ko hề có định nghĩa cho AN4. vậy lỗi do trình dịch hay lỗi do datasheet hả các bác.
                              lúc thiết kế cứ nhìn datasheet mà vẽ thui giờ chẳng biết làm sao nữa

                              Comment


                              • Nguyên văn bởi octo Xem bài viết
                                Đây không hiểu là lỗi của nhà sản xuất hay lỗi của trình dịch ( bác nào gặp trường hợp như này chưa ?)
                                + ở data sheet (pic18f45k22 và pic18f46k22 thì định nghĩa các chức năng ở pin số 7 tức là chân RA5 như sau)
                                ***RA5/C2OUT/SRNQ/SS1/HLVDIN/AN4
                                có rất nhiều tính năng trong đó có tính năng input analog (AN4)
                                +vậy mà ở file header (pic18f45k22.h và pic18f46k22.h ) lại định nghĩa thiếu tính năng AN4.
                                Code:
                                #ifndef __18F46K22_H
                                #define __18F46K22_H
                                
                                extern volatile far  unsigned char       ANSELA;
                                extern volatile far  struct {
                                  unsigned ANSA0:1;
                                  unsigned ANSA1:1;
                                  unsigned ANSA2:1;
                                  unsigned ANSA3:1;
                                  unsigned :1;
                                  unsigned ANSA5:1;
                                } ANSELAbits;
                                ko hề có định nghĩa cho AN4. vậy lỗi do trình dịch hay lỗi do datasheet hả các bác.
                                lúc thiết kế cứ nhìn datasheet mà vẽ thui giờ chẳng biết làm sao nữa
                                xin chia buồn là AN4 không có chức năng analog ( ADC ) đâu.
                                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

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • tuyennhan
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi tuyennhan
                                  Cái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
                                  Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .
                                  hôm nay, 07:44
                                • vi van pham
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi vi van pham
                                  Cám ơn những lời chúc tốt đẹp của em.

                                  Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.

                                  Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....
                                  hôm nay, 02:00
                                • nhathung1101
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi nhathung1101
                                  Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.

                                  Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.

                                  Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...
                                  Hôm qua, 22:18
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.

                                  Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...
                                  Hôm qua, 14:51
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.

                                  Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...
                                  Hôm qua, 14:39
                                • dinhthuong80
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi dinhthuong80
                                  Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.

                                  Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...
                                  Hôm qua, 14:28
                                • bqviet
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi bqviet
                                  Đúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
                                  21-02-2025, 20:26
                                • mèomướp
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi mèomướp
                                  Dạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
                                  21-02-2025, 12:32
                                • vi van pham
                                  Trả lời cho Tiếng Anh cho người Việt
                                  bởi vi van pham
                                  Những lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).

                                  Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...
                                  20-02-2025, 21:31
                                • bqviet
                                  Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )
                                  bởi bqviet
                                  Thiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.
                                  20-02-2025, 17:22
                                Đang tải...
                                X