Thông báo

Collapse
No announcement yet.

HT PIC-Code sai chỗ nào !!

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

  • HT PIC-Code sai chỗ nào !!

    Em mới tập lập trình HT Pic !! Gặp đoạn code sau có vấn đề
    PHP Code:
    #include <pic16f87.h>

    __CONFIG(HS PWRTEN BOREN LVPDIS WDTDIS );

    void  main(void)
    {
        
        
    TRISB=0x00;
        while(
    1)
        {
            
    PORTB=0xff;
            
    _delay_ms(50);
            
    PORTB=0x00;
            
    _delay_ms(50);
            
        

        }
        

    Mp Lab bảo thiếu dấu ) nhưng em kiểm tra rồi làm gì thiếu !! Nhờ các đại ca coi giúp !!

  • #2
    Hàm đúng của nó là __delay_ms() và __delay_us()
    có 2 dấu gạch dưới trước từ delay
    Phần mềm tự do hoặc không dùng máy tính nữa !.

    Comment


    • #3
      Vẫn không được anh ơi !!

      Comment


      • #4
        tại sao bạn lại ko mở Help của nó mà xem nhỉ ? tôi nghĩ cái này đơn giản thôi mà. Nếu HT pic hổ trợ biết liền. mà cái này là bản free hay *****. Nếu có thì đã ***** chưa.
        Khuyên chân thành bạn, chơi pic16f877a sao ko bắt đầu từ ccs ? nó có đongso tài liệu và code mẫu made in viêtnam.
        Chuyển đi nhé, ko phải hỏi mấy cái này nữa . Hì
        My Face :

        Comment


        • #5
          Nguyên văn bởi AKA_QUAN Xem bài viết
          Em mới tập lập trình HT Pic !! Gặp đoạn code sau có vấn đề
          PHP Code:
          #include <pic16f87.h>

          __CONFIG(HS PWRTEN BOREN LVPDIS WDTDIS );

          void  main(void)
          {
              
              
          TRISB=0x00;
              while(
          1)
              {
                  
          PORTB=0xff;
                  
          _delay_ms(50);
                  
          PORTB=0x00;
                  
          _delay_ms(50);
                  
              

              }
              

          Mp Lab bảo thiếu dấu ) nhưng em kiểm tra rồi làm gì thiếu !! Nhờ các đại ca coi giúp !!
          Bạn chưa Define _XTAL_FREQ thì làm sao sử dụng hàm __delay_ms() với __delay_us() được.

          Comment


          • #6
            PHP Code:
            #include <pic16f87.h>
            #define _XTAL_FREQ 4000000     
            __CONFIG(HS PWRTEN BOREN LVPDIS WDTDIS);
            void  main(void)
            {
                
            TRISB=0x00;
                while(
            1)
                {
                    
            PORTB=0xff;
                    
            __delay_ms(50);
                    
            PORTB=0x00;
                    
            __delay_ms(50);
                    
                

                }
                

            Lỗi vẫn thế !!

            Comment


            • #7
              Nguyên văn bởi hienclubvn Xem bài viết
              tại sao bạn lại ko mở Help của nó mà xem nhỉ ? tôi nghĩ cái này đơn giản thôi mà. Nếu HT pic hổ trợ biết liền. mà cái này là bản free hay *****. Nếu có thì đã ***** chưa.
              Khuyên chân thành bạn, chơi pic16f877a sao ko bắt đầu từ ccs ? nó có đongso tài liệu và code mẫu made in viêtnam.
              Chuyển đi nhé, ko phải hỏi mấy cái này nữa . Hì
              Thấy HT C nó lập trình dễ hơn và không quá nhiều hàm không cần thiết !! Vả lại đang học nghề họ dạy HT C !!

              Comment


              • #8
                #include <pic16f87.h>
                ht pic đâu có include trực tiếp tên pic, phải chọn tên pic trong project wizard
                và sửa thành dòng trên thành
                #include <pic.h> hoặc là #include <htc.h>

                Comment


                • #9
                  nếu bác đang học chắc có tài liệu rồi phải không thê bác co thể đăng tài liệu đó cho tôi và anh em học hỏi với đươc không?
                  hjhjhj
                  cảm ơn bác trước

                  Comment


                  • #10
                    Tiện thể cho hỏi sao tui include <htc.h > thì nó báo lỗi không tìm thấy là sao !!

                    Comment


                    • #11
                      PHP Code:
                      #include <pic.h>
                      __CONFIG(LVPDIS BOREN PWRTEN WDTDIS HS);


                      // Unless already defined assume 4MHz system frequency
                      // This definition is required to calibrate __delay_us() and __delay_ms()
                      #define _XTAL_FREQ 4MHZ


                      void  main(void)
                      {
                          
                      TRISB=0x00;
                          while(
                      1)
                          {
                              
                      PORTB=0xff;
                              
                      __delay_ms(50);
                              
                      PORTB=0x00;
                              
                      __delay_ms(50);    
                          }

                      Chừ dính thêm lỗi không tìm thấy hàm __delay_ms()!!

                      Comment


                      • #12
                        Nguyên văn bởi AKA_QUAN Xem bài viết
                        Tiện thể cho hỏi sao tui include <htc.h > thì nó báo lỗi không tìm thấy là sao !!
                        sao lại ko tìm thấy được, nó ở trong folder include của ht pic

                        Nguyên văn bởi AKA_QUAN Xem bài viết
                        Chừ dính thêm lỗi không tìm thấy hàm __delay_ms()!!
                        code trên đã test ok, chắc lỗi do trình dịch của bạn

                        Comment


                        • #13
                          Vậy bạn có thể send file htc.h được không!!

                          Comment


                          • #14
                            Không biết trình dịch của mình bị sao nữa !! Chừ phải dùng hàm delay chế lại từ bộ hàm delay mà Microchip cung cấp !! Đây là bộ hàm delay của Microchip cấp cho : http://www.microchipc.com/sourcecode...6xxxx_v7-1.zip
                            Còn đây là file remix của mình(đính kèm; http://www.mediafire.com/?3cgsdhw6eh2q1ln) , bạn chỉ cần copy nó vào thư mục include của HT C và sao này muốn dùng thì cứ include <delay.h> khỏi phải add vào project mất công !!Cú pháp các hàm như sau
                            PHP Code:
                            void DelayBigUs(unsigned int cnt);
                            void DelayMs(unsigned char cnt);
                            void DelayMs_interrupt(unsigned char cnt);
                            void DelayBigMs(unsigned int cnt);
                            void DelayS(unsigned char cnt); 

                            Comment


                            • #15
                              bạn sửa lại như này là chay nè
                              #include <htc.h>
                              __CONFIG(HS & PWRTEN & BOREN & LVPDIS & WDTDIS );
                              #ifndef _XTAL_FREQ
                              #define _XTAL_FREQ 20000000 //nếu dùng thạc anh 20M
                              #endif

                              void main(void)
                              {
                              ANSEL=0x00;
                              ANSELH=0x00;
                              TRISB=0x00;
                              while(1)
                              {
                              PORTB=0xff;
                              __delay_ms(10);//ban thay delay 20ms thành 10ms thui nếu muốn lâu hơn thì dùng vòng for
                              PORTB=0x00;
                              __delay_ms(10);



                              }

                              }
                              Nguyên văn bởi AKA_QUAN Xem bài viết
                              Em mới tập lập trình HT Pic !! Gặp đoạn code sau có vấn đề
                              PHP Code:
                              #include <pic16f87.h>

                              __CONFIG(HS PWRTEN BOREN LVPDIS WDTDIS );

                              void  main(void)
                              {
                                  
                                  
                              TRISB=0x00;
                                  while(
                              1)
                                  {
                                      
                              PORTB=0xff;
                                      
                              _delay_ms(50);
                                      
                              PORTB=0x00;
                                      
                              _delay_ms(50);
                                      
                                  

                                  }
                                  

                              Mp Lab bảo thiếu dấu ) nhưng em kiểm tra rồi làm gì thiếu !! Nhờ các đại ca coi giúp !!

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X