[C17] Tổng kết bài học GPIO 5/11/2017

Dang Thanh Tung

Thành Viên PIF
Chào các bạn:1cool_byebye:!

Vậy là hôm nay chúng ta đã khai giảng lớp C17 và học bài học đầu tiên về GPIO. Mình xin review lại buổi học hôm nay.

1. Về tài liệu: có 3 tài liệu các bạn nên down về xem:
- Datasheet của MSP430G2553: https://drive.google.com/file/d/0B1uSPql5f2i4WWFDV1dtTjE0SEk/view?usp=sharing
- User's Guide (hướng dẫn sử dụng sử dụng, chức năng, hoạt động,... của các thành phần trên chip): http://www.ti.com/lit/ug/slau144j/slau144j.pdf
- Tài liệu về lauchpad: http://www.ti.com/lit/ug/slau318g/slau318g.pdf
2. Về slide bài giảng:
- Các bạn down bài giảng của khóa C8: https://drive.google.com/drive/folders/0B_h_-MVRltJ3MW5tWXdUSjZXZXM?usp=sharing
(trong thư mục lectures là các bài giảng)
- Sơ lược lập trình C cơ bản cho các bạn chưa học: https://drive.google.com/file/d/0B-heDWF6JkmIal9TWDVFZmVMQUk/view?usp=sharing
3. Hướng dẫn nạp code của Chicken Board:
- Đầu tiên chúng ta tháo con MSP430G2553 trên kit Launchpad ra và cắm nó lên ChickenBoard, chú ý tháo gỡ nhẹ nhàng và cắm chip lên ChickenBoard đúng chiều.
- Gỡ 2 jumper TEST và RST trên Launchpad, gắn 2 sợi dây bus vào 2 header ở phía trên (phía trên tức phần debug)
- 2 đầu dây còn lại cắm vào 2 header TEST và RST tương ứng trên ChickenBoard.
- Lấy thêm 1 sợi bus 1 nối GND của 2 mạch lại với nhau.
- Cấp nguồn cho ChikenBoard, thế là xong, giờ các bạn đã có thể nạp code cho nó. :6cool_boss:

4. Coding Style:
- Trong khi code, chúng ta phải code theo 1 "chuẩn" nhất định nhằm mục đích dễ đọc, dễ hiểu, dễ quản lí kiểm soát, dễ debug,...
- Các bạn về xem tài liệu này https://drive.google.com/file/d/0B-heDWF6JkmIZktFTHZUZVRTUzQ/view?usp=sharing và code theo các nguyên tắc này nhé, hãy tập cho mình thói quen này ngay từ khi bắt đầu. :doc
5. Về nhà: cái gì quên thì có thể tra google nhé :)
- Ôn lại bài học, thực hành lại.
- Nếu các bạn không hiểu các định nghĩa trong thư viện (như BIT0, BIT1,...) thì các bạn có thể đè phím Ctrl và click chuột vào đó, thì sẽ hiện ra thông tin để các bạn xem.
- Ôn lại C: các câu lệnh (if else, while, switch case,....), các phép toán đối với bit (gán, mặt nạ, dịch bit,...).
- Mặt nạ bit là gì? Ứng dụng ra sao? Xem lại tại sao phép |= là gán 1, phép &=~ là gán 0, phép ^= là đảo bit.
- Trở kéo là gì? Thế nào là trở kéo lên và trở kéo xuống? Tại sao khi đọc nút nhấn ta phải dùng trở kéo? Để cài đặt trở kéo ta phải dùng các thanh ghi gì?
- Hiện tượng rung phím khi nhấn là gì? Làm thế nào để khắc phục nó? http://thanhnt.com/blog/msp430-chong-rung-phim-don-gian/

Sau khi đã tham khảo hết các vấn đề đó thì các bạn tới phần làm Bài tập về nhà: :4cool_beauty::4cool_beauty:
BTVN1: Viết chương trình thực hiện các việc sau:
- Chớp tắt 8 led với thời gian 1s.
- Nhấn nút nhấn 1 thì chuyển sang mode: sáng 4 led chẵn, sau 1s tắt 4 led chẵn đi, cho sáng 4 led lẻ, sau 1s tắt 4 led lẻ đi và quay lại cho sáng 4 led chẵn, cứ thế lặp lại.
- Nhấn nút nhấn 2 thì quay về mode: chớp tắt 8 led với thời gian 1s.

BTVN2: Viết chương trình thực hiện các việc sau:
- Bật led đầu tiên sáng và nó chạy từ “trái sang phải” với tốc độ “chạy” 0.5s.
- Nếu nhấn nút nhấn 1 thì làm tăng số led chạy lên 2 led, nhấn nữa thì tăng lên 3, cứ thế tiếp tục, nếu tăng tới 8 mà nhấn tiếp thì sẽ quay về 1 led sáng.
- Nếu nhấn nút nhấn 2 thì đổi chiều chạy, nếu đang “trái sang phải” thì thành “phải sang trái” và ngược lại.

(Các bài trên có thể dùng led ở PORT 2 và nút nhấn ở PORT 1, kết hợp các phép toán trên bit (and, or, xor, dịch bit,...) và các lệnh (if else, switch case,...) cho hợp lí để cho code chạy được mà ngắn gọn). Ngoài ra bạn nên có Coding Style và code theo Standard Form như code mẫu trong đề thi C17 tại đây https://drive.google.com/file/d/0ByvIN_9EHs-PZHYxcGFseHplSjA/view?usp=sharing

Các bạn nào làm ra có thể Show code, clip demo tại post này để mọi người cùng chiêm ngưỡng nhé! ":*"":*"":*"
 
Last edited:
Top