Thông báo

Collapse
No announcement yet.

Làm việc với phím nhấn?

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

  • Làm việc với phím nhấn?

    Mình có một vấn đề mong các bạn chỉ giáo. Đề tài của mình là thế này:
    Có một nút nhấn thực hiện cùng một lúc 2 chức năng:
    - chức năng 1: nhấn thả liền thì vi điều khiển thực hiện chương trình chớp tắt led.
    - chức năng 2: nhấn giữ trong thời gian hơn 2s thì vi điều khiển thực hiện led sáng dần từ trái sang phải.
    Mình cũng từng làm việc với việc chống dội với phím nhấn. còn vấn đề này thì mình chưa nghĩ ra đc hướng giải quyết. Các bạn giúp mình với. Nếu ai có lưu đồ giải thuật thì post lên mọi người cùng tham khảo.

  • #2
    mình có ý thế này, cậu thử cho trong lúc nhấn thì sẽ cho đếm một biến nào đó, rồi so sánh kết quả, chẳng hạn trong 2s đếm đến 1000000 thì ta sẽ so sánh
    >1000000 thi sẽ làm chức năng 2
    <1000000 thì sẽ làm chức năng 1
    he he
    nói vậy thôi chứ mình chưa làm cái này bao giờ
    chả biết có được kô
    ĐỪNG KHÓC CHO NHỮNG GÌ ĐÃ QUA, MÀ HÃY CƯỜI CHO NHỮNG ĐIỀU SẮP TỚI!

    Comment


    • #3
      Bạn tham khảo bài viết sau: http://dientuvietnam.net/forums/showthread.php?t=21148
      Trong bài viết này mình có post lên source code và giải thích khá rõ ràng về nguyên lý. Hy vọng sẽ giúp ích cho bạn.

      Comment


      • #4
        Nguyên văn bởi quocdat_dtvt Xem bài viết
        mình có ý thế này, cậu thử cho trong lúc nhấn thì sẽ cho đếm một biến nào đó, rồi so sánh kết quả, chẳng hạn trong 2s đếm đến 1000000 thì ta sẽ so sánh
        >1000000 thi sẽ làm chức năng 2
        <1000000 thì sẽ làm chức năng 1
        he he
        nói vậy thôi chứ mình chưa làm cái này bao giờ
        chả biết có được kô
        Chính xác rồi đấy !
        Có thể dùng delay đơn thuần hoặc chính xác có thể dùng Timer.
        VÍ dụ delay thế này chẳng hạn:
        PHP Code:
              unsigned char i 0;
              if(!
        SW){                            // Nếu nút SW được ấn
                    
        _delay_ms(150);   // :chicken:
                    
        while(!OK_BT) {     // Khi nút nút ấn còn được giữ thì làm công việc trong while
                      
        i++;
                      
        _delay_ms(100);
                    }
                    if(
        i<20){                    // Sau khi thả nút ấn sẽ kiểm tra biến i xem nó bằng bao nhiêu
                        
        _delay_ms(100);   // Nếu i < 20 (20 x 100 = 2000 ~ 2s)
                        // Code chớp tắt ở đây
                    
        }
                    else {                      
        // Các trường hợp khác thì thế này :rolleyes:
                    
        _delay_ms(100);
                                
        0;
                    
        // Code dịch hiển thị Led ở đây
                    
        }
                } 

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        Đang tải...
        X