[Review] Kết Quả Sau Buổi Training 2

doanhung93vt

Trứng gà

LED đơn sắc chạy 3 cấp tốc độ default, nhấn SW1 và nhấn SW2
LED RBG vẫn chưa sáng được ko biết là do dùng cathode common nên có vấn đề hay sao nữa

với lại các bạn cho mình hỏi, hình như là có phép toán nào để dịch bit phải ko vậy, chứ CODE mình làm dài quá vì làm rất thủ công, xuất P1OUT từng chân BIT, 8 đèn @@
 

Sang Trần

Gà con
Staff member
Haizz nhìn thèm quá em K13 h vẫn chưa có KIT mần đây hix hix
Em nghĩ khai thác con RGB đó phải dùng PWM để điều áp trên các ngõ ra để nó có dc nhiều màu !!
Xuất nhiều led thì vd trên p1 xuất led như sau 10110101 (1sang 0 tắt)
Bật calc lên đổi ra hex là 0xb5
Rồi há giờ P1OUT |= 0xb5
Vài ý kiến đóng góp sai đừng chém em :)))
 

kakaducsy

Trứng gà
LED đơn sắc chạy 3 cấp tốc độ default, nhấn SW1 và nhấn SW2
LED RBG vẫn chưa sáng được ko biết là do dùng cathode common nên có vấn đề hay sao nữa

với lại các bạn cho mình hỏi, hình như là có phép toán nào để dịch bit phải ko vậy, chứ CODE mình làm dài quá vì làm rất thủ công, xuất P1OUT từng chân BIT, 8 đèn @@
bạn cho mình hỏi mình trong code mấy anh chị mình thay BIT0+BIT6 thành các trường hợp khác như BIT1+BIT6,BIT2+BIT6,BIT3+BIT6,BIT4+BIT6,BIT5+BIT6.mà chỉ có trường hợp BIT1+BIT6,BIT2+BIT6 có đổi đèn sáng.còn cái trường hợp còn lại chỉ sáng mỗi 1 đèn.bạn có biết đó là vì sao không
:-s
 

nguyen tuan anh

Trứng gà
mấy anh chị cho em hỏi, cái câu nói mình mua ngoài nhật tảo , người ta bán 1 bọc 10 hay 50 con vậy
 

MMKC

Thành Viên PIF

LED đơn sắc chạy 3 cấp tốc độ default, nhấn SW1 và nhấn SW2
LED RBG vẫn chưa sáng được ko biết là do dùng cathode common nên có vấn đề hay sao nữa

với lại các bạn cho mình hỏi, hình như là có phép toán nào để dịch bit phải ko vậy, chứ CODE mình làm dài quá vì làm rất thủ công, xuất P1OUT từng chân BIT, 8 đèn @@
Hi em! Dịch bit thì có 2 cách:
- Nhân hoặc chia cho 2 tương ứng dịch trái hoặc dịch phải bit (Em có thể dùng con Fx500es để kiểm chứng lại)
- Dùng kí hiệu "<<" hay ">>" cũng được

Việc em muốn code mình không thủ công em có thể tham khảo một số cách viết trên mạng để có thể tối ưu nhứng thứ rườm rà
Em có thể share code để mọi người tham khảo.
 

doanhung93vt

Trứng gà
Hi em! Dịch bit thì có 2 cách:
- Nhân hoặc chia cho 2 tương ứng dịch trái hoặc dịch phải bit (Em có thể dùng con Fx500es để kiểm chứng lại)
- Dùng kí hiệu "<<" hay ">>" cũng được

Việc em muốn code mình không thủ công em có thể tham khảo một số cách viết trên mạng để có thể tối ưu nhứng thứ rườm rà
Em có thể share code để mọi người tham khảo.
sau khi dùng dịch bit như anh MMKC nói, code ngắn lại quà trời luôn, nên tào lao thêm vài hiệu ứng nữa cho dài dài lại 1 xíu :D


Code:
*******
[Bạn cần post 50 bài để hiển thị]
 

hpsony94

Trứng gà
Còn đèn RBG sao đây mọi người? Đi ra ngoài nhật tảo chưa tìm ra chỗ bán đèn GBR có cathode chung nữa, toàn là anode thui :(
 

doanhung93vt

Trứng gà
ai có biêt chỗ mua LED cathode thì lên nhận đặt hàng mua cho cả lớp thì tốt biết mấy ":*"
 

quandung_nk

Trứng gà
Cho em hỏi những dòng sau có nghĩa gì trong đoạn code vừa rồi:
P2DIR &= ~(BIT2 + BIT3 + BIT4);
P1IN = 00000000;
(~P2IN) & BIT2);

 

doanhung93vt

Trứng gà
Cho em hỏi những dòng sau có nghĩa gì trong đoạn code vừa rồi:
P2DIR &= ~(BIT2 + BIT3 + BIT4);
P1IN = 00000000;
(~P2IN) & BIT2);
theo như cách nối dây ở đề thì các chân P2.2 P2.3 P2.4 se gắn với các công tắc switch
cái dòng lệnh P2DIR .... để set các giá trị tại các chân đó bằng 0, nghĩa là input (nhận lệnh từ switch có nhấn hay không)

P1IN = 00000000, hình như cái dòng này là anh code điên :botay: chỉ có tác dụng gán hết 8 bit của cái P1IN thành 0 thôi, chả có tác dụng trong cái đống code đó :gach

((~P2IN) & BIT2) khi nhấn switch 2, thì cái bit ứng với switch 2 ở trong P2IN nó chuyển thành 0
=> khi nhấn nút ((~P2IN) & BIT2) có giá trị # 0 (e tự ktra có đúng ko nhé :brick:), lệnh if mới được thực hiện

p/s: ~ = not
 

doanhung93vt

Trứng gà
sw3 chưa phải là hoàn hảo 100%, nếu bạn ktra thử hoạt động kĩ kĩ 1 chút sẽ thấy có ....:8cool_matrix:

các bạn cùng sửa và chia sẻ code lên đây để mọi người tham khảo nha ":*"
 

quandung_nk

Trứng gà
Cho em hỏi nếu không cần có (~P2IN) trong (~P2IN) & BIT2 thì câu lệnh có ý nghĩa gì hay không?

Cho em hỏi tiếp P2IN của anh trong đây là gì vậy?
 

doanhung93vt

Trứng gà
Cho em hỏi nếu không cần có (~P2IN) trong (~P2IN) & BIT2 thì câu lệnh có ý nghĩa gì hay không?
ý của e chỉ là if (BIT2)
cấu trúc lệnh đúng, nó thực hiện lệnh ngay và luôn, NHƯNG lúc nào nó cũng thực hiện lệnh vì BIT2 = 00000100 nó mang giá trị #0 nên if nó thưc hiện ko cần biết mình có nhấn sw2 ko

P2IN là giá trị nó sẽ tự thay đổi khi mình nhấn nút, theo như bài code thì
P2IN = 00011100 khi ko nhấn nút nào
và = 00010100 khi nhấn sw2

vậy mình cần so sánh BITx vs P2IN để xem sw đã đc nhấn chưa theo như cái điều kiện if đó

p/s: a nghĩ, cái trong ngoặc đó nó đc chuẩn hóa để kiểm tra r, vì thấy các bài mẫu trong slide bài giảng của PIF dùng như vậy và cá nhân a vọc vọc mấy cái phép điều kiện thì thấy cái đó là tốt nhất r nên cứ theo đó viết đkiện thôi
 
Top