You are on page 1of 2

ĐỀ KIỂM TRA HỌC KỲ 2 / 2014-2015

MÔN: LẬP TRÌNH NHÚNG


Thời gian: 50 phút

(SV được sử dụng tài liệu, không sử dụng laptop, máy vi tính)
Câu 1: (3 đ)

Viết khai báo cho:

a) Một biến kiểu integer int i;


b) Con trỏ đến 1 biến kiểu integer int *i;
c) Con trỏ đến con trỏ đến 1 biến kiểu integer

int value = 100;


int *ptr = &value;
int **p_to_p = &ptr;

d) Một mảng gồm có 10 số integer int str[10];


e) Một mảng của 10 con trỏ đến số integer int *str[10];

Câu 2: (1 đ)

Giải thích ngắn gọn vì sao ta thêm từ khóa volatile vào mô tả port D của ARM Cortex sau:

#define PD0 (*((volatile unsigned long *)0x40007004))

Vì port có thể thay đổi bất ngờ mà arm cortex không biết trước
được

Câu 3: (6 đ)

Vẽ lưu đồ trạng thái, giải thích và viết chương trình cho kit TIVA launchpad thực hiện công việc
sau:
1. Nếu nút SW1 nhấn xuống trong trong thời gian lớn hơn 5s, LED đỏ nhấp nháy từ thời
điểm 5s. Thời gian sáng/tắt là 1s
2. Sau khi nhả SW1, LED đỏ vẫn tiếp tục nhấp nháy.
3. Nếu SW1 được nhấn lần nữa, LED đỏ sẽ tắt. Sau khi SW1 được nhả, quá trình lặp lại từ
bước 1.

Các hàm cho sẵn:

int SWStatus(void) : Hàm này trả về trạng thái SW1, giá trị 0 nghĩa là SW đang được nhấn, 1 là đang
nhả

void SetLed(void) : Hàm này bật sáng LED


void ClearLed(void) : Hàm này tắt LED

void SysTickISR(void): Đây là ISR của ngắt SystemTick. Sinh viên sẽ viết định nghĩa hàm này

Các hàm để cấu hình clock và SysTick sinh viên tham khảo tài liệu

You might also like