gia thiet bi ve sinh chinh hang, doc truyen truyện tranh cười Việt Nam doc truyen ma kinh di truyen tinh yeu lãng mạn, tin tuc onlinethiet bi nha ve sinh Việt Nam - Voi hoa sen

kiem tien online

[Lập trình ARM-LPC2378] Tổ Chức Bộ Nhớ, Thiết Lập Pin, GPIO, Debug

Được đăng bởi NetVN Thứ Sáu, 2 tháng 3, 2012 0 nhận xét
Bài 2: Tổ Chức Bộ Nhớ, Thiết Lập Pin, GPIO, Debug


Nội Dung
+ Cách tổ chức bộ nhớ trong LPC2378
+ Cách thiết lập PIN
+ Debug chương trình


Cách tổ chức bộ nhớ trong LPC2378
+ Bộ xử lý ARM có thể quản lý một không gian địa chỉ bộ nhớ 4Gb
+ Bảng sau đây thể hiện sự phân bố địa chỉ của vùng bộ nhớ trong các thiết bị ARM:




Địa chỉ vùng nhớ LPC23xx

Cách thiết lập PIN
Cấu hình PIN - LPC2378
+ Chip LPC2378 có 144 chân. Với sơ đồ chân như sau:


+ Mỗi chân tương ứng có những chức năng, nhiệm vụ khác nhau.
Ví Dụ:


Thanh ghi PINSEL
+ Các thanh ghi PINSEL (PINSEL0 - PINSEL10) đảm nhiệm việc kết nối giữa các PIN và các thiết bị ngoại vi.
+ Các thanh ghi cấu hình này điều khiển thiết lập những chức năng khác nhau, với mỗi 2Bit tương ứng ta có 4 trường hợp như sau:


Ví Dụ:


Địa chỉ thanh ghi PINSEL
+ Mỗi thanh ghi PINSEL có 4Bytes




GPIO
+ Viết tắt của: General Purpose Input Output.
+ Là chân input/output.
+ LPC2378 có 104 chân có chức năng GPIO.
+ Được thiết lập qua 5 Port 32Bit:


+ Việc điều khiển trực tiếp trong thanh ghi GPIO chỉ có hiệu quả khi chức năng GPIO được chọn tại các PICSEL.
Ví Dụ:

+ Muốn chọn Port0.0 và 0.1 là GPIO thì PINSEL0=0x00; (giá trị mặc định của PINSEL).
+ Low GPIO được điều khiển bởi các thanh ghi: IOPIN, IOSET, IODIR, IOCLR. (Chỉ cho Port0 và Port1)
+ Fast GPIO được điều khiển bởi các thanh ghi: FIOPIN, FIOSET, FIODIR, FIOCLR, FIOMASK.



Ví Dụ:
+ Cấu hình Port0.6 là output:
        - IODIR0 = 0x00000040; //Bit thứ 6 được bật lên 1: [ 0000 0000 0100 0000 ]
+ Cấu hình Port0.6 ở mức tín hiệu cao:
        - IOSET0 = 0x00000040;
+ Cấu hình Port0.6 ở mức tín hiệu thấp:
        - IOCLR0 = 0x00000040;

Ví Dụ - Lập trình LED trên Board MCB2300
+ Các đèn LED trên Board được thể hiện qua Port2.0 đến port2.7:
Void LED_Init(void)
{
     PINSEL10 = 0;
     FIO2DIR = 0x000000FF; //P2.0 - P2.7 là Output.
     FIO2MASK = 0x00000000;
}
+ Tắt / mở LES:
Void LED_On(unsigned int num)
{
     FIO2SET = (1<<num); //VD: n=2 => FIO2SET = (1<<2) <=> FIO2SET = 0x04;
}
Void LED_Off(unsigned int num)
{
     FIO2CLR = (1<<num);
}


Debug chương trình
Debug



(Nguồn: ĐHKHTN TP.HCM)

0 nhận xét:

Đăng nhận xét

Lưu trữ bài viết

Người theo dõi

Thống kê truy cập