Bên cạnh các từ khoá thường dùng, C/C++ có 1 số lệnh tiền xử lí, những lệnh này không bao giờ được biên dịch thành bất kì dòng lệnh nào trong mã thực thi. Thay vào đó nó có ảnh hưởng đến các khía cạnh của quy trình biên dịch. Ví dụ, ta có thể dùng chỉ dẫn tiền xử lí để ngăn trình biên dịch biên dịch một phần đoạn mã nào đó. Chỉ thị tiền xử lí được phân biệt bằng cách bắt đầu với dấu #. Chỉ thị tiền xử lý không phải là lệnh C/C++ vì vậy không có dấu “;” khi kết thúc. Bài viết này sẽ giúp bạn hiểu rõ hơn vấn đề này.Continue Reading

TWI (Two-Wire Serial Intereafce) là một module truyền thông nối tiếp đồng bộ trên các chip AVR dựa trên chuẩn truyền thông I2C. I2C là viết tắc của từ Inter-Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng lập và xây dựng thành chuẩn năm 1990. Phiên bản mới nhất của I2C là V3.0 phát hành năm 2007.Continue Reading

Trong chương trình nhúng, Interrupt là quá trình dừng chương trình chính đang chạy để ưu tiên thực hiện một chương trình khác, chương trình này được gọi là chương trình phục vụ ngắt (ISR – Interrupt Service Routine). Ngắt là một chức năng quan trọng, tiên quyết cho việc phát hiện và xử lý nhanh các sự kiện theo thời gian thực. Nhờ có ngắt mà vi điều khiển, có thể phát hiện được các sự kiện như thay đổi mức tín hiệu logic từ việc nhất nút, cảm biến, truyền nhận các gói tin, các giao động… Tuy nhiên, cũng vì những lợi thế của ngắt mà khi lập trình ngắt, nếu bất cẩn thì chúng ta sẽ phải đối mặt với những lỗi, những tình huống không ai mong muốn.Continue Reading

SIM900(A) là module GSM/GPRS của hãng SIMCom được thiết kế dưới dạng module chipset, nhỏ gọn, giá thành thấp, hoạt động ổn định và phù hợp cho nhiều mục đích sử dụng. Module SIM900(A) có các tính năng cơ bản của một chiếc điện thoại như gọi điện thoại, nhắn tin, truy cập GPRS,… Module SIM900(A) Mini của ChipFC thiết kế dựa trên chipset SIM900(A). SIM900(A) Mini được tích hợp các linh kiện, kết nối cần thiết, sẵn sàng cho người sử dụng để nghiên cứu, học tập hoặc làm demo nhanh chóng, tiện lợi các dự án có ứng dụng GSM/GPRS. SIM900(A) Mini nhỏ gọn, tiết kiệm chi phí, giúp người dùng tiếp cận và sử dụng nhanh nhất cho dự án của mình.Continue Reading

Các máy tính/vi điều khiển thường truyền tín hiệu theo hai cách: Song song và nối tiếp. Trong kênh truyền song song, khi truyền một gói dữ liệu n-bit thì ta cần n đường truyền, mỗi bit trong gói dữ liệu sẽ đi trên một đường truyền. Trong kênh truyền nối tiếp, ta chỉ cần một đường truyền để truyền tuần tự n bit của gói dữ liệu. Như vậy, để truyền một gói dữ liệu trong kênh truyền song song ta tốn một khoản thời gian tbit, trong kênh truyền nối tiếp để truyền n bit ta tốn khoản thời gian n*tbit :Continue Reading

Khi chúng ta nghe thấy ai đó nhắc tới hệ điều hành (Operating System – OS) thì chúng ta sẽ nghĩ ngay tới chiếc máy tính chạy Windows XP, Windows 7, Windows 8 hay chạy một distro Linux và Android hoặc iOS cho điện thoại. Chúng ta biết đến hệ điều hành chủ yếu là dành cho máy tính. Tuy nhiên trong thực tế, có rất nhiều thiết bị điện tử có chạy một dạng hệ điều hành rút gọn bên trong nó. Bên cạnh đó cũng có rất nhiều loại hệ điều hành được thiết kế cho vi điều khiển. Trong số chúng có một số thuộc họ Hệ điều hành thời gian thực (Real Time Operating System – RTOS), cụm từ thời gian thực ở đây chỉ ra rằng thời gian phản hồi của hệ thống là rất nhanh.Continue Reading

Trong lập trình nhúng (embedded system), ta rất thường hay gặp khai báo biến với từ khóa volatile. Việc khai báo biến volatile là rất cần thiết để tránh những lỗi sai khó phát hiện do tính năng optimization của compiler. Trong bài viết này, ta sẽ tìm hiểu ý nghĩa của từ khóa này, cách sử dụng nó và giải thích tại sao nó quan trọng trong một số trường hợp lập trình với hệ thống nhúng và lập trình ứng dụng đa luồng.Continue Reading

Lệnh SET BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó có giá trị logic 1 và không làm thay đổi giá trị các bit còn lại của thanh ghi đó. Lệnh CLEAR BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó giá trị logic 0 và không làm thay đổi giá trị các bit còn lại của thanh ghi đó. Lệnh TOGGLE BIT là lệnh cài đặt 1 bit mong muốn trong thanh ghi cho nó giá trị logic 0 nếu trước đó nó có giá trị logic 1 và ngược lại, đồng thời không làm thay đổi giá trị các bit còn lại của thanh ghi đó.Continue Reading