Thông báo

Collapse
No announcement yet.

Đố vui về PIC, các câu đố cực vui và cực hay... hehe..

Collapse
This topic is closed.
X
This is a sticky topic.
X
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • thaithutrang
    replied
    Cách mã hóa của anh KHHGD sẽ có thể bị lỗi bỏ sót ngắt nếu >1 ngắt đồng thời xảy ra.

    Leave a comment:


  • thaithutrang
    replied
    Nguyên văn bởi KHHGD
    Cách của bác CB và 3T rất hay !!! Nhưng 3T đã tính đến khoảng thời gian mà Ngắt của 3T yêu cầu đến khi được phục vụ chưa !!!
    Quay trở lại câu hỏi em đã hỏi !!!
    Với 32 đường vào ngắt thì em dùng một mạch Encoder tạo thành tổ hợp mã có 5 bit twcs là dùng 5 chân của Port .Còng đường báo ngắt thì dùng như của 3T không ai chê được rồi !!!
    Vấn đề bây giờ làm thế nào để xây dựng đưởng bảng véc tơ ngắt động sao cho thời gian đáp ứng là ngắn nhất với số câu lệnh ít nhất ,thời gian sử dụng CPU là ngắt nhất (Kể từ khi có ngắt đến khi xác định được nguồn báo ngắt và gọi chương trình phục vụ ngắt !!!)
    Không giám qua mặt các cao thủ !!!
    Tại anh đưa ra câu đố không chặt chẽ mà cứ theo ý của anh. Đáng lẽ anh phải post từ đầu là yêu cầu:
    1-Tốn ít cổng nhất.
    2-Tốn ít thời gian nhất
    Thỉnh thoảng, anh lại thêm một điều kiện thế thì..hihi...
    vậy em lại thêm điều kiện: tốn ít chân nhất, mạch đơn giản nhất.. thì sao?

    Leave a comment:


  • KHHGD
    replied
    Cách của bác CB và 3T rất hay !!! Nhưng 3T đã tính đến khoảng thời gian mà Ngắt của 3T yêu cầu đến khi được phục vụ chưa !!!
    Quay trở lại câu hỏi em đã hỏi !!!
    Với 32 đường vào ngắt thì em dùng một mạch Encoder tạo thành tổ hợp mã có 5 bit twcs là dùng 5 chân của Port .Còng đường báo ngắt thì dùng như của 3T không ai chê được rồi !!!
    Vấn đề bây giờ làm thế nào để xây dựng đưởng bảng véc tơ ngắt động sao cho thời gian đáp ứng là ngắn nhất với số câu lệnh ít nhất ,thời gian sử dụng CPU là ngắt nhất (Kể từ khi có ngắt đến khi xác định được nguồn báo ngắt và gọi chương trình phục vụ ngắt !!!)
    Không giám qua mặt các cao thủ !!!

    Leave a comment:


  • thaithutrang
    replied
    N1-------<|----------COM
    N2-------<|----------COM
    .....
    Nn-------<|----------COM
    Chân COM nối chung nhau và nối với chân ngắt và đồng thời nối 1 điện trở khoảng 2.2 K lên Vcc.
    Khi Ni=0 thì COM=0, vậy sinh ra ngắt. Còn khi tất cả Ni=1(mọi i) thì COM=1.

    Leave a comment:


  • HPECOM
    replied
    Nguyên văn bởi thaithutrang
    Hihi... thấy bài toán hay hay, em lại muốn vào tham gia diễn đàn rùi.
    Cách sử dụng 3 chân: INT+ 2 chân I/O như thế này:
    Giả sử có N đầu vào ngắt và tích cực theo mức L:
    -Ta dùng N diot+1 điện trở tạo thành mạch AND. Lối ra cho vào chân INT của uC.
    Mong 3T giải thích rõ hơn về cách nối N diode thành cổng AND, mà sao lại là AND mà không phải là OR?
    Nếu được mong 3T vẽ hình cho mọi người cùng chiêm ngưỡng.
    Cảm ơn.

    Leave a comment:


  • thaithutrang
    replied
    Hihi... thấy bài toán hay hay, em lại muốn vào tham gia diễn đàn rùi.
    Cách sử dụng 3 chân: INT+ 2 chân I/O như thế này:
    Giả sử có N đầu vào ngắt và tích cực theo mức L:
    -Ta dùng N diot+1 điện trở tạo thành mạch AND. Lối ra cho vào chân INT của uC.
    -Dùng N/8 con ghi dịch 8 bit, nối nối tiếp với nhau, và các chân Load được nối với nhau và nối với INT.
    -Khi có ngắt, thì dữ liệu được nạp vào ghi dịch, ta chỉ cần viết lệnh dùng 2 chân để làm Clock, một chân để nhận data.
    Vậy kết quả có thể lên 3 vạn chín ngàn kênh như anh CB nói, mà tốn chỉ 1 chan ngắt ngoài + 2 chân I/O bất kỳ. Hihi...

    Leave a comment:


  • CHIBANG
    replied
    Vậy bây giờ tui đố lại chú, 4 chân uC(trong đó có 1 chân ngắt ngoài), chú làm sao làm mở rộng được 100 ngắt ngoài?

    Leave a comment:


  • CHIBANG
    replied
    Đáp số ít chân nhất có thể là:
    1 chân ngắt
    2 chân I/O
    Vậy mất 3 chân tất cả. Chú mở rộng ra ba vạn sáu ngàn kênh cũng chỉ mất tất cả 3 chân thôi.

    Leave a comment:


  • CHIBANG
    replied
    Nguyên văn bởi KHHGD
    Bác dùng cái khác sẽ tiết kiệm hơn 1 chân
    Tóm lại là chú thiết kế 32 kênh cần bao nhiêu chân? Ví dụ N chân, thì tớ có giải pháp N-1 chân ngay. He he...

    Leave a comment:


  • KHHGD
    replied
    Bác dùng cái khác sẽ tiết kiệm hơn 1 chân

    Leave a comment:


  • KHHGD
    replied
    Bác định dùng MUX hả !!! he he he !!! Như thế vẫn chưa tiết kiệm 1 chân !!!

    Leave a comment:


  • CHIBANG
    replied
    Tại chú ko nói rõ yêu cầu tiết kiệm chân chớ.
    Nếu dùng chuyển mạch điện tử kiểu như 4051 chọn kênh thì chỉ mất khoảng: 6-7 chân tất cả với 32 đầu vào

    Leave a comment:


  • KHHGD
    replied
    He he he !!! CÁch cảu bác cũng được nhưng tốn chân quá !!! Vậy em muốn dùng 32 ngắt thì phải mất 32 chân hả !!!

    Leave a comment:


  • CHIBANG
    replied
    Nguyên văn bởi KHHGD
    em xin hỏi các bác !!! Làm thế nào để em có thể mở rộng số ngắt ngoài cho PIC .Em xin hết(cụ thể em cần tới 16 ngắt ngòai chẳng hạn)
    Không giám qua mặt các bác !!!
    Cách 1: nối 16 lối vào vào 16 chân PIC, sau đó dùng vài IC số thiết kế mạch AND 16 lối vào này và lối ra cho vào chân INT ngoài.
    Khi có ngắt, chỉ chân đọc 16 chân của PIC sẽ xác định được nguồn ngắt?
    Cách này tạm chấp nhận được ko?
    Nhưng chú đố hay là chú hỏi? phải phân biệt rõ đó. He he...

    Leave a comment:


  • KHHGD
    replied
    em xin hỏi các bác !!! Làm thế nào để em có thể mở rộng số ngắt ngoài cho PIC .Em xin hết(cụ thể em cần tới 16 ngắt ngòai chẳng hạn)
    Không giám qua mặt các bác !!!

    Leave a comment:

Về tác giả

Collapse

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

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

Collapse

Đang tải...
X