Phạm vi biến

Giới thiệu

Ngôn ngữ Arduino được xây dựng trên ngôn ngữ lập trình C. Các biến của Arduino, cũng như C, có một phạm trù được gọi là phạm vi biến. Điều này trái ngược với ngôn ngữ BASIC, ở ngôn ngữ BASIC này, mọi biến đều là biến toàn cục.

Một biến toàn cục có nghĩa là, tất cả mọi nơi trong chương trình có thể đọc được và thay đổi dữ liệu của nó mà không cần sử dụng biện pháp hỗ trợ nào. Còn biến cục bộ thì chỉ cỏ có hàm khai báo nó (hoặc các hàm con của hàm đó) có thể thấy và thay đổi được giá trị. Ví dụ, mọi biến nằm ngoài các hàm (như setup() hay loop()) là biến toàn cục, còn nằm bên trong các hàm là biến cục bộ của hàm đó.

Khi chương trình của bạn dần trở nên lớn hơn (về kích thước file lập trình) hoặc phức tạp hơn thì bạn nên dùng các biến cục để trong các hàm để dễ dàng quản lý (thay cho việc khai báo hết toàn bộ là biến toàn cục). Biến cục bộ rất có ích trong việc này vì chỉ có mỗi hàm khai báo nó (và các hàm con) mới sử dụng được nó. Điều này sẽ ngăn chặn các lỗi về logic sẽ xảy ra nếu một hàm thay đổi giá trị của một hàm khác. Ngoài ra, sau khi đoạn chương trình con kết thúc, các biến cục bộ sẽ được tự động giải phóng khỏi bộ nhớ, chương trình chính sẽ có thêm vùng nhớ cho việc xử lý.

Biến cục độ khá hữu ích cho việc khai báo biến của vòng lặp vì chỉ có vòng lặp mới dùng được nó.

Ví dụ

int gPWMval;  // mọi hàm đều có thể thao tác với biến này

void setup()
{
  // ...
}

void loop()
{
  int i;    //  biến "i" chỉ có thể được thao tác bên trong hàm loop()
  float f;  // biến "f" chỉ có thể được thao tác bên trong hàm loop()
  // ...

  for (int j = 0; j <100; j++){
     //biến "j" chỉ có thể được thao tác bên trong vòng lặp này
  }

}

 

lên
3 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Giả lập Arduino trên mây miễn phí - Tự học Arduino mà không cần có đầy đủ thiết bị

Từ lâu, chúng ta đã được biết đến phần mềm Proteus với khả năng giả lập các thiết bị phần cứng chuyên nghiệp được dùng trong mọi lĩnh vực của ngành điện tử. Tuy nhiên, ai cũng biết rằng, chúng ta đang vi phạm quyền sở hữu trí tuệ một cách có hệ thống khi dùng bản proteus đã được uống thuốc. Trước tình hình đó, cùng với xu hướng ảo hóa và lên mây. Autodesk đã cho ra đời dịch vụ miễn phí 123d.circuits.io để chúng ta có thể giả lập được mạch Arduino cùng với rất nhiều module cảm biến và linh kiện điện tử. Bạn có sẵn sàng đổi mới và thử chưa?

lên
45 thành viên đã đánh giá bài viết này hữu ích.

kLaserCutter - Tự làm máy cắt laser bằng mã nguồn người Việt - Phần 2: Máy cắt laser thành thiết bị IOT

Như ở bài viết trước trong chuỗi bài viết về máy cắt laser của mình. Chúng ta đã cùng nhau tìm cách dựng một máy cắt bằng chính khả năng sáng tạo của riêng bản thân mỗi người. Hôm nay, mình xin giới thiệu về cách mà mình đã biến chiếc máy cắt của mình thành một thiết bị IOT. Hay ở chỗ, qua bài viết này, bạn có thể biến bất kỳ chiếc máy cắt laser nào (đã được nạp firmware) trở thành một chiếc bị IOT. Thật hay phải không nào? Còn chần chờ gì nữa, hãy bắt nay vào làm thôi.

lên
21 thành viên đã đánh giá bài viết này hữu ích.