Tôi đã viết một mã cho vi điều khiển 8051, nơi tôi đã sử dụng loại bit, đại loại như thế này:
static bit done_flag = 0; /* bit variable */
bit testfunc ( /* bit function */
bit flag1, /* bit arguments */
bit flag2)
{
.
.
.
return (0); /* bit return value */
}
Bây giờ tôi đang chuyển cái này sang bộ điều khiển AVR ATmega16. Tôi thấy rằng không có hỗ trợ cho
loại bit trong AVR.
Hướng dẫn sử dụng AVR-lib C cho biết:
Kiểu dữ liệu: char là 8 bit, int là 16 bit, dài là 32 bit, dài là 64 bit, float và double là 32 bit (đây là định dạng dấu phẩy động được hỗ trợ duy nhất), con trỏ là 16 bit (con trỏ hàm là địa chỉ từ, để cho phép đánh địa chỉ lên tới 128K dung lượng bộ nhớ chương trình). Có một tùy chọn -mint8 (xem Tùy chọn cho trình biên dịch C avr-gcc) để tạo int 8 bit, nhưng điều đó không được avr-libc hỗ trợ và vi phạm tiêu chuẩn C (int phải có ít nhất 16 bit). Nó có thể được gỡ bỏ trong một bản phát hành trong tương lai.
Vậy tôi nên làm gì bây giờ?
bool
kiểu dữ liệu nhưng tôi nghĩ rằng nó vẫn được lưu trữ dưới dạng một byte, nhưng không chắc chắn 100% về điều đó.