View Full Version : Các vấn đề về __CONFIG trong HTPIC
semipower
06-08-2010, 10:50 AM
Đối với người mới vào nghề PIC thì việc hiểu rõ và sử dụng macro __CONFIG cho các bit cấu hình là vấn đề quan trọng. Vậy mong các bạn giới thiệu kỹ hơn.
Cám ơn nhiều.
semipower
07-08-2010, 10:57 AM
Các vấn đề cần quan tâm khi mới lập trình như:
- Bản chất __CONFIG tác động đến phần cứng nào của PIC
- Cách dùng __CONFIG
- Bắt buộc phải khai báo những config nào (FOSC, WDT...)
- Tổng hợp tất cả các vấn đề về config
Mong các bạn chỉ giúp.
buiminhquy
07-08-2010, 12:54 PM
Các vấn đề cần quan tâm khi mới lập trình như:
- Bản chất __CONFIG tác động đến phần cứng nào của PIC
- Cách dùng __CONFIG
- Bắt buộc phải khai báo những config nào (FOSC, WDT...)
- Tổng hợp tất cả các vấn đề về config
Mong các bạn chỉ giúp.
cái này đúng là phải tìm hiểu kỹ. vì nó khởi điểm cho việc lập trình sau này.
mình cũng ko hiểu vấn đề này lém!
cám ơn!
semipower
07-08-2010, 01:50 PM
-Mình thấy có chương trình dùng __CONFIG, có lúc lại không?
-Mình lập trình không dùng __CONFIG, khi nạp bằng PK2 nó yêu cầu dùng MPLAB để Export file Hex chứa thông tin config. Tức là các thông tin đó được tạo ra tự động?
-Các thông tin config này có vai trò như các fuse (cầu chì?) tức là đã nạp một lần rồi thì không sửa được?
-Tại sao giữa các bit cấu hình toàn dùng toán tử & (AND theo bit), trong khi các bit đó có thể là 0 hoặc 1?
Thank!
semipower
07-08-2010, 06:29 PM
Sau một thời gian nghiên cứu, mình rút ra mấy điều sau:
- __CONFIG là một macro cho phép thiết lập các bit cấu hình ngay trong file nguồn. Do đó sau khi biên dịch các thông tin cấu hình được chứa ngay trong file hex. Nếu dùng AVR thì việc thiết lập cấu hình được thực hiện khi nạp chip (không chứa trong file hex).
- Các từ cấu hình nằm ngoài vùng bộ nhớ chương trình người dùng (vùng nhớ được trỏ bởi bộ đếm chương trình PC). Ví dụ PIC16F886 có bộ đếm chương trình 13bit do đó không gian chương trình là 2^13=8K (từ địa chỉ 0000h đến 1FFFh). Trong khi từ cấu hình lại ở địa chỉ 2007h và 2008h. Vì vậy không thể truy cập được từ cấu hình trong khi thực hiện lệnh.
- Sau khi xoá chip, các bit cấu hình có giá trị 1. Vì vậy dùng toán tử & là hợp lý. Vì 1&bit=bit.
- Có thể sửa đổi các bit cấu hình nhiều lần (không như cầu chì, đứt rồi thì thôi).
-...?
semipower
07-08-2010, 06:30 PM
Đây là tài liệu tham khảo.
semipower
10-08-2010, 03:58 PM
Trong file pic.h có định nghĩa macro __CONFIG như sau:
#define __CONFIG(x) asm("\tpsect config,class=CONFIG,delta=2");\
asm("\tdw "___mkstr(x))
Các bạn có thể giải thích phần asm giúp mình được không. Thank!
semipower
03-09-2010, 09:52 PM
Trong file pic.h có định nghĩa macro __CONFIG như sau:
#define __CONFIG(x) asm("\tpsect config,class=CONFIG,delta=2");\
asm("\tdw "___mkstr(x))
Các bạn có thể giải thích phần asm giúp mình được không. Thank!
Tôi đã tìm hiểu nhưng vẫn không giải thích được các khai báo này. Mong các bạn giúp. Thank.
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.