Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

0
147
Debugging trong lập trình psoc

Hướng dẫn lập trình Psoc Nhấp nháy đèn LED hướng dẫn này sẽ giới thiệu cho bạn về PSoC creator development bằng cách chỉ cho bạn cách nhấp nháy đèn LED.

Bắt đầu một project mới trong PSoC Creator bằng cách mở File -> New -> Project…

Khi chọn thiết bị đích, hãy đảm bảo rằng bạn chọn PSoC 5LP và CY8C5888LTI-LP097. Nếu bạn quên bước này, bạn có thể thay đổi loại thiết bị sau này bằng cách Project -> Device Selector…

Huong-dan-lap-trinh-Psoc-Nhap-nhay-den-LED Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Nếu thiết bị chính xác không được chọn theo mặc định, hãy chọn thiết bị đó bằng cách sử dụng danh sách sau.

lap-trinh-psoc Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Tiếp theo Empty schematic khi bạn chọn mẫu cho project cảu mình. Rồi đặt tên cho workspace blink-led project name blink-led

Đặt các thành phần

Dự án này rất đơn giản. Bạn sẽ chỉ cần thêm hai thành phần.

Đầu tiên, mở TopDesign.cysch. Tệp này chứa giản đồ cho bất kỳ thành phần tương tự và kỹ thuật số nào mà bạn thêm vào dự án của mình.

Tìm thành phần Digital Output Pin trong nhóm Ports and Pins trong Danh mục thành phần. Danh mục Thành phần được tìm thấy ở bên phải của trang sơ đồ trống của bạn.

Kéo thành phần Digital Output Pin từ Danh mục thành phần vào giản đồ. Sử dụng các điều khiển thu phóng trong thanh công cụ trên cùng để thu phóng nếu cần.

chon-cac-thanh-phan-lap-trinh-psoc Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Lưu ý: PSoC Creator có nhiều thành phần hữu ích. Bạn có thể nhấp chuột phải vào một thành phần để tìm các dự án mẫu cho thành phần đó và để xem PDF của biểu dữ liệu của nó, trong đó mô tả chi tiết tất cả các tính năng và lệnh gọi API của nó.

Nhấp chuột phải (hoặc nhấp đúp chuột trái) vào Digital Output Pin và chọn Configure từ menu . Configure dialog cho phép bạn chỉnh sửa các thuộc tính mặc định cho thành phần đó.

Thay đổi tên của thành phần Digital Output Pin thành LED.

Lưu ý: Hãy chú ý đến trường hợp tên của các thành phần. Tên mà bạn chọn cho mỗi thành phần được sử dụng khi dự án được xây dựng để tạo tên cho các lệnh gọi giao diện (API) của lập trình viên ứng dụng được liên kết. Mã được cung cấp sẽ không hoạt động chính xác nếu tên không khớp chính xác.

Vì chân này sẽ không được kết nối trực tiếp với bất kỳ thành phần PSoC nào khác, hãy bỏ chọn hộp kiểm có tiêu đề  HW Connection.

cau-hinh-chan-cho-psoc Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Assigning Pins

Trước khi xây dựng dự án, bạn phải cho PSoC Creator biết chân nào sẽ sử dụng cho tín hiệu kỹ thuật số. Trên bảng perfect-cell, đèn LED màu xanh lam được mapped tới chân P2 [0].

Nhấp đúp vào tệp flash-led.cydwr (tài nguyên toàn thiết kế Cypress) trong Workspace Explorer.

Chọn tab Pins ở dưới cùng để hiển thị cấu hình pin của dự án. Bạn sẽ thấy  chip PSoC với mô tả về các chân I / O và kết quả định tuyến.

Chọn P2 [0]  trong Port drop down menu

Assigning-Pins Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Tạo mã nguồn

Bây giờ chúng ta sẽ xây dựng dự án để tạo mã nguồn API cho thành phần cho pin kỹ thuật số.

Từ Build menu, chọn Build blink-led

lap-trinh-psoc-nhay-led Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Bây giờ bạn đã sẵn sàng để viết firmware code. Việc xây dựng dự án sẽ tạo ra một API cho mỗi thành phần pin mà bạn vừa tạo.

