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

  • Trả lời đáp án của anh qmk.
    Anh nói khó em à?
    -Thì em đã nói: chỉ làm trường hợp 2 nút "cùng ấn".
    -Tốc độ ADC của PIC khoảng 90 K mẫu/ giây. Tốc độ ấn phím khoảng 20ms.
    Hai nút ko ấn đồng thời cùng một lúc được. Nên có thể sử dụng giả thiết này.

    Nhưng anh đã có schematíc về nó đâu? nên rất khó nói

    Comment


    • Câu hỏi 2

      Có anh nào trả lời được ngoài anh này nữa ko nhỉ? Thôi, em phải đố câu khó hơn đây, câu vừa rồi vẫn dễ:
      Dùng một cổng(8 chân) của PIC hoặc AVR + và chỉ thêm một con linh kiện dễ kiếm,rẻ tiền khác(<=1000 đ), hãy tạo ra khoảng 22 mức điện áp khác nhau(ko cần tuyến tính lắm). Phương án này làm DAC có khi lại được đấy các anh nhỉ?
      Em đố vậy chứ ko có ý gì đâu.
      ----------------------------------------------------------------------------
      Trả lời của bạn AFH
      Quên kô nói thêm là người ta kô dùng cách đó để làm DAC, mà người ta hay dùng PWM làm DAC, nối một chân VĐK qua một điện trở và một tụ điện là xong. Phải kô nào?
      AFH
      ----------------------------------------------------------------------------
      Em thừa biết dùng PWM tạo được DAC (qua mạch lọc RC) nhưng như thế dễ quá, ai cũng biết. PWM nó có yếu điểm:
      -Khi thay đổi tần số PWM sẽ thay đổi mạch lọc RC, cái này rất khó làm mạch lọc RC góc cắt động.Chắc phải dùng công nghệ FPAA hay ít nữa PSoC của Cypress mới giải quyềt phần nào.
      -Khi cần tạo DAC tốc độ cao thì kiểu DAC-PWM ko làm nổi.
      -Nếu anh AFH cho rằng kết quả anh là đúng thì thử chứng minh cho em xem?
      ----------------------------------------------------------------------------
      Trên lý thuyết thì AFH đã đưa ra phương pháp khả thi chuyện thay đổi tần số hay tốc độ không đưa ra trong bài toán đầu tiên của bạn. Nóng tính rồi

      Về DAC trên lý thuyết thì sẽ dùng R-2R network hoặc là sum opamp.
      Thực ra câu đố của bạn là dùng con Opamp với cái mạch cộng. Nhưng vẫn cần con trở feed back.
      Mà tôi không biết giá opamp ra sao.
      ----------------------------------------------------------------------------
      Có lẽ nên dùng 1 con trở thanh 10 chân. Chân chung out. 8 chân vào 8 port còn một chân cạnh chân chung nối xuống đất. Ok?

      Trong ảnh trở out =0. Nếu thêm con tụ nhỏ nhỏ ở chân out chắc tốt hơn
      Bổ sung ảnh theo yêu cầu.
      Last edited by qmk; 05-01-2006, 17:26.
      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
        Trả lời đáp án của anh qmk.
        Anh nói khó em à?
        -Thì em đã nói: chỉ làm trường hợp 2 nút "cùng ấn".
        -Tốc độ ADC của PIC khoảng 90 K mẫu/ giây. Tốc độ ấn phím khoảng 20ms.
        Hai nút ko ấn đồng thời cùng một lúc được. Nên có thể sử dụng giả thiết này.

        Nhưng anh đã có schematíc về nó đâu? nên rất khó nói
        Người hiểu thì mạch nó tự hiện trong đầu thôi. Vẽ ra làm gì.
        Vẫn biết mỗi lần xa là một lần về lại...

        Comment


        • qmk đại hiệp có thể nói rõ hơn về giải pháp dùng trở băng không ?

          Comment


          • He he... vừa email cho em gái, đáp án anh có đúng ko nhẩy? làm anh mất cả buổi sáng nay.
            -------------------

            Comment


            • Nguyên văn bởi CHIBANG
              He he... vừa email cho em gái, đáp án anh có đúng ko nhẩy? làm anh mất cả buổi sáng nay.
              Đáp án của anh đúng mất rồi. Đáng lẽ em phải phức tạp đi một tý. Em phải làm cái mạng CAN đã, kiến thức mạng CAN chưa biết gì cả, làm xong CAN em sẽ có câu đố khó hơn nhiều.

              Comment


              • Nguyên văn bởi qmk
                Trả lời của bạn AFH
                Quên kô nói thêm là người ta kô dùng cách đó để làm DAC, mà người ta hay dùng PWM làm DAC, nối một chân VĐK qua một điện trở và một tụ điện là xong. Phải kô nào?
                AFH
                ----------------------------------------------------------------------------
                Em thừa biết dùng PWM tạo được DAC (qua mạch lọc RC) nhưng như thế dễ quá, ai cũng biết. PWM nó có yếu điểm:
                -Khi thay đổi tần số PWM sẽ thay đổi mạch lọc RC, cái này rất khó làm mạch lọc RC góc cắt động.Chắc phải dùng công nghệ FPAA hay ít nữa PSoC của Cypress mới giải quyềt phần nào.
                -Khi cần tạo DAC tốc độ cao thì kiểu DAC-PWM ko làm nổi.
                -Nếu anh AFH cho rằng kết quả anh là đúng thì thử chứng minh cho em xem?
                ----------------------------------------------------------------------------
                Trên lý thuyết thì AFH đã đưa ra phương pháp khả thi chuyện thay đổi tần số hay tốc độ không đưa ra trong bài toán đầu tiên của bạn. Nóng tính rồi
                Sorry các anh, ko phải em nóng tính nhưng em cảm giác là các anh vẫn "coi nhẹ" con gái. Vì đó là kiến thức cở bản nên tối thiểu ai cũng biết

                Comment


                • Em Trang thân mến (chưa trả lời bài nào của em hay trao đổi gì, mở miệng ra thân mến rồi hihihi..)

                  Xem qua các bài viết của em, anh có nhận xét, những vấn đề của em được tham khảo từ các tài liệu chuẩn là chính (những cái này anh và anh Bình Anh đều nắm rõ), chính vì vậy, cái ý của anh muốn nâng câu trả lời của các bạn lên, khi chứng minh một cách toán học. Ví dụ như anh QMK chứng minh công thức chọn trở là phức tạp. Anh chưa có thời gian xem kỹ nữa, nhưng anh thấy hướng chứng minh như vậy là oki.

                  Đó là những vấn đề trong thiết kế mà hiện nay chúng ta cần quan tâm. Các chức năng và những mẹo sử dụng không phải là cái hiện nay nên quan tâm nhiều nữa. Một khi chúng ta hiểu rõ được bản chất của bài toán đặt ra, thì lúc đó chúng ta muốn làm gì cũng được.

                  Bây giờ anh đặt lại bài toán của bạn phamthaihoa, em cũng có tài liệu đó rồi. Bây giờ làm thế nào để em trình bày thuật toán để bật tắt các đèn đó. Nếu như làm theo cách anh Bình Anh post lên với 1 chân điều khiển 2 đèn (tại vì anh BA muốn hướng dẫn các bạn sinh viên về lập trình, nên xu hướng của anh BA là viết code). Nhưng em hiểu là, nếu viết như vậy cho 12 đèn với đủ hết các trường hợp là không thể. Vậy thì cần thuật toán điều khiển như thế nào cho rõ ràng?

                  Kết quả, nếu như em giải bài toán của phamthaihoa, em sẽ có kết quả của bài toán nút bấm mà em đã đố mọi người.

                  Một cách rất chân tình, anh nhận xét rằng em có tư duy tốt để học, vì vậy, em nên chọn hướng học và phát triển lý thuyết toán nhiều hơn, anh nghĩ nó sẽ tốt cho em nhiều hơn.

                  Hãy suy nghĩ về điều anh nói, đừng để phí thời gian và tư duy của mình.

                  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


                  • Đố vui mà anh.

                    Comment


                    • Ùh, anh biết, anh rất hoan nghênh, nhưng anh thấy em có vẻ rất khá, nên muốn khuyên em đi theo hướng nghiên cứu một chút. Sẽ phát huy được hết khả năng của em.

                      Anh chú ý không phải vì câu đố của em, mà cách em đặt ra câu đố, rất thông minh, và khi em đưa thêm các câu đố mà em bảo đáng lẽ em nên ra câu đố khó hơn, anh thấy rất thông minh.

                      Thường thì mỗi lần anh thấy các em học nhanh, làm việc nhanh, anh rất thích, vì vậy nên có vài lời khuyên để em định hướng nghiên cứu tốt hơn.

                      Mong nhận được nhiều bài của em trên diễn đàn.

                      À quên, tại sao em không tự giới thiệu mình nhỉ? Có lẽ em là một trong số ít các cô gái tham gia vào diễn đàn ở đây, và có viết bài lên diễn đàn. Đúng ra các anh trên diễn đàn phải galant hơn với em chứ nhỉ? Công nhận các anh đam mê kỹ thuật quá rồi cho nên....

                      Oki,anyway, chào mừng em đến với diễn đàn PIC.

                      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


                      • Nguyên văn bởi thaithutrang
                        Đố vui mà anh.
                        mới chỉ có vài nữ thôi đó...

                        Đố lại em nhé:

                        Đoạn mã C sau thực hiện điều gì ? uint16 là unsigned 16-bit integer.
                        Code:
                        #define P  ( 16 >> 1 ) 
                        
                        uint16 Function (uint16 N)
                        {
                        uint16 R;
                        uint16 R2;
                        uint16 M;
                        uint16 M2;
                        uint16 T;
                        uint16 Pw;
                        	
                        R = 0;
                        R2 = 0;
                        M = 1 << (P - 1 );
                        M2 = 1L << ( ( P - 1 ) << 1 );
                        	
                        for (Pw = P; Pw > 0; --Pw) {
                        	T = R2 + M2 + ((uint16)R << Pw);
                        	if (T <= N) {
                              	    R2 = T;
                        	    R |= M;
                            	}
                        	M >>= 1;
                        	M2 >>= 2;
                           }
                        
                           return R;
                        }

                        Comment


                        • Nguyên văn bởi thaithutrang
                          Em thừa biết dùng PWM tạo được DAC (qua mạch lọc RC) nhưng như thế dễ quá, ai cũng biết. PWM nó có yếu điểm:
                          -Khi thay đổi tần số PWM sẽ thay đổi mạch lọc RC, cái này rất khó làm mạch lọc RC góc cắt động.Chắc phải dùng công nghệ FPAA hay ít nữa PSoC của Cypress mới giải quyềt phần nào.
                          -Khi cần tạo DAC tốc độ cao thì kiểu DAC-PWM ko làm nổi.
                          -Nếu anh AFH cho rằng kết quả anh là đúng thì thử chứng minh cho em xem?

                          Nếu dùng chuyển mức như anh QD thì ko thể automatic được, đây là câu đố "tốn ít linh kiện nhất, gọn nhất và tận dụng uC có sẵn trên mạch". Ví dụ anh có 1 cái board làm một nhiệm vụ nào đó, nếu cần tính năng DAC tốc độ cao trong khi cổng thừa chân rất nhiều thì câu đố là một giải pháp.
                          Hơn nữa đây là đố vui... nhưng đôi khi thành thật.
                          Tớ quay lại đây, chiều phải đi giải quyết một cái máy tự động nên kô online được. Giờ tớ chứng minh cho bạn cách tớ dùng nhé.

                          Chọn R băng 8 điện trở có một đường nối chung như tớ đã nói. Vậy phương pháp là lần lượt cho các giá trị đầu ra sao cho có tỷ lệ như sau:
                          0/8 , 1/7, 1/6 , 1/5, 1/4, 1/3, 1/2 và 1/1 Với quy ước tử số là số chân I/O ở mức cao (5V) và mấu số là số chân I/O ở mức thấp (0V) (vậy là có 8 cách đưa ra điện áp rồi nhé) tương ứng: GND, Vcc/8, Vcc/7, Vcc/6, Vcc/5,Vcc/4,Vcc/3, Vcc/2.
                          Việc giảm các điện trở nối với GND ở mẫu số là do ta điều chỉnh đầu vào đó là Input, do đó điện trở đó ở trạng thái cao trở.
                          Tương tự ta có các tỷ lệ 8/0, 7/1, 6/1, 5/1, 4/1, 3/1, 2/1 tương ứng các mức điện áp là: Vcc, 7Vcc/8, 6Vcc/7, 5Vcc/6, 4Vcc/5, 3Vcc/4, 2Vcc/3 (vậy là có thêm 7 mức điện áp nữa rồi nhé.
                          Tiếp đến là: 2/3, 2/5 tương ứng với mức điện áp là 2Vcc/5 và 2Vcc/7 (vậy là có thêm 2 mức nữa rồi.
                          Tiếp đến là 3/2, 3/4, 3/5, tương ứng mức điện áp là: 3Vcc/5, 3Vcc/7, 3Vcc/8. (vậy là có thêm 3 mức nữa nhé)
                          Rồi tiếp đến là 4/3 tương ứng mức điện áp: 4Vcc/7
                          Tiếp theo là 5/2, 5/3 tương ứng với mức điện áp: 7Vcc/20, 8Vcc/45 (có thêm 2 nữa)

                          Vậy là có 8+7+2+3+1+2=23 mức khác nhau
                          tương ứng tăng dần là: GND, Vcc/8, Vcc/7, Vcc/6, 8Vcc/45, Vcc/5, Vcc/4, 2Vcc/7, Vcc/3, 7Vcc/20, 3Vcc/8, 2Vcc/5, 3Vcc/7, Vcc/2, 4Vcc/7, 3Vcc/5, 2Vcc/3, 3Vcc/4, 4Vcc/5, 5Vcc/6, 6Vcc/7, 7Vcc/8, Vcc.
                          Nếu chọn Vcc=1V chẳng hạn (cho dễ tính ấy mà) và GND=0V thì các mức điện áp sẽ là: 0 - 0.125 - 0.143 - 0.166 - 0.177 - 0.2 - 0.25 - 0.286 - 0.333 - 0.35 - 0.375 - 0.4 - 0.428 - 0.5 - 0.571 - 0.6 - 0.666 - 0.75 - 0.8 - 0.833 - 0.857 - 0.875 - 1

                          Bạn xem có phải là 23 mức không?

                          Còn nữa: Cái ADC PWM là tớ nói người ta hay dùng thế, chứ cái nào mà chả có ưu và nhược điểm nhỉ? Phải không? Ta có thể chọn C lớn để tránh bị răng cưa ở điện áp ra, nhưng đổi lại thì tốc độ lại chậm. Đúng không nào.

                          Bạn Trang thân mến, rất hoan nghênh bạn đưa ra các câu hỏi như thế này. Bạn cứ tiếp tục phát huy nhé. Coi như là giải trí thôi mà, đâu có mất nhiều thời gian lắm đâu. Okie?

                          To anh Falleaf: Bác cứ kệ bạn ấy, bạn ấy khuấy động phong trào thi đua này hay đấy chứ? Miễn sao mọi người đừng khích bác hay nói kháy nhau là được rồi.

                          AFH

                          Comment


                          • M2 = 1L << ( ( P - 1 ) << 1 );
                            if (T <= N) {
                            Hai câu lệnh trên có xuất hiện " 1L " và "N" nó là cái gì vậy, sao kô thấy định nghĩa cho nó nhỉ?
                            AFH

                            Comment


                            • Phương pháp mà anh AFH đưa ra là R-2R, được đề cập trong một appnote nào đó của Microchip hình như là 65x gì đó.

                              Theo phương pháp này thì tạo ra được khoảng 20-22 mức điện áp.

                              Bạn thaithutrang này hình như học K47 BKHN, bảo năm thứ 4, mà mail là thaithutrang1985@yahoo.com chắc đi học sớm 1 năm. Đúng không thutrang tỉ tỉ.

                              Comment


                              • Nguyên văn bởi phamthaihoa
                                Phương pháp mà anh AFH đưa ra là R-2R, được đề cập trong một appnote nào đó của Microchip hình như là 65x gì đó.

                                Theo phương pháp này thì tạo ra được khoảng 20-22 mức điện áp.

                                Bạn thaithutrang này hình như học K47 BKHN, bảo năm thứ 4, mà mail là thaithutrang1985@yahoo.com chắc đi học sớm 1 năm. Đúng không thutrang tỉ tỉ.
                                Oái, phương pháp của tớ đâu có phải loại R-2R, bạn xem lại xem có phải kô? Nếu tớ kô nhầm thì phương pháp R-2R là sử dụng bộ cộng điện áp thông qua một con OP-AMP. kô biết có đúng thế kô?
                                Còn phương pháp tớ dùng là tớ tự nghĩ ra đó, cũng có thể nó trùng với một app note nào đó. Vì vậy, nếu bạn đã thấy ở đâu thì phiền bạn tìm và post lên đây với. Chứ nói chung chung là ở đâu đó rồi xem chừng như kiểu tớ vác cái App note lên giải câu đố của bạn Trang thì phải?
                                Chúc cả nhà vui.

                                Trang đâu rồi ấy nhỉ? Em gái này học K47 trường BK à? Em học chuyên ngành gì vậy em? Sao công lực của em thâm hậu vậy? Hồi anh bằng tuổi em bây giờ, thậm chí chả biết VĐK là cái gì cả, chỉ biết nó là Chíp hay còn gọi là IC.
                                Đúng là hậu sinh khả úy. HI hi....

                                AFH

                                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