theo tui thấy thì không ổn lắm do viec bấm phím tay người cần thời gian tương đối lâu hơn chu kì máy để hoàn tất việc bấm phím do đó dẫn tới hiện tượng là cho dù bạn có lấy mẫu lại trạng thái sau của ngõ in để gán cho trạng thái ngõ out nhưng ví dụ khi đó tay vẫn chưa hoàn tất việc nhấn phím thì sao nhỉ.Nhưng dù gì bạn ấy bảo đã làm và text ok rùi thì ai mà dám cãi lại chứ phải không bạn hehe
Thông báo
Collapse
No announcement yet.
???? Chống Rung Cho Sw Bằng Phần Mềm Như Thế Nào??
Collapse
X
-
Bạn có thể viết rõ code cho đoạn này được koNguyên văn bởi hoctro89xxx Xem bài viếtcó 1 phương pháp chống rung mà tôi nghĩ ra, đã làm thực tế nhiều năm->kết quả ngoài mong đợi.
PP này không dùng mạch cứng mà cũng chẳng dùng delay.
Có ai tin không?? nhưng nó là sự thật.
PP như sau:
Với nút bấm xuống 0V:
đọc bàn phím -> lưu lại thành OLD
đọc bàn phím-> HIỆN TẠI
phân tích từng phím:
nếu HIỆN TẠI =0 và OLD =1 --> có bấm
gán OLD = HIỆN TẠI
Mặc dù khi bấm và nhả có xuất hiện các xung nhưng trên thực tế PP này khung bị rung phím.
.
Thú thực mình cũng chưa hiểu rõ được nó làm việc như thế nào
123...
Comment
-
Chào cả nhà,
Cách của bác Hoctro89 rất đơn giản, tuy nhiên sẽ không tác dụng khi người dùng đè phím.
Nếu làm như cách của bác thì không thể gọi là chống nảy phím, bởi vì nếu thực sự phím bị nảy thì giải thuật của bác không chống được.
Các bác có thể cho biết tại sao phải tránh dùng ngắt?
Mình luôn dùng ngắt timer để làm việc này, và thấy không có gì bất ổn.
Mong được chỉ giáo!Một bông hồng cho những ai đang còn mẹ,
Đang còn mẹ để lòng vui sướng hơn ..
Comment
-
Chương trình bác này bệnh quá.Lúc sài biến lấy tên Tiếng Anh,lúc lấy tên Tiếng Việt.Nguyên văn bởi hoctro89xxx Xem bài viết
đọc bàn phím-> HIỆN TẠI
phân tích từng phím:
nếu HIỆN TẠI =0 và OLD =1 --> có bấm
gán OLD = HIỆN TẠI[/COLOR]
.Chắc bác này chưa được học C element of Style rồi.
The goal of power electronics is control the flow of energy from an electrical source to an electrical load with high efficiency, high availability, high reliability, light weight and low cost.
Comment
-
theo mình thấy cái này chỉ là get key pattern thôi màcó 1 phương pháp chống rung mà tôi nghĩ ra, đã làm thực tế nhiều năm->kết quả ngoài mong đợi.
PP này không dùng mạch cứng mà cũng chẳng dùng delay.
Có ai tin không?? nhưng nó là sự thật.
PP như sau:
Với nút bấm xuống 0V:
đọc bàn phím -> lưu lại thành OLD
đọc bàn phím-> HIỆN TẠI
phân tích từng phím:
nếu HIỆN TẠI =0 và OLD =1 --> có bấm
gán OLD = HIỆN TẠI
Mặc dù khi bấm và nhả có xuất hiện các xung nhưng trên thực tế PP này khung bị rung phím.
đoạn code trên sẽ được lặp đi lặp lại sau 1 chu kỳ (chu kỳ quét) và nếu chu kỳ đó tốt thì coi như nó có chống rung luôn, hoặc sau khi nhận 1 phím bạn xử lý khá lâu và thời gian xử lý đó gần bằng delay cho chống rung thì cũng có tác dụng chống rung
còn nếu xử lý đơn giản như cộng dồn và lặp liên tục không delay thì code này 100% ko có tác dụng gì hết
Và rõ thấy nó chỉ tác dụng 1 lần nếu ta đè phímKit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ
Comment
-
Quy ước:
+Có phím ấn : C = 1
+Không có phím ấn : C = 0
+ chống dội là 1 biến.
+ Dò phím là chương trình con.
Lưu đồ chống dội của tôi:
........................................... begin
...............................................|
...............................................|
...............................................\/
....................................chống dội := 50
...............................................|
...............................................|
...............................................\/
--------------->--------------Dò phím
|..............................................|
|..............................................|
|....................................Sai......\/
|.....................end <-------- < C = 1 >.....................;so sánh C với 1
|..............................................|Đ úng
|..............................................|
|..............................................\/
|................................chống dội :=chống dội - 1
|..............................................|
|..............................................|
|..................................Sai........\/
---------------<----------<chống dội = 0>...;so sánh biến chống dội với 0
...............................................|Đ úng
...............................................|
...............................................\/
.....----------->-------------chống dội := 20
|..............................................|
|..............................................|
|..............................................\/
|.........................................Dò phím------------<----------------
|..............................................|.. .........................................|
|..............................................|.. .........................................|
|...................................Sai.......\/...........................................|
---------------<------------- < c = 0 > ; so sánh C với 0...............|
...................................... Đúng.|............................................ .|
...............................................|.. ..........................................|
..............................................\/.............................................|
....................................chống dội := chống dội - 1......................|
...............................................|.. ..........................................|
...............................................|.. ..........................................|
...............................................\/............Sai............................|
.....................................<chống dội = 0>------------>------------
...............................................|Đ úng
...............................................|
...............................................\/
..............................................end
Comment
-
Ở lần thứ nhất bạn đã so sánh 50 lần, như thế đủ để chắc chắn rằng phím được nhấn. Không cần phải thêm 20 lần nữa.
Chương trình của bạn có một nhược điểm là bị delay.
Các bạn nên nghĩ ra giải thuật không bị delay mà vẫn chống rung được phím, vẫn xử lý được trường hợp phím bấm nhiều lần.
Comment
-
Phương pháp chống rung hay mà tôi nghĩ ra và đã dùng hàng chục năm nay, vô tình là đúng với phương pháp của HOCTRO89xxx, cụ thể thế này:Nguyên văn bởi manhkha Xem bài viếtỞ lần thứ nhất bạn đã so sánh 50 lần, như thế đủ để chắc chắn rằng phím được nhấn. Không cần phải thêm 20 lần nữa.
Chương trình của bạn có một nhược điểm là bị delay.
Các bạn nên nghĩ ra giải thuật không bị delay mà vẫn chống rung được phím, vẫn xử lý được trường hợp phím bấm nhiều lần.
(với giả thiết phím bị rung 1 vài msec)
-Đọc trạng thái bàn phím hiện tại
-So sánh với giá trị phím cũ
+Nếu là phím cũ thì
++Nếu quá thời gian chống rung (thường tôi chọn 100msec, vì chẳng có phím nào rung ở mức này), thì coi đây là người dùng cố tình giữ phím và ta có thể xử lý lệnh này là hold-key
++ Nếu trong thời gian <100msec, bỏ qua phím bấm này
+Nếu là phím mới, và khác giá trị không bấm phím thì chấp nhận phím này ngay (vì thực tế khi bấm các phím khác nhau là do người dùng, không phải do rung phím)
-Gán phím cũ bằng giá trị phím vừa nhận được
--> Tóm lại, lý luận của phương pháp này là chỉ chấp nhận các phím giống nhau trong thời gian cách nhau tối thiểu 100msec (bạn có thể chọn thời gian này tùy thích). Các phím khác nhau thì coi là phím mới ngay lập tức
Chắc chắn các bạn sẽ hài lòng với phương pháp chống rung này
- 1 like
Comment
-
Hi manhkha, cái số 100ms là thực tế mình thấy là phù hợp thôi (vì không có ai có thể bấm 1 giây được 10 lần cùng 1 phím, các giá trị do bị rung cũng chỉ nằm trong khoảng vài ms đến chục ms là cùng). Còn giá trị 100ms đấy thì dùng 1 timer mà đếm thôi, có thể dùng cái timer 10ms đếm 10 lần là OK, tuyệt đối không dùng delay, vì nó sẽ làm mất phím bạn ạ, cái timer nó chạy độc lập với thủ tục đọc phím, nên sẽ ko bị mất phím đâuNguyên văn bởi manhkha Xem bài viếtCó một chỗ em thắc mắc trong chương trình của anh: thời gian chống rung là 100ms, làm thế nào anh biết được thời gian này ?, dùng delay ?.
Chúc buổi sáng tốt lành
Comment
Bài viết mới nhất
Collapse
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
Hôm qua, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -
-
Trả lời cho Công thức tính định luật kirchhoffbởi abcnewmemberGiải bằng hệ phương trình bật nhất 3 ẩn.
...
-
Channel: Hỗ trợ học tập
23-07-2026, 14:52 -

Comment