Thông báo

Collapse
No announcement yet.

giải thuật nút nhấn mời anh em suy nghĩ đóng góp.

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

  • giải thuật nút nhấn mời anh em suy nghĩ đóng góp.

    thông thường mỗi nút nhấn chúng ta làm chỉ có một cách tác động là nhấn và nhả. nhưng xu thế hiện nay thường tích hợp làm gọn nhẹ và hạn chế các nút nhấn. nên 1 nút nhấn có khá nhiều cách tác động khác nhau:
    1) nhấn 1 lần nhả 1 lần (bấm đơn)
    2) nhấn giữ trong 1 khoảng thời gian
    3) nhấn đúp (giống nháy chuột)
    4) nhấn tổ hợp nút
    5) khóa bàn phím, nếu không đụng vào bàn phím trong thời gian sẽ chuyển về trạng thái khóa.


    ====

    mình muốn mọi người đóng góp giải thuật "nhấn nút" để mọi người cùng tham khảo, bài toán đặt ra là SỬ DỤNG NGẮT VÀ KHÔNG SỬ DỤNG NGẮT NGOÀI. Rất cảm ơn các bạn đã đóng góp.
    ----

    mình xin tự đóng góp 1 giải thuật SỬ dụng ngắt ngoài

    1) nhấn nút đơn.

    {
    thiết lập ngắt ngoài, chế độ cạnh

    chương trình phục vụ ngắt { công việc khi bấm nút ở đây, thường là lật cờ}

    vòng lặp chương trình chính {}

    }

    2) nhấn đúp

    thiết lập ngắt ngoài, chế độ cạnh

    chương trình phục vụ ngắt {lật cờ, dừng timer}

    vòng lặp chương trình chính {nếu đã set cờ thì cho chạy timer, nếu ko có cờ thì kiểm tra timer, nếu 0 <timer <n thì đã xảy ra nháy đúp, set timer =0,}
    3)...

  • #2
    Nút bấm mà dùng ngắt ngoài thì chỉ làm đc có 2 nút thôi à? Muốn làm tổ hợp phím thì làm đoạn mã kiểm tra cả 1 loạt trạng thái trên tổ hợp chân đó, làm nhấn giữ hay nhấn đúp thì chạy timer và vài thanh ghi đệm, căn cứ vào timer này mà xác định kiểu bấm thôi.
    |

    Comment


    • #3
      8051 hình như không có DMA thì phải, với 1 số dòng chip có hỗ trợ DMA (ARM), có thể dùng ADC + DMA + Cách thiết kế tiết kiệm chân kinh điển để đọc phím bấm (1 chân).

      Làm như vậy sẽ có 1 số lợi ích sau :

      - Chỉ mất 1 chân đọc trạng thái phím bấm (đầu vào ADC)
      - DMA chuyển đổi liên tục giá trị ADC đọc về, không phải mất thời gian của CPU để chờ thời gian chuyển đổi của ADC.
      - Chỉ cần dùng 1 timer (sử dụng chế độ ngắt timer) để xác định thời gian nhấn nút => phát hiện được bấm đơn, bấm kép...

      Thân ái !

      Comment


      • #4
        ôi đúng chủ đề em đang quan tâm, các bác phát triển mạnh box này nhé, em viết code bằng asm, ai biết vẽ giúp e cái lưu đồ thuật toán nhé. tk cả nhà

        Comment


        • #5
          Cái kiểu 1 chân đó thì 8051 cũng làm được chứ sao.Cái kiểu đó dÙng cái đo áp trên phím bấm rồi suy ra phím nào đang bấm.
          , , ,

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X