![]() |
|
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
: |
Các vấn đề về __CONFIG trong HTPIC
Đố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. thay đổi nội dung bởi: semipower, 06-08-2010 lúc 01:49 PM. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 5 túi
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
: |
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. |
![]() |
![]() |
![]() |
#3 | |
Đệ tử 1 túi
Tham gia ngày: Mar 2009
Bài gửi: 14
: |
Trích:
mình cũng ko hiểu vấn đề này lém! cám ơn! |
|
![]() |
![]() |
![]() |
#4 |
Đệ tử 5 túi
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
: |
-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! thay đổi nội dung bởi: semipower, 07-08-2010 lúc 04:58 PM. |
![]() |
![]() |
![]() |
#5 |
Đệ tử 5 túi
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
: |
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). -...? thay đổi nội dung bởi: semipower, 10-08-2010 lúc 04:00 PM. |
![]() |
![]() |
![]() |
#6 |
Đệ tử 5 túi
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
: |
Đây là tài liệu tham khảo.
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 5 túi
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
: |
Thắc mắc về macro __CONFIG ?
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! |
![]() |
![]() |
![]() |
#8 |
Đệ tử 5 túi
Tham gia ngày: Jul 2010
Nơi Cư Ngụ: Hà Nội, VIE
Bài gửi: 114
: |
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.
__________________
Vì sao nên đọc tài liệu tiếng Anh? http://www.picvietnam.com/forum/showthread.php?t=6819 Nguồn xung các loại: www.semitech.vn |
![]() |
![]() |
![]() |
|
|