Để biết một cách tương đối chương trình của mình cần bao nhiêu RAM. Tốt nhất nên vẽ ra lưu đồ thuật toán, định hình từng phần một dự định khoảng bao nhiêu biến, biến nào là toàn cục, biến nào là cục bộ (biến tạm thời). rồi cộng lại xem tổng hết khoảng bao nhiêu biến.(Phần này cần phải làm trước khi bắt đầu thiết kế phần cứng) Chú ý biến kiểu char là 1byte, kiểu int = 2byte, kiểu long = 4 byte, float = 4byte.
- Biến toàn cục là biến sẽ tồn tại trong suốt cả chương trình. Tại bất kỳ đâu bạn có thể gọi nó.
- Biến cục bộ là biến chỉ tồn tại trong một hàm hay function và cũng chỉ có tác dụng trong fuction hay hàm này thôi. Khi hàm được gọi sẽ cấp phát một vùng ram cho biến này. Khi thoát khỏi hàm hoặc fuction nó sẽ giải phóng phần ram này. các hàm khác ngoài hàm này không sử dụng được các biến cục bộ của hàm kia.
Ram ngoài được dùng khi Ram nội không còn đủ dùng nữa. Lúc đó phải khai báo biến theo kiểu ram ngoài. Tất nhiên phải dùng thêm ram ngoài gắn vào chip. Ví dụ: unsigned int couter=0 @0x000A; lúc này biến counter được lưu trên RAM ngoài tại địa chỉ 0x000A. Còn cách khai báo ram ngoài thì trình Winzard của codevision có rồi đó ( chú ý một số chip AVR không hỗ trợ ram ngoài).
- Biến toàn cục là biến sẽ tồn tại trong suốt cả chương trình. Tại bất kỳ đâu bạn có thể gọi nó.
- Biến cục bộ là biến chỉ tồn tại trong một hàm hay function và cũng chỉ có tác dụng trong fuction hay hàm này thôi. Khi hàm được gọi sẽ cấp phát một vùng ram cho biến này. Khi thoát khỏi hàm hoặc fuction nó sẽ giải phóng phần ram này. các hàm khác ngoài hàm này không sử dụng được các biến cục bộ của hàm kia.
Ram ngoài được dùng khi Ram nội không còn đủ dùng nữa. Lúc đó phải khai báo biến theo kiểu ram ngoài. Tất nhiên phải dùng thêm ram ngoài gắn vào chip. Ví dụ: unsigned int couter=0 @0x000A; lúc này biến counter được lưu trên RAM ngoài tại địa chỉ 0x000A. Còn cách khai báo ram ngoài thì trình Winzard của codevision có rồi đó ( chú ý một số chip AVR không hỗ trợ ram ngoài).
Comment