PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Các vấn đề về __CONFIG trong HTPIC (http://www.picvietnam.com/forum/showthread.php?t=6794)

semipower 06-08-2010 10:50 AM

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.

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

Trích:

Nguyên văn bởi semipower (Post 37838)
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

1 Attachment(s)
Đây là tài liệu tham khảo.

semipower 10-08-2010 03:58 PM

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!

semipower 03-09-2010 09:52 PM

Trích:

Nguyên văn bởi semipower (Post 37912)
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.


Múi giờ GMT. Hiện tại là 10:10 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam