Thông báo

Collapse
No announcement yet.

đau đầu về vi điều khiển...!!!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • đau đầu về vi điều khiển...!!!

    Các anh em nào có nhều kinh nguyệt về vi điều khiển có cách nào chống hiện tượng treo chip không trao đổi anh em cùng học tập nhỉ..???
    hiện tượng treo chíp là do đâu:
    liệu có phải do một trong những lý do sau:
    + tần số hoạt động thạnh anh thấp?
    + chương trình có quá nhiều vòng lặp dẫn đến treo? cách này đòi hỏi kinh nguyệt của các anh em đây,làm sao để chương trình tối ưu nhất?
    + các đầu ra tín hiệu có điện áp phản hồi (sđđ E) gây treo?
    + các đầu vào tín hiệu bị nhiễu..?
    ==>> các bác nào có phát hiện thêm được lỗi nữa thì nêu ra cho anh em cùng biết và cùng tìm cách khắc phục nhé...


    em cũng đang đau đầu vấn đề này đây.em đang viết chương trình điều khiển cho cái remote dùng 89c51 nhưng cứ điều khiển một lúc lại treo
    cụ thể là bật xét các đầu ra một lúc là treo nhưng tắt đi thì để thoải mái lúc bật lên là được ngay nhưng cũng phải tắt ngay không là treo luôn.?
    nó làm em điên hết người bác nào có cách khắc phục giúp em với nhé..??
    đùa chứ tớ hơi ngu...thông cảm nha..heee...

  • #2
    bác kiểm tra nguồn em nó coi sao

    Comment


    • #3
      - Mình không có nhều ..............về vi điều khiển (ghi gì mà khiếp thế)
      - Nguyên nhân hay gặp là nguồn đó bạn àh. bạn thử để nguyên xi phần cứng đó, viết 1 ct thật đơn giản chỉ chớp 1 led để xem có bị không
      Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
      Pic 18F2550 PDIP Thailand bao test 60K/1c


      Comment


      • #4
        vấn đề bạn dùng phần cứng có relay không và code bạn viết có đúng như bạn tưởng tượng ko. Nếu mạch có relay thì relay đóng làm treo là bình thường, còn code bạn viết thì sau khi nhận tín hiệu từ remote rồi nó chạy như thế nào, có đúng theo bạn nghĩ hay ko. Nhiều khi bạn viết code mà ko thấy đường thoát sao khi làm 1 chuyện gì đó thì treo là bình thường (chính xác thì ko phải treo mà là VDK làm chuyện gì mình ko biết)

        Comment


        • #5
          Bạn chỉnh lại ngôn từ khi viết bài, ngẫm lại các ý kiến của các thành viên và thực hiện sẽ thành công.
          - - -

          Comment


          • #6
            Nguyên văn bởi vanthien Xem bài viết
            Bạn chỉnh lại ngôn từ khi viết bài, ngẫm lại các ý kiến của các thành viên và thực hiện sẽ thành công.
            em xin lỗi các bác.nếu có j mạo phạm xin lượng thứ! em chỉ nói cho vui tí thôi,anh em với nhau có thể thông cảm dc phải không các bác...
            quay trở lại vấn đề: vấn đề về cái remote kia em đã giải quyết dc rồi.nó là do chương trình thôi,chương trình đó em xin dc,chương trình xét nút bấm rất tốt ko bị nhiễu tí nào mỗi tội khi xét tín hiệu đầu ra lên mức 1 rồi là 1 lúc lại treo nhưng khi bấm cho nó tắt đi (đầu ra lúc này =0) thì nó lại không treo nữa.em tìm mãi ko ra lỗi nên đành bó tay,viết chương trình # rồi chạy ngon rồi nhưng có điều đôi lúc vẫn nhiễu.vẫn thấy tiếc chương trình kia. jo thì bận quá ko có time mà tìm hiểu sâu về nó dc.bác nào có hứng thú tìm hiểu em sẽ post lên cho.
            còn về vấn đề treo chíp do nguồn các bác có thể giải thích cụ thể và giải pháp cho nó là j không.vì đôi khi nguồn xung mua ở chợ trời về vẫn treo như thường.do vậy em lại nghĩ nó do thạch anh nữa chứ không hẳn là nguồn...
            đùa chứ tớ hơi ngu...thông cảm nha..heee...

            Comment


            • #7
              bạn nên chú ý cách ăn nói, cùng diễn đàn không nên phát ngôn bừa bãi, có thể chi em vào đọc thấy những từ ngữ đó không hay, nguyên nhân treo chíp thì có nhiều lắm, phải làm thực tế mới rút ra nhiều kinh nghiệm được, ví dụ như nguồn thấp hoẵc sụt áp, hoặc mất mát chíp không thể chạy, hoặc chạy một lúc là đơ,
              2. Bạn nên thay các câu lệnh if trong trương trình bằng hàm switch case để tối ưu hóa chương trình,
              3. Trong chương trình hạn chế sử dụng hàm delay trong ngắt
              4. Tránh, hạn chế vòng lặp while trong các chương trình ngắt, for,if...VV
              5. bạn nên vẽ lưu đồ thuật toán trước rồi hãy biết code để chương trình mạch lạc dễ quản lý.
              chúc vui. còn nhiều bệnh mà làm thực tế mới rút ra kinh nghiệm được

              Comment


              • #8
                Nếu ko phiền thì em thử post code e viết để cho mọi người trong diễn đàn thảo luận thì mới biết được code đó có làm treo ko? Nhiều khi các khai báo đơn giản của bạn cũng làm chuơng trình treo. Nếu ko thì phần nguồn bạn nên kiểm tra lại!

                Comment


                • #9
                  Treo cũng tùy loại VDK. Nếu là 8051 treo phần lớn là do nó đuối sức ko đỡ được những thay đổi bên ngoài. Cái này thì gần hết thuốc chữa.

                  Comment


                  • #10
                    Nguyên văn bởi ledsieusang Xem bài viết
                    bạn nên chú ý cách ăn nói, cùng diễn đàn không nên phát ngôn bừa bãi, có thể chi em vào đọc thấy những từ ngữ đó không hay, nguyên nhân treo chíp thì có nhiều lắm, phải làm thực tế mới rút ra nhiều kinh nghiệm được, ví dụ như nguồn thấp hoẵc sụt áp, hoặc mất mát chíp không thể chạy, hoặc chạy một lúc là đơ,
                    2. Bạn nên thay các câu lệnh if trong trương trình bằng hàm switch case để tối ưu hóa chương trình,
                    3. Trong chương trình hạn chế sử dụng hàm delay trong ngắt
                    4. Tránh, hạn chế vòng lặp while trong các chương trình ngắt, for,if...VV
                    5. bạn nên vẽ lưu đồ thuật toán trước rồi hãy biết code để chương trình mạch lạc dễ quản lý.
                    chúc vui. còn nhiều bệnh mà làm thực tế mới rút ra kinh nghiệm được
                    em cám ơn bác đã đóng góp ý kiến,em xin ghi nhận ý kiến của bác,và sẽ sửa đổi..
                    nhưng em đang viết asm nên ko biêt về c cho lắm.mà asm em cũng còn gà lắm mong các bác giúp đỡ.
                    theo các bác thì một đoạn chương trình con sau khi thực hiện mà gọi các lệnh nhảy ra ngoài quá nhiều có dẫn đến treo không.vi dụ là trong doan chuong trình con đó lại gọi nhảy sang thực hiện một đoạn chương trình con #.và trong một chương trình con lại có rất nhiều chương trình con # trong đó thì có ảnh hưởng j không?
                    đùa chứ tớ hơi ngu...thông cảm nha..heee...

                    Comment


                    • #11
                      Nguyên văn bởi toan258 Xem bài viết
                      em cám ơn bác đã đóng góp ý kiến,em xin ghi nhận ý kiến của bác,và sẽ sửa đổi..
                      nhưng em đang viết asm nên ko biêt về c cho lắm.mà asm em cũng còn gà lắm mong các bác giúp đỡ.
                      theo các bác thì một đoạn chương trình con sau khi thực hiện mà gọi các lệnh nhảy ra ngoài quá nhiều có dẫn đến treo không.vi dụ là trong doan chuong trình con đó lại gọi nhảy sang thực hiện một đoạn chương trình con #.và trong một chương trình con lại có rất nhiều chương trình con # trong đó thì có ảnh hưởng j không?
                      không ảnh hưởng gì hết nếu bạn nắm rõ bộ đếm chương trình PC. Các chương trình con khi bạn viết thì khi cất cái gì vào vùng SP thì khi kết thúc CT con là phải lấy ra ngay(hoặc tốt nhất là ko nên làm gì đụng chạm tới vùng SP nếu bạn ko hiểu rõ nó)

                      Comment


                      • #12
                        Nguyên văn bởi chung1608 Xem bài viết
                        không ảnh hưởng gì hết nếu bạn nắm rõ bộ đếm chương trình PC. Các chương trình con khi bạn viết thì khi cất cái gì vào vùng SP thì khi kết thúc CT con là phải lấy ra ngay(hoặc tốt nhất là ko nên làm gì đụng chạm tới vùng SP nếu bạn ko hiểu rõ nó)
                        bác có thể nói rõ hơn về vấn đề nay không?em có tìm hiểu về nó nhưng quả thực vẫn không rõ cho lắm về bộ đếm chương trình.ý của bác có phải khi ban đầu mình push vào một ô nhớ nào đó thì khi kết thúc phải pop ra ngay không.nếu không nó sẽ ảnh hưởng gì?mình có thể lợi dụng chính sự ảnh hưởng đó để thay đổi một giá trị nào đó về sau không(gia sử ở một chương trình con #)
                        đùa chứ tớ hơi ngu...thông cảm nha..heee...

                        Comment


                        • #13
                          Nguyên văn bởi toan258 Xem bài viết
                          bác có thể nói rõ hơn về vấn đề nay không?em có tìm hiểu về nó nhưng quả thực vẫn không rõ cho lắm về bộ đếm chương trình.ý của bác có phải khi ban đầu mình push vào một ô nhớ nào đó thì khi kết thúc phải pop ra ngay không.nếu không nó sẽ ảnh hưởng gì?mình có thể lợi dụng chính sự ảnh hưởng đó để thay đổi một giá trị nào đó về sau không(gia sử ở một chương trình con #)
                          khi gặp 1 lệnh nhảy vào 1 chương trình con nào đó, VDK sẽ cất vị trí của dòng lệnh dưới dòng lệnh gọi chương trình con vào SP, nếu bạn ấn 1 cái gì vào SP trong CT con vừa gọi nó sẽ làm vị trí của lệnh mà VDK cất bị lệch. Nếu kết thúc CT con mà vẫn ko lấy cái bạn ấn vào ra, thì nó sẽ chạy với 1 vị trí nào đó khác chứ ko phải dòng lệnh dưới dòng lệnh gọi chương trình con . Chú ý là SP cũng có giới hạn vì thế cất vào nhiều quá (đồng nghĩa gọi quá nhiều tầng CT con ) sẽ cũng làm treo

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X