Thông báo

Collapse
No announcement yet.

Biến trong KeilC

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Biến trong KeilC

    Các bác ơi ! em không phải chuyên ngành, mà chỉ ham mê điện tử.
    Có vần đề về khai bao biến trong KeilC em muốn nhờ các bác giúp đỡ:
    Các bác cho em hỏi các biến: idata , static unsigned char , unsigned char , khác nhau ở chỗ nào ,biến static unsigned char thì được dùng trong trường hợp nào?

    Và biến idata được lưu ở bộ nhớ nào của VDK. vì em khai báo mảng nhiều phần tử kiều idata , nhiều hơn rất nhiều bộ nhớ RAM của VDK mà trình dịch vẫn dịch tốt và VDK cũng chạy tốt. mà tất cả các biến idata đó vần thay đổi được giá trị, vậy nó ở bộ nhớ ROM hay bộ nhớ RAM.
    Mong các bác chỉ giúp!
    Em xin cảm ơn!
    Last edited by bockhoi; 04-03-2010, 09:24.

  • #2
    Nguyên văn bởi bockhoi Xem bài viết
    Các bác ơi ! em không phải chuyên ngành, mà chỉ ham mê điện tử.
    Có vần đề về khai bao biến trong KeilC em muốn nhờ các bác giúp đỡ:
    Các bác cho em hỏi các biến: idata , static unsigned char , unsigned char , khác nhau ở chỗ nào ,biến static unsigned char thì được dùng trong trường hợp nào?

    Và biến idata được lưu ở bộ nhớ nào của VDK. vì em khai báo mảng nhiều phần tử kiều idata , nhiều hơn rất nhiều bộ nhớ RAM của VDK mà trình dịch vẫn dịch tốt và VDK cũng chạy tốt. mà tất cả các biến idata đó vần thay đổi được giá trị, vậy nó ở bộ nhớ ROM hay bộ nhớ RAM.
    Mong các bác chỉ giúp!
    Em xin cảm ơn!
    Các biến idata được lưu trữ trong bộ nhớ truy xuất gián tiếp
    http://www.keil.com/support/man/docs...1_le_idata.htm

    static unsigned char / unsigned char / char khi được lưu trên bộ nhớ không khác gì nhau cả, nhưng cách dùng thì sẽ khác nhau.
    nếu để unsigned thì khi cộng trừ, compiler sẽ xử lý số đó như là số không dấu
    static thì mình ko nhớ

    Comment


    • #3
      Bạn cẩn thận IDATA nếu khai báo nhiều quá nó cũng không báo lỗi hay cảnh báo gì hết nhưng khi lưu trữ thì dữ liệu lưu không được đâu, bạn nên kểm tra kỹ, mô phỏng lại xem các vùng nhớ thế nào, chứ IDATA lưu trên RAM nội mà ram nội của 8051 chỉ có 128 byte thôi.
      Kiểu khai Static chỉ cho xử dụng trong file đó thôi chứ không cho liên kết qua các file khác bằng từ khóa extern được.
      vài lời cùng bạn không biết có đúng không nữa ai thấy sai sửa dùm nha!!!

      Comment


      • #4
        IDATA là 128 byte cao của RAM dòng 8051
        89C51 chỉ có 128 byte RAM, do đó IDATA không có tác dụng
        89C52, 89C55, 89S52 là có 256 byte RAM nên mới dùng được IDATA

        nếu dùng KeilC, khi dịch code ra file .HEX nó sẽ báo RAM cao, RAM thấp, RAM ngoài đã dùng hết bao nhiêu byte

        cách khai báo như bình thường thôi
        ví dụ: a là biến cần khai báo trong RAM

        unsigned char a; //biến a nằm ở 128 byte RAM thấp
        unsigned char IDATA a; //biến a nằm trong 128 byte cao
        unsigned char XDATA a; //biến a nằm ở RAM ngoài

        Comment


        • #5
          Cam on cac bac ! em da hieu.

          Comment


          • #6
            còn rất nhiều cách khai báo nữa,ví dụ khai báo có thêm từ khóa code, thì dữ liệu sẽ đc lưu trữ ở bộ nhớ chương trình, lưu được rất nhiều giá trị

            Comment

            Về tác giả

            Collapse

            bockhoi Tìm hiểu thêm về bockhoi

            Bài viết mới nhất

            Collapse

            • Andrea14
              Vấn đề về tốc độ quay
              bởi Andrea14
              Chào mọi người,

              Tôi muốn mô phỏng sự thay đổi các mùa bằng cách từ từ nghiêng một quả địa cầu 16 inch bằng một động cơ bước nhỏ. Một động cơ bước khác sẽ quay quả địa cầu theo thời gian thực. Hệ thống truyền động...
              Hôm qua, 12:42
            • bqviet
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi bqviet
              Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
              06-12-2025, 17:17
            • nguyendinhvan
              Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
              bởi nguyendinhvan
              Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
              05-12-2025, 19:59
            • afrendly
              Trả lời cho Đấu tắt điện cho máy tính bảng
              bởi afrendly
              Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
              04-12-2025, 01:27
            Đang tải...
            X