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?
Thông báo
Collapse
No announcement yet.
Hỏi về thuật toán cài đặt biến đếm
Collapse
X
-
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
-
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 :Nguyên văn bởi superhieu1 Xem bài viếtcó 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);
}
}
}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?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);
}
Comment
-
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
-
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
-
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
-
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++;Nguyên văn bởi lee_nguyen Xem bài viếtChà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?
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
Bài viết mới nhất
Collapse
-
bởi songchodep76Cảm ơn bác đã nhiệt thành chia sẻ kinh nghiệm bản thân mình cho mọi người.
Tuy nhiên, theo tiếp xúc hạn hẹp của em với mosfet thì vấn đề bác đo vôn ở cực D và thấy đỉnh nó 70V/55V Vds max, như thí nghiệm và trong hình của bác...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 09:46 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Cho tới thời điểm này, quả thật Đình Thường đây quá thất vọng, không hào hứng với Suno-AI lắm bởi ra lệnh Creat mấy chục lần với các thay đổi thì mới chọn được 2 bản hát đúng giai điệu tầm 80% để cắt ghép tạo thành bài hát...
-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 17:01 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Kính chào cả nhà, nhân dịp Tết đang về, sắp 23 tháng chạp rồi, xin gởi lời chúc xuân qua bài hát sau ạ:
Bao nhiêu hân hoan
Chúc Mừng Năm Mới, xuân sang!
Nơi nơi hát vang
nâng chén vui chúc câu An Lành.
Vạn Sự đều Hanh Thông,
Rạng...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 16:46 -
-
bởi ittcChán quá các bác, em nhạt nhẽo quá nên tán em nào cũng tạch, tuyệt vọng vô cùng, nay lại được mấy anh đồng nghiệp cty đối tác mách cho em gái kia sinh năm 2K đầu, em chả biết nhóm đối tượng này phải tán ra sao bây giờ ?
Tính ra em...-
Channel: Tâm tình dân kỹ thuật
06-02-2026, 00:18 -
-
bởi bqvietCó thể, ví dụ phần phản hồi gồm vi mạch cách ly quang, zener thứ cấp, transistor và điện trở phản hồi dòng ... Bất kỳ linh kiện nào nhóm đó hỏng dẫn tới mất đường phản hồi. TNY chính hãng phát hiện được chuyện đó nhưng linh kiện...
-
Channel: Điện tử công suất
05-02-2026, 18:36 -
-
bởi Nexus 6Pcho e hỏi, khi mạch có linh kiện nào đó hư thì có làm hỏng led đắt tiền (osram) không?
-
Channel: Điện tử công suất
05-02-2026, 10:42 -
-
bởi chinhnguyen9· Thí nghiệm 1 (Mạch boost, Vcc=12V, kích bằng dao động PƯM, duty 10%):
* Không có snubber + không tải: Xuất hiện hiện tượng dao động tắt dần tại cực D Mosfet (ringing). Hình 1 cho thấy trong chu kỳ đầu, điện áp spike lên tới hàng trăm V, điện...-
Channel: Hướng dẫn sử dụng diễn đàn
04-02-2026, 09:16 -
-
bởi Nexus 6Pe dùng KiCad 9.0 và đã xuất được file PDF mạch in gòi bác...
-
Channel: Điện tử công suất
03-02-2026, 16:25 -
-
bởi bqvietBấm chuột vào các tệp sẽ bật ra chương trình tương ứng. Nên dùng bản KiCAD sau
https://kicad-downloads.s3.cern.ch/a...ll_version.exe-
Channel: Điện tử công suất
03-02-2026, 14:57 -
-
bởi Nexus 6Pe cài KiCAD 2012 khi mở ra nó chỉ hiện ntn...
-
Channel: Điện tử công suất
03-02-2026, 11:20 -

Comment