Nguyên văn bởi sieunhan14
Xem bài viết
Một hàm get_time() thì quá đơn giản, mình nghĩ bạn cần suy nghĩ thêm để tự đưa ra code. Còn hàm add(x, y, z) có thể được viết như sau (viết theo ngôn ngữ C chung chung, không cụ thể MCU nào):
Code:
char buffer[64]; // Một bộ đệm gồm 64 byte * 8 bit / byte = 512 bit tương ứng 512 điểm sáng // Hàm thêm điểm sáng void add(char x, char y, char z) {buffer[z*8 + y] |= (1 << x); // Set vị trí bit x của byte thứ y + z*8 return;} // Hàm xóa bộ đệm, hàm này được gọi bởi ngắt timer cuối mỗi khung hình, timer set khoảng 40ms để hiển thị đc 25 khung hình/giây void newframe() {int i; for (i = 0; i < 64; i++) buffer[i] = 0; // Xóa bộ đệm // Có thể nhét bộ tăng biến thời gian ở đây để phục vụ cho hàm get time effect(); // Gọi hiệu ứng được chọn để tạo ra bộ đệm mới, chính là các hiệu ứng được trình bày ở trên, mỗi khung hình kêu một hiệu ứng thoy return;}
Comment