PDA

View Full Version : cấu hình cho Pic trong MPLAB


anhquangngai
19-10-2006, 09:25 PM
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
19-10-2006, 10:05 PM
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.

ami
21-10-2006, 05:29 AM
Để 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 !!!

linhtdh1k49
08-09-2008, 07:10 PM
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)

namqn
08-09-2008, 07:54 PM
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,

linhtdh1k49
12-09-2008, 07:51 PM
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 đỡ

bien_van_khat
17-09-2008, 08:40 AM
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ả.

namqn
17-09-2008, 08:19 PM
//
// 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:
#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,

linhtdh1k49
19-09-2008, 05:40 PM
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 ạ !!!!

dieulucky2008
20-09-2008, 02:55 PM
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