Quy trình dịch là quá trình chuyển đổi từ ngôn ngữ bậc cao (C/C++, Pascal, Java, C#…) sang ngôn ngữ đích (ngôn ngữ máy) để máy tính có thể hiểu và thực thi. Ngôn ngữ lập trình C là một ngôn ngữ dạng biên dịch. Chương trình được viết bằng C muốn chạy được trên máy tính phải trải qua một quá trình biên dịch để chuyển đổi từ dạng mã nguồn sang chương trình dạng mã thực thi. Quá trình biên dịch C sẽ được trình bày trong bài chia sẻ này. Continue Reading

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

Không giống như di động, thiết bị IoT chạy trên những hệ điều hành thương mại và mã nguồn mở khác nhau, và đây là những ứng cử viên hàng đầu hiện được sử dụng nhiều nhất. Các ngành công nghiệp công nghệ cao đang dành nhiều nguồn lực vào lĩnh vực Internet of Things (IoT). Các công ty công nghệ cùng với cộng đồng mã nguồn mở cũng hợp tác với nhau để phát triển hệ điều hành dành cho dòng thiết bị này.Continue Reading