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

  • Nguyên văn bởi falleaf
    hì hì... lại nói về cái này, nếu tạo ra thư viện và quét như vậy, thì chương trình rất phức tạp và dài. Bởi vì có 12 led, tổng cộng tới 2^12 trạng thái. Không biết làm sao bác có thể viết được hết cái đoạn chương trình đó?

    Nếu chia trường hợp thì đau đầu lắm. Bây giờ giả sử F đưa vào 12 bit, cần bật sáng các đèn tương ứng với các bit có giá trị 1. Vậy thì phải làm sao? Rõ ràng công thức đã được một bạn nào đó chỉ ra là 2Cn, nhưng bây giờ làm sao để chứng minh công thức đó là một, và làm sao để hiện thực nó ngắn nhất là hai. Đây vẫn là một câu hỏi duy nhất của F mà chưa ai chú ý giải nhỉ?

    Như đã nói, nếu chia trường hợp mà viết thì sẽ choáng và chết, nếu F làm, chỉ khoảng 20 dòng lệnh MPASM thôi

    hihi.. từ ngày có bé Trang vào đây chơi, anh em vui vẻ và xôm tụ hẳn lên. Rất cám ơn em. Câu này anh dùng để đố em luôn đó bé Trang.

    Gợi ý: Nếu chúng ta cứ quan tâm đến trạng thái đèn, thì chúng ta có tới 2^12 trường hợp, còn nếu lập trình mà bất kể trạng thái đèn thế nào, thì sẽ ra sao?

    Câu trả lời của AFH chưa đầy đủ, vì nếu giải như vậy, trường hợp giả sử dùng trans đóng mở nhanh, và có 8 chân bật tắt 2C8 đèn thì làm thế nào mà lập trình hết các trường hợp được? Chỉ nhấn thêm một tí nữa là AFH có kết quả rồi

    Chúc vui
    20 dòng lệnh có tính khai báo biến, org các thứ không... hay chỉ riêng thủ tục quét thôi.
    Vẫn biết mỗi lần xa là một lần về lại...

    Comment


    • Phần khai báo biến không được xem là dòng lệnh của PIC, nhưng các đoạn mã khởi tạo của timer, ccp, adc... thì được coi là dòng lệnh.

      Tất nhiên đoạn mã quét cũng được coi là dòng lệnh.

      Thực ra bây giờ F không lập trình mấy nữa, nhưng khi phamthaihoa đó cái câu đó, thì biết trước rồi, chỉ có cái là khuyên anh em không nên dùng vì đã thử. Nhưng vì là đố vui, cho nên nghĩ thêm một cách toán học, xem thử làm sao giải quyết vấn đề này tốt nhất. Sau khi giải quyết xong, thì giải quyết được luôn cái bài nút bấm của bé Trang (tất nhiên là cũng biết trước kết quả, nhưng thấy vui vui nên nhấn thêm một bước để đố mọi người). Thành thực mà nói, F vẫn không khuyên mọi người dùng các kỹ thuật này, bởi vì nó chỉ dùng dạng hobbies được thôi, chứ khi làm điều khiển, đụng vào thuật toán, tiết kiệm từng dòng lệnh là chính, và tiết kiệm những chức năng giới hạn như timer ccp, usart, i2c, can... là chính, vì nó rất giới hạn, chỉ có 1,2,3 cái gì đó (normalement), và cũng ít khi nào phải làm mấy cái trò với LED.

      Ước tính sơ bộ, F viết khoảng 20 dòng kiểu đó, gợi ý rồi, và bị chú Hoa biết mánh rùi... anyway, câu đó này dành cho bé Trang là chính, vì mấy hôm nay thấy diễn đàn vui vẻ hẳn ra, như có thêm sinh khí... (mặc dù F vẫn đang nằm trên giường ôm máy tính chưa chịu dậy vì ngoài đường lạnh... thứ bảy nữa... hehhee)...
      Falleaf
      Công ty TNHH Thương mại và Giao nhận R&P
      58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
      mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

      Comment


      • Gợi ý thêm tí nữa,

        Ngõ vào là 12 bit, được viết trên 2 bytes, các bác thích viết thế nào thì viết. Nếu 6 led thì viết trên 1 byte quá dễ rồi. Chắc cần khoảng 10 dòng là xong . Thế mới bó tay con gà quay chứ. hihihihi...

        Mà gợi ý thêm luôn, thực ra không cần đến 20 dòng nếu có cái gợi ý này. Tại vì, tính đưa số lớn lớn để mọi người suy nghĩ lệch đi, nhưng mà xem ra mọi người lại thích càng ít dòng lệnh thì càng hay và càng khó suy nghĩ, cho nên thôi thì nói luôn, kết quả chỉ khoản mười mấy dòng lệnh thôi, kể cả khởi tạo tất tần tật.

        Không gợi ý nữa, mai mốt trả lời luôn, nhưng chắc chỉ tối nay là mọi người nghĩ ra cả thôi.

        Chúc vui
        Falleaf
        Công ty TNHH Thương mại và Giao nhận R&P
        58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
        mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

        Comment


        • Tóm lại là ai viết được một thủ tục mpasm quét 12 led trên 4 port ngắn nhất (tốn ít dòng lệnh nhất). Mà phải điều khiên on/off độc lập cả 12 led. Tức là 2^12 trường hợp.

          Coi như chương trình chỉ làm mỗi việc này thôi.

          Đầu vào là 2 byte lưu giá trị led. LED1, LED2. Thích cấu trúc dữ liệu kiểu gì là tùy mỗi người.
          4 port lấy RB0-RB3 làm chuẩn đi.
          Đầu ra là led sáng.
          Vẫn biết mỗi lần xa là một lần về lại...

          Comment


          • Ko nên quy về ASM, mà quy về chuẩn passcal hoặc C là rõ ràng nhất và thuật toán nhất, hơn nữa có thể áp dụng với uC khác như AVR.
            Em làm một chân chấm điểm.
            Em edit lại, kẻo các anh hiểu nhầm.
            Nên làm khó hơn, tổng quát hơn. Giải bài toán tổng quát N chân.(N*(N-1)LEd). Các LED độ sáng bằng nhau, dùng ngắt timer để tiết kiệm thời gian
            Last edited by thaithutrang; 07-01-2006, 16:31.

            Comment


            • Nguyên văn bởi qmk
              Có bài này hơi khó chưa nghĩ ra có bạn nào nghĩ giúp:
              - Dùng thước kẻ và compa tìm một điểm mà điểm D đó tạo với tam giác ABC 3 tham giác ABD,BCD,CAD có chu vi bằng nhau.
              hehe,bai nay thi tuyen vao Google ma?
              Bác qmk khao tui đi ,tui giải cho,hồi phổ thông hình học phẳng hơi bị ...giỏi đầy.

              Comment


              • Ưu tiên tính rõ ràng,khoa học,mở, speed. Giám khảo chấm có được dự thi ko nhỉ? sợ mang tiếng...

                Comment


                • Nguyên văn bởi thaithutrang
                  Ưu tiên tính rõ ràng,khoa học,mở, speed. Giám khảo chấm có được dự thi ko nhỉ? sợ mang tiếng...
                  Thi thì cứ thi, ai cấm đâu nhỉ?
                  Tớ chả rành về ASM cho PIC nên xin thua ngay từ đầu. .
                  Viết C thì tớ chơi.
                  AFH

                  Comment


                  • Nguyên văn bởi thaithutrang
                    Ko nên quy về ASM, mà quy về chuẩn passcal hoặc C là rõ ràng nhất và thuật toán nhất, hơn nữa có thể áp dụng với uC khác như AVR.
                    Em làm một chân chấm điểm.
                    Em edit lại, kẻo các anh hiểu nhầm.
                    Nên làm khó hơn, tổng quát hơn. Giải bài toán tổng quát N chân.(N*(N-1)LEd). Các LED độ sáng bằng nhau, dùng ngắt timer để tiết kiệm thời gian
                    Chào mừng em tham gia cuộc thi luôn.

                    Ngoài ra, có thể giải C, Pascal, hoặc bất kể cái gì, vấn đề chỉ là thuật toán. Cái anh nói ở đây, chỉ đơn giản là thuật toán. Và với thuật toán đơn giản, thì chỉ viết vài dòng thôi.

                    Mời em tham gia với N(N-1) led. Nhưng anh lưu ý, nếu quá nhiều LED thì thực tế không sáng nổi, cái này anh Bình Anh đã tính cụ thể rồi. Nhưng không sao cả, chúng ta tạm thời bỏ qua tính hiện thực, nhằm phát triển thuật toán là chính.

                    Mời em cho lời giải để các anh ngắm. Bây giờ anh chấm điểm, ai đưa lời giải nhanh nhất, rõ ràng và chính xác nhất theo tiêu chí của em Trang, F tặng 1 con 16F88 cho thêm phần hào hứng.

                    Ngoài ra, cho phép em Trang giải bài luôn

                    Chào mừng em cô gái của PIC :-)

                    Chúc em học tốt.
                    Falleaf
                    Công ty TNHH Thương mại và Giao nhận R&P
                    58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
                    mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

                    Comment


                    • Sau 5 phút có 1 đáp án!

                      Comment


                      • Nguyên văn bởi anthrax
                        hehe,bai nay thi tuyen vao Google ma?
                        Bác qmk khao tui đi ,tui giải cho,hồi phổ thông hình học phẳng hơi bị ...giỏi đầy.
                        Giải đi nhé. Tui mới làm được bài đầu.
                        Vẫn biết mỗi lần xa là một lần về lại...

                        Comment


                        • Nguyên văn bởi thaithutrang
                          Sau 5 phút có 1 đáp án!
                          Nếu làm như em vậy, có phải là nếu có 8 chân, thì em phải đợi đến 8*7 lần timer tràn, thì em mới điều khiển được hết toàn bộ 56 cái LED?

                          Điều này theo em có hợp lý không?

                          Như vậy, giả sử anh gọi chu kỳ nhiệm vụ của vòng quét LED là T, thì khi đó, một LED nếu bật sáng chỉ có tác dụng trong 1/56*T?

                          Giải pháp của em thực sự chưa tốt phải không nào?

                          PS. Vì sang trang khác mất rồi, cho nên anh post lại hình của em vào bài viết này để cho mọi người dễ theo dõi.

                          Anh chờ giải pháp tiếp theo của em!
                          Falleaf
                          Công ty TNHH Thương mại và Giao nhận R&P
                          58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
                          mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

                          Comment


                          • Nguyên văn bởi qmk
                            Giải đi nhé. Tui mới làm được bài đầu.
                            Nghe thằng bạn nói vậy chứ không biết thông tin chi tiết,nó có nói bài toán này.Lại nghe bác qmk đố bài này nên máu hính học nổi lên. Hehe,mới vừa giải xong,bài toán này tương đương bài toán :"Dựng hình tròn tâm D tiếp xúc với 3 đường tròn tiếp xúc từng đôi với tâm tại A,B,C" .Bài toán có 2 nghiệm hình tương ứng với tiếp xúc trong và ngoài

                            Bác qmk cho cái trang về cuộc thi trên google đi

                            Comment


                            • Không phải là em ko nghĩ ra cách quét = số chân(N) điều khiển.
                              Nhưng độ sáng phải đồng đều đó anh. Nên giải pháp xuất nhiều LED 1 lúc sẽ sinh ra hiệu ứng ko hay. Thà sáng mờ như nhau cả còn hơn là cái sáng cái mờ. Do sụt áp qua điện trở ko đều.

                              Comment


                              • À,có cuộc thi về google à? có toán đại số ko?có cho em tham gia với.

                                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