![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
PIC Bang chủ
|
Thế có đồng chí nào config cho F bằng ASM và bằng CCS C không nhỉ, hoặc C18.
Lý do, với các đồng chí 18F trở xuống, F quen dùng ASM, nên thân thuộc với CCS C. Còn với các đồng chí dsPIC thì chúng ta có C30 rồi, xài vi vu. Một ghi chú nhỏ, bảng config bằng ASM được trình bày ở tài liệu [2] PIC18C Manual Section 29. Ở bảng 29-1, có nói về phần dao động. Có bạn nào trình bày cho F hiểu phần dao động này và khi config cho thạch anh 4MHz thì dùng như thế nào không? Câu hỏi 8: Nếu dùng thạch anh 4MHz, thì có mấy cách lựa chọn? Lý do, F đã nói F chọn thạch anh 4MHz để dùng rồi. Câu hỏi 9: F thấy cái OSC Switch nó hơi lạ so với đồng chí 16F, bạn nào giải thích cho F cái này với? Câu hỏi 10: Tạm thời F chưa dùng cái gì hết, cho nên một số tính năng CCP, WDT.. F không quan tâm, nhưng đọc vào thấy cái liên quan đến Processor thì quan tâm. Đó là cái Processor Mode, bạn nào giải thích cho F biết cái này để làm cái gì vậy? Câu hỏi 11: Hàng loạt các giá trị config phía dưới, liên quan tới các bus, vậy câu hỏi: 11a) Tại sao phải có phần config mấy cái quỷ nhỏ này? 11b) Giải thích các giá trị config này Chú ý, chỉ giải thích vừa đủ hiểu, không giải thích quá chi tiết thì nó sẽ đụng chạm lung tung, lằng nhằng. Vì F mới học, cho nên F chỉ quan tâm đơn giản vừa đủ hiểu thôi. Chúc vui
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
#include <18F4550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CP UDIV1,VREGEN Cái này cho thạch anh 12Mhz, tùy giá trị PLLx mà các bác sửa, cái nì chạy ở 48Mhz, CPUDIV1 ASM: __CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H __CONFIG _CONFIG3H, _PBADEN_OFF_3H __CONFIG _CONFIG4L, _LVP_OFF_4L & _ICPRT_OFF_4L & _XINST_OFF_4L Thạch anh 20Mhz hoặc chơi kiểu nì: ;__CONFIG _CONFIG1L, _PLLDIV_1_1L & _CPUDIV_OSC3_PLL4_1L & _USBDIV_2_1L ;__CONFIG _CONFIG1H, _FOSC_XTPLL_XT_1H & _FCMEM_OFF_1H & _IESO_OFF_1H ;__CONFIG _CONFIG2L, _PWRT_OFF_2L & _BOR_ON_2L & _BORV_21_2L & _VREGEN_ON_2L ;__CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_32768_2H ;__CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H ;__CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _ICPRT_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L ;__CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L ;__CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H ;__CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L ;__CONFIG _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H & _WRTD_OFF_6H ;__CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L ;__CONFIG _CONFIG7H, _EBTRB_OFF_7H config PLLDIV = 1 config CPUDIV = OSC3_PLL4 config USBDIV = 2 config FOSC = XTPLL_XT config FCMEM = OFF config IESO = OFF config PWRT = OFF config BOR = ON config BORV = 21 config VREGEN = ON config WDT = OFF config WDTPS = 32768 config MCLRE = ON config LPT1OSC = OFF config PBADEN = OFF config CCP2MX = ON config STVREN = ON config LVP = OFF config ICPRT = OFF config XINST = OFF config DEBUG = OFF config CP0 = OFF config CP1 = OFF config CP2 = OFF config CP3 = OFF config CPB = OFF config CPD = OFF config WRT0 = OFF config WRT1 = OFF config WRT2 = OFF config WRT3 = OFF config WRTB = OFF config WRTC = OFF config WRTD = OFF config EBTR0 = OFF config EBTR1 = OFF config EBTR2 = OFF config EBTR3 = OFF config EBTRB = OFF Ý nghĩa thì các bác tự tra datasheet ![]() C18 #include <p18f4550.h> #pragma config PLLDIV = 1 #pragma config CPUDIV = OSC3_PLL4 #pragma config USBDIV = 2 #pragma config FOSC = XTPLL_XT #pragma config FCMEM = OFF #pragma config IESO = OFF #pragma config PWRT = OFF #pragma config BOR = ON #pragma config BORV = 21 #pragma config VREGEN = ON #pragma config WDT = OFF #pragma config WDTPS = 32768 #pragma config MCLRE = ON #pragma config LPT1OSC = OFF #pragma config PBADEN = OFF #pragma config CCP2MX = ON #pragma config STVREN = ON #pragma config LVP = OFF #pragma config ICPRT = OFF #pragma config XINST = OFF #pragma config DEBUG = OFF #pragma config CP0 = OFF #pragma config CP1 = OFF #pragma config CP2 = OFF #pragma config CP3 = OFF #pragma config CPB = OFF #pragma config CPD = OFF #pragma config WRT0 = OFF #pragma config WRT1 = OFF #pragma config WRT2 = OFF #pragma config WRT3 = OFF #pragma config WRTB = OFF #pragma config WRTC = OFF #pragma config WRTD = OFF #pragma config EBTR0 = OFF #pragma config EBTR1 = OFF #pragma config EBTR2 = OFF #pragma config EBTR3 = OFF #pragma config EBTRB = OFF Có cần PicBasic mà MikroC không anh F nhẩy ![]() |
|
![]() |
![]() |
![]() |
#3 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
- Dùng bộ dao động nội 8Mhz của PIC, quên thằng 4Mhz đi ![]() - Config thạch anh 4Mhz là XT hay HS không dùng USBPLL - Dùng USBPLL đầu vào thạch anh không chia (do đã là 4Mhz) tần số có thể dùng 96Mhz PLL div 2,3,4,6. |
|
![]() |
![]() |
![]() |
#4 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Với PIC18 thì bắt đầu xuất hiện PLL, với 18F4550 thì ta có thể có các tùy chọn sau với OSC: - Dùng Primary Oscillator, tức là có thể config như PIC16, nhưng cũng có thể dùng PLL - Dùng Secondary Oscillator, đầu vào bộ dao động lấy từ chân T1OSO, T1OSI - Dùng Internal Oscillator 8Mhz. - Ngoài ra 18F4550 còn có chế độ fail-safe clock monitor, Internal/External Oscillator Switchover, quản lý clock, khi clock ngoài không hoạt động thì dùng clock trong. --> tất nhiên OSC Switch sẽ khác. Với PIC16 thì không nhớ con nào có PLL, còn có bộ dao động nội thì hình như chỉ có ở bọn 10F,12F thì phải ![]() |
|
![]() |
![]() |
![]() |
#5 | ||
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Trích:
Vi xử lý chỉ bao gồm bộ xử lý trung tâm, cái mà loằng ngoằng bao gồm ALU, khối tính toán số học... và không bao gồm ngoại vi. Vi điều khiển = Vi xử lý + Ngoại vi: cái đề cập chính ở đây là bộ nhớ chương trình, vi điều khiển có, còn vi xử lý thì không. Hai chế độ này khác nhau ở cách thức định địa chỉ (mapped) và cách thức truy xuất bộ nhớ. Với chế độ vi xử lý thì ta phải truy xuất bộ nhớ ngoài, liên quan trực tiếp đến việc truy xuất qua bus, ngoài ra còn liên quan đến chế độ định địa chỉ bộ nhớ, các hoạt động như Table Reads, Writes... Muốn truy cập được bộ nhớ ngoài thì phải config là Microprocessor mode hoặc Extended microcontroller mode. 8051 có tính năng gần như vậy ở chân EA\ (External Access), nếu là mức cao thì dùng bộ nhớ trong(giống như chế độ controller), mức thấp thì truy xuất bộ nhớ ngoài (giống như chế độ processor). |
||
![]() |
![]() |
![]() |
#6 | |
PIC Bang chủ
|
Trích:
Câu hỏi này ngoài luồng, vì chú Hòa đang ngâm cứu ARM, ngoài ra, cũng muốn giúp các bạn làm rõ nghĩa một số khái niệm về bộ nhớ ở phần này, vì lên tới dòng 18F và dòng dsPIC, một số vấn đề về bộ nhớ nó sẽ gây rắc rối cho các bạn. Đặc biệt, làm việc với 18F, giúp các bạn một bước chuẩn bị tốt để tiến tới sử dụng dsPIC hiệu quả hơn, và từ dsPIC, các bạn tiến tới sử dụng các loại DSP khác không có gì khó khăn, cũng giống như khi học PIC16 và sử dụng các vi điều khiển khác vậy. À, vụ ARM, cuối tháng 1, bạn anh về VN, anh gửi cho chú bộ kit đầy đủ ARM, có thể thực hành và dùng JTAG qua USB ảo của nó. Có đầy đủ CD và kit, cable... Có gì anh sẽ trao đổi thêm với anh BA về định hướng phát triển của phòng. Thực sự chủ trương của anh không muốn phát triển ARM, lý do anh sẽ trao đổi sau. Nhưng anh vẫn chủ trương phát triển TI ở Việt Nam, mặc dù thị phần của ARM mạnh hơn TI trên thế giới. Oki, việc này không bàn xa ở đây. Thế nhé.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
![]() |
![]() |
![]() |
#7 | |
Đệ tử 3 túi
Tham gia ngày: Jun 2005
Bài gửi: 56
: |
Trích:
Em vừa cho mấy thằng bạn mấy chú 877A, giờ nhà còn ít PIC, lại có cơ hội ngon, bổ, rẻ thế này, em kiếm mấy con về dùng, các bác thông cảm ![]() Anh F còn câu hỏi gì thì post nhanh lên ạ ![]() |
|
![]() |
![]() |
![]() |
#8 | |
PIC Bang chủ
|
Trích:
Uhm, mạng ở VN bị động đất ở Đài Loan, nên chập chờn, mọi người cứ thoải mái nhé. Chú PTH không cho trả lời nữa, đứng một bên để cho anh học. Anh mà cần làm gì anh đâu có làm nữa, giao cho chú với Chính làm hết rồi kaka... Ờ, chuẩn bị gửi anh Phước ra HN, có lẽ sau đó sẽ gửi Chính ra (sau khi anh Phước về). Bây giờ anh gọi về VN không được nữa, cho nên anh nhắn lên đây. Khoảng tầm sau tết thì chú coi đứa nào còn chỗ ở, nhắn anh một tiếng, để anh còn sắp xếp cho anh Phước. Thế nhé.
__________________
Công ty TNHH Thương mại và Giao nhận R&P store.hn@rpc.vn - store.hcm@rpc.vn Học PIC như thế nào? |
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Pic18 voi USB | Khanhnghia | Cơ bản về vi điều khiển và PIC | 2 | 24-02-2009 11:41 PM |
interrupt in pic18 | littlephoc | Cơ bản về vi điều khiển và PIC | 9 | 18-04-2007 01:27 AM |
Bac falleaf co the viet tourial Pic bang C duoc ko | namezero | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 2 | 21-10-2005 02:39 PM |