Thông báo

Collapse
No announcement yet.

Hỏi về thuật toán cài đặt biến đếm

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

  • Hỏi về thuật toán cài đặt biến đếm

    Chào các bạn, mình đang nghiên cứu về mảng số đếm tiến lùi trong VĐK để làm một vài mạch đơn giản (đèn gt có cài đặt...). Những ví dụ đơn giản như gán biến trực tiếp để đếm tiến lùi mình đã làm ok, giờ mình muốn cài đặt giá trị của biến đếm bằng nút nhấn ngoài hiện tại đang gặp đôi chút mắc mớ. Cần các bác hướng dẫn 1 chút, ko biết nên gán thế nào?

  • #2
    Biến đếm.

    Cái này cũng đơn giản thôi.
    Bạn đặt một biến bất kì. Biến num chẳng hạn.
    Phần quét led bạn để tr0ng ngắt thì hay hơn nhá.
    Tr0ng hàm main thì ta kiểm tra phím nhấn.
    Nếu nhấn nút tăng thì num++,nút giảm thì num--.
    Cũng ko khó lắm đâu.

    Comment


    • #3
      có phải lee_nguyen ở Đồng Nai không ta.
      ví dụ, 1 biến a đang tăng bình thường theo thời gian, bây h muốn tăng theo nút nhấn, đơn giản nhất là. C nhé:
      nhớ cho code hiện thị vào trong để xem

      if(nutnhan==0) //phat hien nut nhấn
      {

      delay_ms(10); //delay chống dội
      while(nutnhan==0) //chờ đến khi nút thả mới quét lại
      {
      a++;

      if(a>=60) //chặng trên
      {a=0;}

      while(nutnhan==0)
      {
      bientam++;
      if(bientam>15) //ấn giữ 1,5s
      {
      bientam=0;
      while(nutnhan==0) //sau khi an giữ se tăng 10 đơn vị sau 1s
      {
      a++;
      if(a>=60)
      {a=0;}
      delay_ms(100);

      }
      }
      delay_ms(100);
      }

      }

      }
      TamPhieuLuuKy@yahoo.com
      092 2838 712 --->>

      Comment


      • #4
        Nguyên văn bởi superhieu1 Xem bài viết
        có phải lee_nguyen ở Đồng Nai không ta.
        ví dụ, 1 biến a đang tăng bình thường theo thời gian, bây h muốn tăng theo nút nhấn, đơn giản nhất là. C nhé:
        nhớ cho code hiện thị vào trong để xem

        if(nutnhan==0) //phat hien nut nhấn
        {

        delay_ms(10); //delay chống dội
        while(nutnhan==0) //chờ đến khi nút thả mới quét lại
        {
        a++;

        if(a>=60) //chặng trên
        {a=0;}

        while(nutnhan==0)
        {
        bientam++;
        if(bientam>15) //ấn giữ 1,5s
        {
        bientam=0;
        while(nutnhan==0) //sau khi an giữ se tăng 10 đơn vị sau 1s
        {
        a++;
        if(a>=60)
        {a=0;}
        delay_ms(100);

        }
        }
        delay_ms(100);
        }

        }

        }
        Chào bạn, cám ơn bạn đã trả lời, mình không phải ở ĐN, mình ở Hải Dương. code bạn viết có chỗ mình không hiểu lắm. cụ thể phần :
        while(nutnhan==0)
        {
        bientam++;
        if(bientam>15) //ấn giữ 1,5s
        {
        bientam=0;
        while(nutnhan==0) //sau khi an giữ se tăng 10 đơn vị sau 1s
        {
        a++;
        if(a>=60)
        {a=0;}
        delay_ms(100);

        }
        nếu cho biến tạm ++ với điều kiện là nút nhấn ==0, thì tại sao lại đặt điều kiện là 15, hai nữa là chỗ chú thích tăng 10 đơn vị là thế nào?

        Comment


        • #5
          Phần gán giá trị cho 1 biến thì mình đã làm được, nhưng nếu mở rộng thêm 3 biến mình bị mắc ở chỗ làm sao để có thể hiện thị được giá trị tăng giảm khi cài đặt cho 3 biến?
          ý mình là, vd nếu mình cài đặt một giá trị bất kỳ cho 1 chương trình đếm lùi thì thông thường mình hay viết hàm chỉnh biến đó, rồi trong phần quét led mình chỉ cần tách phần chục và phần đơn vị ứng với biến đó là có thể hiển thị ok. nhưng giờ 3 biến thì sao nhỉ?

          Comment


          • #6
            Phần gán giá trị cho 1 biến thì mình đã làm được, nhưng nếu mở rộng thêm 3 biến mình bị mắc ở chỗ làm sao để có thể hiện thị được giá trị tăng giảm khi cài đặt cho 3 biến?
            ý mình là, vd nếu mình cài đặt một giá trị bất kỳ cho 1 chương trình đếm lùi thì thông thường mình hay viết hàm chỉnh biến đó, rồi trong phần quét led mình chỉ cần tách phần chục và phần đơn vị ứng với biến đó là có thể hiển thị ok. nhưng giờ 3 biến thì sao nhỉ?

            Comment


            • #7
              tức là code này sẽ làm tăng 1 giá trị biến khi bạn bấm để bạn gán vào biến mảng hiển thị cho 7 đoạn, gồm có chống rung, ấn giữ 1,5s thi no tự động tăng lên, delay_ms(100); quyết định số tăng trong 1s, nói chung code này tôi viết trực tiếp trên web nên chưa co debug rõ ràng, code thì lũng cũng chỉ gọi mở thôi, chứ thường thì ít ai dùng while để giữ phím lắm, nhưng nó sẽ đơn giản hơn quét toàn bộ chương trình, ngoài ra ngta còn dùng ngắt, counter...
              TamPhieuLuuKy@yahoo.com
              092 2838 712 --->>

              Comment


              • #8
                Nguyên văn bởi lee_nguyen Xem bài viết
                Chào bạn, cám ơn bạn đã trả lời, mình không phải ở ĐN, mình ở Hải Dương. code bạn viết có chỗ mình không hiểu lắm. cụ thể phần : nếu cho biến tạm ++ với điều kiện là nút nhấn ==0, thì tại sao lại đặt điều kiện là 15, hai nữa là chỗ chú thích tăng 10 đơn vị là thế nào?
                hehe, chào đồng hương nhé, theo mình thì bạn cứ làm như bạn ở trên là được rồi, ban đầu cứ cho biến dem==0; khi nào nhấn phím thì đẩy dem++;
                lưu ý là thực hiện trong vòng lặp while(button==0) thôi nhé, và chống dội phím nữa. Không biết mình có hiểu đúng ý bạn k nhưng theo mình thì khá đơn giản

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X