Thông báo

Collapse
No announcement yet.

Các anh chị giải thích giùm em, em cảm ơn nhiều!

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

  • Các anh chị giải thích giùm em, em cảm ơn nhiều!

    void delay(long time)
    {
    while(time--);
    }
    /*--------------------------------ham chinh--------------------------------*/
    void main(void)
    {
    while(1)
    {
    Led = bat; // bat Led
    delay(25000); // tre 1s
    Led = tat; // tat Led
    delay(25000); //tre 1s
    }
    }
    Cái này copy trên mạng nhưng có chỗ này em không hiểu! delay(25000) tại sao là trễ 1s.
    Còn 1 hàm tạo trễ gồm 2 lệnh for nữa nhưng mà cái đó thì em hiểu rùi! Mà cho em hỏi chút nữa là
    for(i=0;i<ms;i++)
    for(j=0;j<120;j++)
    Hai lệnh này lúc nào chạy cũng mất 0.8us hết hả mấy anh???
    Em cảm ơn rất nhiều.

  • #2
    Không ai giải thích giùm hết z??????

    Sao ko có ai giải thích gì hết vậy!

    Comment


    • #3
      Nguyên văn bởi i0988305410 Xem bài viết
      void delay(long time)
      {
      while(time--);
      }
      /*--------------------------------ham chinh--------------------------------*/
      void main(void)
      {
      while(1)
      {
      Led = bat; // bat Led
      delay(25000); // tre 1s
      Led = tat; // tat Led
      delay(25000); //tre 1s
      }
      }
      Cái này copy trên mạng nhưng có chỗ này em không hiểu! delay(25000) tại sao là trễ 1s.
      Còn 1 hàm tạo trễ gồm 2 lệnh for nữa nhưng mà cái đó thì em hiểu rùi! Mà cho em hỏi chút nữa là
      for(i=0;i<ms;i++)
      for(j=0;j<120;j++)
      Hai lệnh này lúc nào chạy cũng mất 0.8us hết hả mấy anh???
      Em cảm ơn rất nhiều.
      những hàm delay này chỉ mang tính tương đối thôi bạn, có thể cùng 1 loại VDK nhưng cũng có con nhanh con chậm hơn nhau tí, thường thì lệnh C vs dòng 8051 này mỗi lệnh nó mất khoảng 8us, vì vậy mà cái hàm delay 2 lần for nó đc khoảng 1ms(8x120=960us~1ms), còn cái 25000 nó chỉ là áng chừng tầm 1s thôi, với những bài k cần tính delay chính xác thì người ta thường dùng các lệnh delay có sẵn để tạo trễ
      Website chính thức đổi địa chỉ website thành
      Mời các bạn ghé thăm !!!

      Comment


      • #4
        tạo trễ bằng các phương pháp delay, hoặc dùng for đều có chung nguyên lý như sau. Bạn để ý thấy mỗi vi điều khiển sẽ có tần sổ riêng, đối với PIc thì có thể là 4Mhz, 8Mhz. 20Mhz.Vối 20Mhz, Có nghĩa là vi xử lý làm việc 20 triệu lệnh/4 trong 1 s. Như vậy trên nguyên lý đó, nếu ta cho vi xử lý chạy vòng lặp, mỗi loop là 1 phép cộng ( tương ứng 1 lệnh) thì ta cần vòng lặp 20 triệu lần để delay 1s. Như thế thôi bạn. Tuy nhiên, ta chỉ dùng để delay cho những tác vụ không cần chính xác thời gian.
        Thân,

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X