ĐIỀU KHIỂN SÁNG TẮT 8 LED

Một phần của tài liệu document (Trang 88 - 90)

I. Phác thảo dự án:

ĐIỀU KHIỂN SÁNG TẮT 8 LED

I. Phác thảo dự án:

Dự án này chủ yếu truy xuất chân gpio theo chế độ ngõ ra, nhưng điểm khác biệt so với dự án trước là không điều khiển riêng lẻ từng bit mà công việc điều khiển này sẽ do

driver thực hiện. Phần này sẽ cho chúng ta làm quen với cách điều khiển thông tin theo từng port 8 bits. Để việc tiếp thu đạt hiệu quả cao nhất, trước khi nghiên cứu người học phải có những kiến thức và kỹ năng sau:

 Kiến thức tổng quát về mối quan hệ giữa driverapplication trong hệ thống nhúng, cũng như việc trao đổi thông tin qua lại dựa vào các giao diện chuẩn;

 Kiến thức về giao diện chuẩn write trong giao tiếp giữa driver (trong kernel) và application(trong user);

 Kiến thức về gpiotrong linux kernel;

 Lập trình chương trình ứng dụng có sử dụng kỹ thuật hàm main có nhiều tham số giao tiếp với người dùng;

 Biên dịch và cài đặt được driver, applicationnạp vào hệ thống và thực thi;

**Tất cả những kiến thức u cầu nêu trên đều đã được chúng tơi trình bày kỹ trong những phần trước. Nếu cần người học có thể quay lại tìm hiểu để bước vào nội dung này hiệu quả hơn.

a. Yêu cầu dự án:

Yêu cầu của dự án là điều khiển thành công 1 port 8 ledshoạt động chớp tắt cùng lúc theo chù kỳ và số lần được nhập từ người dùng trong lúc gọi chương trình thực thi. Khi hết nhiệm vụ chương trình sẽ được thốt và chờ lần gọi thực thi tiếp theo.

 Đầu tiên người dùng gọi chương trình driver, cung cấp thông tin về thời gian của chu kỳ và số lần nhấp nháy mong muốn;

 Chương trình application nhận dữ liệu từ người dùng, tiến hành điều khiển driver tác động vào ngõ ra gpio làm led sáng tắt theo yều cầu;

 Lưu đồ điều khiển như sau:

Hình 4-2- Lưu đồ điều khiển LED sáng tắt theo số chu kỳ được quy định

b. Phân cơng nhiệm vụ:

Driver:Có tên là 1_2_port_led_dev.c

Driver sử dụng giao diện write() nhận dữ liệu từ user application xuất ra led tương ứng với dữ liệu nhận được. Dữ liệu nhận từ user application là một số char có 8

bits. Mỗi bit tương ứng với 1 led cần điều khiển. Nhiệm vụ của driver là so sánh tương ứng từng bit trong số charnày để quyết định xuất mức cao hay mức thấp cho led ngoại vi. Công việc của driverđược thực hiện tuần tự như sau:

 Yêu cầu cài đặt các chân ngoại vi là ngõ ra, kéo lên. Công việc này được thực hiện khi thực hiện lệnh cài đặt drivervào hệ thống linux;

 Trong giao diện hàm write() (nhận dữ liệu từ user) thực hiện xuất ra mức cao hoặc mức thấp cho gpio điều khiển led.

 Giải phóng các chân gpio đã được khai báo khi không cần sử dụng, công việc này được thực hiện ngay trước khi tháo bỏ driverra khỏi hệ thống.

Thực hiện khai báo hàm maintheo cấu trúc tham số để đáp ứng các yêu cầu khác nhau từ người dùng. Chương trình applicationcó hai tham số: Tham số thứ nhất là thời gian tính bằng giây của chu kỳ chớp tắt, tham số thứ hai là số chu kỳ muốn chớp tắt.

Bên cạnh đó, phần này cịn lập trình thêm một số chương trình tạo hiệu ứng điều khiển led khác như: 8 led sáng dần tắt dần (Trái qua phải, phải qua trái, ...). Các chức năng này được tổng hợp trong một chương trình applicationduy nhất, người sử dụng sẽ lựa chọn hiệu ứng thông qua các tham số người dùng của hàm main.

II. Thực hiện:

Một phần của tài liệu document (Trang 88 - 90)

Tải bản đầy đủ (PDF)

(91 trang)