Code

PSoC Creator tạo ra nhiều mã cần thiết cho dự án này. Mở main.c bằng cách nhấp đúp vào nó trong thư mục Tệp Nguồn trong Workspace Explorer.

Lưu ý: Các dòng bao quanh bởi / * và * / hoặc bắt đầu bằng // là nhận xét. Những điều này bị bộ xử lý bỏ qua nhưng rất hữu ích cho việc giải thích các hàm mã và giữ thông tin hữu ích cho những người khác sử dụng mã. Chúng thường có màu xanh lục.

Code cần thiết trong tệp main.c khá ngắn gọn cho dự án đơn giản của chúng tôi và được bao gồm toàn bộ bên dưới. Tất cả những gì chúng ta sẽ làm là chạy một vòng lặp không bao giờ kết thúc, vòng lặp này sẽ bật và tắt đèn LED trong một khoảng thời gian cụ thể. Vui lòng chỉnh sửa mã main.c của bạn và thêm mã bên dưới.

#include <project.h>

int main(void)
{
    CyGlobalIntEnable; /* Enable global interrupts. */

    for(;;)
    {
        // Blink LED
        LED_Write(1u);
        CyDelay(200u);
        LED_Write(0u);
        
        // Wait 1 second
        CyDelay(1000u);
    }
}

/* [] END OF FILE */

Đoạn mã trên ghi giá trị logic 1 (cao) vào đèn LED của chúng ta. Vì đèn LED được kết nối với chân kỹ thuật số, các hoạt động tương đương với việc cho tín hiệu lên mức cao hoặc xuống thấp. Sau đó, chương trình tạm dừng trong 200 mili giây bằng cách gọi hàm CyDelay (), là một phần của thư viện PSoC tiêu chuẩn. Sau đó,CT sẽ chuyển trạng thái của đèn LED, đợi thêm một giây và tiếp tục lặp lại.

Để xây dựng lại project của bạn với mã mới này, hãy nhấp vào Build -> Build blink-led

Để tải code vào bảng của bạn, hãy nhấp vào Debug -> Program. Chương trình sẽ biên dịch và sẽ tải lên bảng của bạn.

Xin chúc mừng! Bạn vừa mới biên dịch chương trình PSoC đầu tiên của mình.

Lưu ý nhanh về gỡ lỗi

Mặc dù bạn có thể quen với việc sử dụng đèn LED cho mục đích gỡ lỗi, nhưng sức mạnh thực sự đằng sau PSoC Creator nằm ở giao diện gỡ lỗi tiên tiến của nó. Bạn có thể đặt các điểm ngắt để tạm dừng việc thực thi mã. Trong những lần ngắt này, bạn cũng có thể đọc giá trị của các biến hoặc vị trí bộ nhớ. Chúng tôi sẽ khám phá tính năng này và để người đọc tham khảo hướng dẫn sử dụng PSoC Creator để biết các chức năng gỡ lỗi nâng cao.

Nhấp chuột phải vào dòng trong mã chứa CyDelay(1000u)Insert Breakpoint.

Debugging-trong-lap-trinh-psoc Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Bây giờ sử dụng menu Gỡ lỗi hoặc thanh công cụ Gỡ lỗi và nhấp vào Gỡ lỗi để bắt đầu trình gỡ lỗi. Trình gỡ lỗi sẽ bắt đầu và tạm dừng trên dòng chứa CyGlobalIntEnable. Thao tác này cũng sẽ hiển thị thanh công cụ gỡ lỗi:

thanh-debugg Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

Nhấp vào nút Play màu xanh lục trong thanh công cụ gỡ lỗi. Mỗi khi bạn nhấp vào chơi, mã sẽ tiến tới điểm ngắt tiếp theo trong chuỗi. Điểm đánh dấu mũi tên màu vàng ở cạnh trái cho biết vị trí hiện tại của trình gỡ lỗi trong mã.

go-loi Hướng dẫn lập trình Psoc Nhấp nháy đèn LED

LEAVE A REPLY

Please enter your comment!
Please enter your name here