cấu hình cho Pic trong MPLAB

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • anhquangngai
    Đệ tử 2 túi
    • Sep 2006
    • 33

    #1

    cấu hình cho Pic trong MPLAB

    các anh có thể giúp em về các lệnh config cho PIC dc ko?
    như ý nghĩa của các lệnh _HS_OSC, _XT_OSC,.............
  • phamthaihoa
    Đệ tử 3 túi
    • Jun 2005
    • 56

    #2
    Nguyên văn bởi anhquangngai View Post
    các anh có thể giúp em về các lệnh config cho PIC dc ko?
    như ý nghĩa của các lệnh _HS_OSC, _XT_OSC,.............
    Những lệnh này cấu hình cho PIC sử dụng loại thạch anh nào,
    XT_OSC nếu bạn dùng loại thạch anh <=8Mhz còn HS_OSC cho loại >8Mhz.

    Comment

    • ami
      Đệ tử 9 túi
      • Jul 2005
      • 38

      #3
      Để tìm hiểu CONFIG trong MPASM bạn có thể vào mục help của MPLAB và tra cưú config. Mình xin liệt kê một số config ở dưới đây:

      CP: Code Protect : có khóa chương trình, không cho đọc ngược lại file .hex
      PWRTE: Power-up Timer Enable.: đại khái là cài chế độ nguồn, đặt off là default

      WDT: Watch Dog Time dùng đề tự reset lại PIC sau 1 thời gian nhát định
      BODEN: Brown on Power - tức là đặt chế độ nguồn xám (coi tính năng này trong datasheet bạn nhé)
      CPD: ... DATA EEPROM OPERATION DURING CODE PROTECT
      MCLRE_OFF: đối với vài con PIC 12Fxxx, chan reset cũng đồng thời là một chân chức năng, do đó config này dùng để xác định đó là chân reset(ON) hay là chân chức năng (OFF)
      INTRC_OSC: sử dụng dao động nội hay không ?

      Các tính năng cụ thể được mô tả trong datasheet, còn ký hiệu và tên viêt thì trong Help cua MPLAB, khi nào cần bạn cứ mở ra, copy-paste là OK !!!
      Không béo bề ngang thì cũng bổ bề dọc
      Không bổ cho ruột non thì cũng bổ ruột ...

      Comment

      • linhtdh1k49
        Nhập môn đệ tử
        • Sep 2008
        • 7

        #4
        Em đã chỉnh configurations bit trong mục configure của MPLAB cho watchdog timer vì nó cứ reset VDK sau một thời gian. Tuy nhiên disabled rồi mà vẫn thấy VDK bị reset trong proteus
        Hiện em đang dùng proteus 7.2 SP0 và MPLAB C18 3.11 trial. Dịch ra file hex vẫn bình thường, chạy trên proteus bình thường, nhưng sau 1 khoảng thời gian nó lại tự reset vi điều khiển (cảnh báo ở simulation log).
        Mong các anh giúp đỡ cái ! có cách nào disable cái watchdog timer trong MPLAB C18 không (vì em biết trong CCS có thể làm bằng lệnh NOWDT)

        Comment

        • namqn
          Trưởng lão PIC bang
          • Feb 2006
          • 3020

          #5
          Nguyên văn bởi linhtdh1k49 View Post
          Em đã chỉnh configurations bit trong mục configure của MPLAB cho watchdog timer vì nó cứ reset VDK sau một thời gian. Tuy nhiên disabled rồi mà vẫn thấy VDK bị reset trong proteus
          Hiện em đang dùng proteus 7.2 SP0 và MPLAB C18 3.11 trial. Dịch ra file hex vẫn bình thường, chạy trên proteus bình thường, nhưng sau 1 khoảng thời gian nó lại tự reset vi điều khiển (cảnh báo ở simulation log).
          Mong các anh giúp đỡ cái ! có cách nào disable cái watchdog timer trong MPLAB C18 không (vì em biết trong CCS có thể làm bằng lệnh NOWDT)
          Bạn hãy đưa code của bạn lên. Có nhiều lý do khiến vi điều khiển bị reset, và viết code không ổn là 1 lý do.

          Thân,
          Biển học mênh mông, sức người có hạn.

          Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
          http://www.picvietnam.com/forum/showthread.php?t=1263

          Comment

          • linhtdh1k49
            Nhập môn đệ tử
            • Sep 2008
            • 7

            #6
            Reset VDK_Watchdog TImer_Có lợi hay hại !?????

            Nguyên văn bởi namqn View Post
            Bạn hãy đưa code của bạn lên. Có nhiều lý do khiến vi điều khiển bị reset, và viết code không ổn là 1 lý do.

            Thân,
            //
            // Hello Embedded World
            // Version 2
            // Hardware : PIC18F1220
            //
            #include "p18f1220.h"
            main()
            {
            TRISA = 0;
            while(1) {
            PORTA = 0xffff;
            }
            }

            Như anh Nam và mọi người thấy, đoạn code này cực kì đơn giản. Nếu em lập trình bên CCS thì không hề có hiện tượng reset VDK . Còn với MPLAB này thì cứ sau một khoảng thời gian thì nó tự động reset.
            Đọc hướng dẫn của MPLAB thì nó nói phải vào Configure --> Configuration Bits --> Disable Watchdog timer --> em đã làm như hình vẽ.
            Nhưng kết quả vẫn vậy
            Bi h em đang phải làm việc với CCS, tuy nhiên em rất trăn trở vấn đề này. MPLAB cũng cho phép ta mô phỏng, nhưng khi kết hợp được với Proteus là tốt nhất. Mong các anh PVN giúp đỡ
            Attached Files

            Comment

            • bien_van_khat
              ...Damned...
              • Apr 2006
              • 503

              #7
              Bạn nên upload file hex chạy lỗi lên, nhìn đoạn code cũng như cách bạn cấu hình chẳng đoán được gì cả.
              - Xin đọc trước khi post bài

              Xin đặt code trong thẻ [ code ] [ /code ]

              Comment

              • namqn
                Trưởng lão PIC bang
                • Feb 2006
                • 3020

                #8
                Nguyên văn bởi linhtdh1k49 View Post
                //
                // Hello Embedded World
                // Version 2
                // Hardware : PIC18F1220
                //
                #include "p18f1220.h"
                main()
                {
                TRISA = 0;
                while(1) {
                PORTA = 0xffff;
                }
                }

                Như anh Nam và mọi người thấy, đoạn code này cực kì đơn giản. Nếu em lập trình bên CCS thì không hề có hiện tượng reset VDK . Còn với MPLAB này thì cứ sau một khoảng thời gian thì nó tự động reset.
                Đọc hướng dẫn của MPLAB thì nó nói phải vào Configure --> Configuration Bits --> Disable Watchdog timer --> em đã làm như hình vẽ.
                Nhưng kết quả vẫn vậy
                Bi h em đang phải làm việc với CCS, tuy nhiên em rất trăn trở vấn đề này. MPLAB cũng cho phép ta mô phỏng, nhưng khi kết hợp được với Proteus là tốt nhất. Mong các anh PVN giúp đỡ
                Với chương trình đơn giản của bạn, tôi thường viết như sau:
                Code:
                #include	<p18cxxx.h>
                
                //Configuration bits
                #pragma config OSC = HS
                #pragma config FSCM = OFF
                #pragma config IESO = OFF
                #pragma config PWRT = OFF
                #pragma config BOR = ON
                #pragma config BORV = 27
                #pragma config WDT = OFF
                #pragma config WDTPS = 32768
                #pragma config MCLRE = ON
                #pragma config STVR = ON
                #pragma config LVP = OFF
                #pragma config DEBUG = OFF
                #pragma config CP0 = OFF
                #pragma config CP1 = OFF
                #pragma config CPB = OFF
                #pragma config CPD = OFF
                #pragma config WRT0 = OFF
                #pragma config WRT1 = OFF
                #pragma config WRTB = OFF
                #pragma config WRTC = OFF
                #pragma config WRTD = OFF
                #pragma config EBTR0 = OFF
                #pragma config EBTR1 = OFF
                #pragma config EBTRB = OFF
                
                //Main program
                void main(void)
                {
                	TRISA = 0;
                	while(1) {
                		LATA = 0xFF;
                	}
                }
                Tôi thường xuyên xác định tường minh giá trị cho các từ cấu hình, để đảm bảo không có điều gì bất thường trong cấu hình của chip khi thử nghiệm. Bạn thử tạo một project mới với code ví dụ trên (chọn PIC được dùng là PIC18F1220 khi tạo project), biên dịch và nạp vào Proteus xem WDT còn tác động reset PIC nữa hay không.

                Ở hình minh họa thứ ba mà bạn đã post, tôi chú ý rằng checkbox "Configuration Bits set in code" vẫn được chọn, như vậy bạn sẽ không thể thay đổi các thiết lập cấu hình trong MPLAB.

                Thân,
                Biển học mênh mông, sức người có hạn.

                Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
                http://www.picvietnam.com/forum/showthread.php?t=1263

                Comment

                • linhtdh1k49
                  Nhập môn đệ tử
                  • Sep 2008
                  • 7

                  #9
                  Cảm ơn anh namqn rất rất nhiều ! sau khi copy đoạn code cấu hình của anh vào , em không thấy hiện tượng watchdog timer nữa ! còn cái configuration bits set in code thì : nếu không có đoạn mã của anh thì kể cả có bỏ chọn hay chọn thì nó vẫn có hiện tượng đó .... cũng hơi khó hiểu vì nó nghĩa là "các bit cấu hình được thiết lập trong đoạn code" tức là nếu chọn thì việc cấu hình sẽ được thực hiện trong đoạn code chúng ta viết, còn nếu bỏ chọn thì việc cấu hình sẽ là trực tiếp trong tab setting --> disabled.......
                  Dù sao cũng cảm ơn anh Nam, giải quyết được điều này thì việc mô phỏng đỡ hơn nhiều rồi ạ !!!!

                  Comment

                  • dieulucky2008
                    Nhập môn đệ tử
                    • Aug 2008
                    • 1

                    #10
                    các bác ơi em mới cài xong mplab tools 8.0 nhưng ko biết cách sử dụng bác nào có tài liệu hướng dẫn post lên giúp em
                    .Em xin chân thành cảm ơn

                    Comment

                    Working...