Thư viện LED

Một phần của tài liệu Smart objects network report pdf (Trang 31 - 36)

CHƯƠNG 2 : BỘ THƯ VIỆN TMOTE SKY TRÊN HỆ ĐIỀU HÀNH CONTIKI

2.2 Bộ thư viện Tmote Sky trên Contiki

2.2.1 Thư viện LED

Khối led hiển thị trên nút mạng cảm biến không dây Tmote Sky bao gồm 3 led ( trừ led báo USB): RED,GREEN,BLUE. Các LED này được sử dụng để test hoạt động của node mạng ví dụ như chương trình nhấp nháy LED

Thư viện LED (khai báo các hàm LED sáng, LED tắt, nhấp nháy…) Contiki- 2.7/core/dev/led.h và khai triển các hàm, trong file:contiki-2.7/core/dev/led.c

2.2.1.1 File Contiki-2.7/core/dev/led.h

API của LED xác định một bộ các chức năng để truy cập các LEDs cho nền tảng Contiki với đèn LED. Trong file led.h có các hàm khởi tạo và cấu hình các led nhấp nháy, trong đó chứa các lệnh cấu hình các giá trị của các led xanh (lá cây), vàng, đỏ, và các led và giá trị của các led khi tất cả các led cùng sáng.

32

Hình 2.2 Cấu hình và định nghĩa các LED

Trong file này còn thực hiện việc trả về các trạng thái hiện tại của led. Truy xuất các hàm của led như: bật led (leds_on),tắt led (leds_off), lật trạng thái của leds (leds_toggle), và đảo trạng thái (leds_invert).

33

2.2.1.2 File Contiki-2.7/core/dev/led.c

Triển khai viết các chương trình điều khiển led theo các hàm đã có sẵn trong file

Contiki-2.7/core/dev/led.h như bật, tắt, nhấp nháy LED.

Đầu tiên chương trình sẽ khai báo các thư viện cần có để thực thi các chức năng bật, tắt, nhấp nháy LED. Bao gồm các thư viện dev/led.h, sys/clock.h, và sys/energest. thư viện

led.h nằm trong thư mục Contiki-2.7/core/dev/, thư viện sys/clock.h, và sys/energest nằm

trong thư mục Contiki-2.7/core/sys.

Khai báo biến tồn cục của chương trình, biến của chương trình được khai báo theo kiểu biến tĩnh (static) kiểu ký tự không dấu unsigned char bao gồm hai biến là leds và

invert. Chương trình chính hiển thị các LED theo biến của 2 chương trình bật và tắt các

LED

34

Khởi chạy trình điều khiển LED sử dụng câu lệnh leds_init(void) bao gồm các lệnh thực thi đối với LED và gán giá trị của 2 biến đã khai báo ở phần đầu chương trình.

Hình 2.5 Khối lệnh thực hiện khởi chạy trình điều khiển LED

Hàm nhấp nháy LED, biến inv được khai báo kiểu ký tự không dấu unsigned char ,

inv được gán bẳng phép đảo của (leds ^ invert), khởi chạy giá trị trả về đối số inv vừa

được gán, trễ xung đồng hồ 400s rồi khởi chạy lại

Hình 2.6 Chương trình nhấp nháy led

Hàm gọi các led đang bật được thực thi bằng câu lệnh unsigned char let_get(void) và trả về giá trị đã gọi ban đầu.

35

Chương trình bật led được gọi bằng hàm leds_on (unsigned char ledv), khai báo biến kiểu ký tự không dấu với tên biến là changed, biến này được gán với (~leds) & ledv,

leds sẽ được OR bit rồi gán bằng ledv, cuối cùng hiển thị giá trị của biến changed bằng

câu lệnh show_led(changed).

Hình 2.8 Chương trình bật led

Chương trình bật led được gọi bằng hàm leds_on (unsigned char ledv), khai báo biến kiểu ký tự không dấu với tên biến là changed, biến này được gán với leds & ledv, leds sẽ được AND bit rồi gán bằng đảo của led (~ledv), cuối cùng hiển thị giá trị của biến changed bằng câu lệnh show_led(changed).

Hình 2.9 Chương trình tắt led

Chương trình lật trạng thái các led được gọi đến bằng lệnh leds_toggle (unsigned

char ledv). Đảo ngược trạng thái hiện tại của đèn LED được đặt trong tham số ledv được

36

Hình 2.10 Chương trình led_toggle

Chương trình đảo ngược thanh ghi đảo ngược sử dụng tham số leds, gọi hàm

leds_invert. Biến invert được gán bằng phép XOR giữa invert và ledv. Hiển thị tham số

ledv bằng câu lệnh show_leds(ledv).

Hình 2.11 Chương trình led_invert

Một phần của tài liệu Smart objects network report pdf (Trang 31 - 36)

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

(55 trang)