Thông báo

Collapse
No announcement yet.

help!!! mô phỏng bị gặp lỗi. ( hệ điều hành thời gian thực)

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

  • help!!! mô phỏng bị gặp lỗi. ( hệ điều hành thời gian thực)

    e đang làm bài báo cáo vđk. viết code xong rùi nhưng khi mô phỏng bị lỗi không hiển thị đc led 7 thanh đếm từ 0000-9999 theo chương trình. bác nào giúp e cái vụ này vs. e gửi cả file mô phỏng và code mong bác nào giúp e nha.
    Attached Files

  • #2
    ko có code lấy gì giúp.keke

    Comment


    • #3
      [QUOTE=han_doi_1987;653246]ko có code lấy gì giúp.keke[/QUOT]
      code mình để trong file text.c bác mở notepad lên là đc. bác xem mình có bị sai chỗ nào ko mà mô phỏng 4 con led 7 thanh nó lại lại ko đc.

      Comment


      • #4
        hehe. bạn viết bằng c, mình po tay thui, mình chỉ bít asm thui

        Comment


        • #5
          Nguyên văn bởi han_doi_1987 Xem bài viết
          hehe. bạn viết bằng c, mình po tay thui, mình chỉ bít asm thui
          vậy bác biết pro nào có thể giúp mình ko. mình tím mãi mà ko ra. code thì ok rùi mà sao mô phỏng lại bị thế. ko thể hiểu đc

          Comment


          • #6
            code chả thấy main() nằm đâu.

            Comment


            • #7
              Nguyên văn bởi chung1608 Xem bài viết
              code chả thấy main() nằm đâu.
              mình viết bang hệ điều hành thời gian thực mà. ko cần phải void main. nhưng mình đang gặp lỗi trong lúc mô phỏng 4 con led 7. ko chạy đc . bác biết chỉnh lại giúp mình đc ko.

              Comment


              • #8
                Nguyên văn bởi dt3k12haui Xem bài viết
                e đang làm bài báo cáo vđk. viết code xong rùi nhưng khi mô phỏng bị lỗi không hiển thị đc led 7 thanh đếm từ 0000-9999 theo chương trình. bác nào giúp e cái vụ này vs. e gửi cả file mô phỏng và code mong bác nào giúp e nha.
                chương trình của bạn ko có hàm main. nó chạy làm sao được nhỉ???
                mà lắm while(1) như thế thì có ích gì ko? trong khi nó chạy trong cái while đó mà ko thoát ra được để thực hiện hàm tiếp thep
                Nguyễn Huy Biên - 01649 802 694
                gmail :

                Comment


                • #9
                  Nguyên văn bởi bienhou Xem bài viết
                  chương trình của bạn ko có hàm main. nó chạy làm sao được nhỉ???
                  mà lắm while(1) như thế thì có ích gì ko? trong khi nó chạy trong cái while đó mà ko thoát ra được để thực hiện hàm tiếp thep
                  chương trình này là viết bằng các hàm đc chạy song song vs nhau mà. ko như chương trình có hàm main() phải chạy lần lượt từng lệnh 1. chương trình này chạy song từng hàm và cái hàm os_creat_task_0 nó như là 1 cái hàm main(). bạn đọc lại sách vđk se có phần nói về cái này. mình vẫn chưa tìm ra đc tại sao mô phỏng nó lại ko chạy phần led 7 thanh. bác có biết ai pro có thể sửa giúp mình thì tốt wa.

                  Comment


                  • #10
                    Nguyên văn bởi dt3k12haui Xem bài viết
                    chương trình này là viết bằng các hàm đc chạy song song vs nhau mà. ko như chương trình có hàm main() phải chạy lần lượt từng lệnh 1. chương trình này chạy song từng hàm và cái hàm os_creat_task_0 nó như là 1 cái hàm main(). bạn đọc lại sách vđk se có phần nói về cái này. mình vẫn chưa tìm ra đc tại sao mô phỏng nó lại ko chạy phần led 7 thanh. bác có biết ai pro có thể sửa giúp mình thì tốt wa.
                    89 là VDK đơn nhân 1 bộ ALU chạy 1 lệnh làm sao có thể xử lý // nhiều lệnh đc, cấu trúc phần cứng ko cho phép. Bạn đọc trong sách nào thế, up lên mình tham khảo với.
                    Last edited by chung1608; 02-01-2013, 09:09.

                    Comment


                    • #11
                      Nguyên văn bởi dt3k12haui Xem bài viết
                      chương trình này là viết bằng các hàm đc chạy song song vs nhau mà. ko như chương trình có hàm main() phải chạy lần lượt từng lệnh 1. chương trình này chạy song từng hàm và cái hàm os_creat_task_0 nó như là 1 cái hàm main(). bạn đọc lại sách vđk se có phần nói về cái này. mình vẫn chưa tìm ra đc tại sao mô phỏng nó lại ko chạy phần led 7 thanh. bác có biết ai pro có thể sửa giúp mình thì tốt wa.
                      bạn ơi chơi sang quá. hàm này mình cũng chưa được tìm tới, nhưng cái đó tính sau đi. vấn đề của bạn là hiểu được thuật toán hiển thị ra led 7 đoạn đã rùi chơi cái đó sau. bạn xem mô phỏng và chuơng trình sau nhé:
                      trên sơ đồ mình giảm thiểu các linh kiện linh tinh đi sao cho đơn giản nhất.
                      Click image for larger version

Name:	quet4led 7 doan.jpg
Views:	1
Size:	99.9 KB
ID:	1372190

                      #include <REGX52.H>
                      sbit led1 = P2^0; //led 1
                      sbit led2 = P2^1; //led 2
                      sbit led3 = P2^2; //led 2
                      sbit led4 = P2^3; //led 2
                      // P1 là cổng xuất dữ liệu .
                      unsigned char a[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6 f,0};
                      void delay()
                      { // ham nay co do che la 500 us
                      TMOD=0x21;
                      TH0=0xfe;
                      TL0=0x0c;
                      TR0=1;
                      while(TF0==0)
                      {}
                      TR0=0;
                      TF0=0;
                      }
                      void hienthi(unsigned char n1,unsigned char n2,unsigned char n3,unsigned char n4,unsigned char time)
                      {
                      unsigned char n;
                      led1=0;led2=0;led3=0;led4=0;P1=0;
                      for(n=0;n<time;n++)
                      {
                      P1=a[n1];led1=1;delay();led1=0;P1=0; //
                      P1=a[n2];led2=1;delay();led2=0;P1=0; //
                      P1=a[n3];led3=1;delay();led3=0;P1=0; //
                      P1=a[n4];led4=1;delay();led4=0;P1=0; //
                      }
                      }
                      main()
                      { int m,nghin, tram, chuc, donvi; //
                      for( ; ; )
                      {
                      for(m=0;m<10000;m++)
                      {
                      nghin=m/1000;
                      tram=(m-nghin*1000)/100;
                      chuc=(m%100)/10;
                      donvi=(m%100)%10;
                      if(m<1000)
                      {
                      nghin=11;
                      if(m<100)
                      { tram=11;
                      if(m<10)
                      {chuc=11;}
                      }
                      }
                      hienthi(nghin,tram,chuc,donvi,1);
                      }
                      }
                      }
                      chỉ có tâm hồn là nơi duy nhất: có thể biến thiên đường thành địa ngục và ngược lại có thể biến địa ngục hóa thiên đường
                      Everything should be made as simple as possible, but not simpler

                      Comment


                      • #12
                        Nguyên văn bởi chung1608 Xem bài viết
                        89 là VDK đơn nhân 1 bộ ALU chạy 1 lệnh làm sao có thể xử lý // nhiều lệnh đc, cấu trúc phần cứng ko cho phép. Bạn đọc trong sách nào thế, up lên mình tham khảo với.
                        trong 8051 có hỗ trợ có thể thực hiện nhiều tác vụ cùng 1 lúc và đc dùng nhiều trong hệ điều hành thời gian thực. bạn đọc lại sách hoặc tìm hiểu trên mạng là có.đây là 1 phần rất hay bạn nên tìm hiểu thêm nhé.

                        Comment


                        • #13
                          Nguyên văn bởi daohuytien Xem bài viết
                          bạn ơi chơi sang quá. hàm này mình cũng chưa được tìm tới, nhưng cái đó tính sau đi. vấn đề của bạn là hiểu được thuật toán hiển thị ra led 7 đoạn đã rùi chơi cái đó sau. bạn xem mô phỏng và chuơng trình sau nhé:
                          trên sơ đồ mình giảm thiểu các linh kiện linh tinh đi sao cho đơn giản nhất.
                          thuật toán quét led 7 đoạn mình cũng hiểu đc 1 chút.thanks ban nha. mình thử láy cái ct này của bạn nhét vô cái bài của mình xem sao.

                          Comment


                          • #14
                            Nguyên văn bởi dt3k12haui Xem bài viết
                            trong 8051 có hỗ trợ có thể thực hiện nhiều tác vụ cùng 1 lúc và đc dùng nhiều trong hệ điều hành thời gian thực. bạn đọc lại sách hoặc tìm hiểu trên mạng là có.đây là 1 phần rất hay bạn nên tìm hiểu thêm nhé.
                            nó là 1 dạng mở rộng nguyên nhân ngắt, nhưng vì mình ko có file lib của rtx51 nên ko biết code nguồn asm ban đầu nó khai báo thế nào thì mới biết đc nó có chạy hay ko. Về nguyên lý thì nó cũng chỉ làm 1 công việc trong 1 thời điểm thôi.

                            Comment


                            • #15
                              Nguyên văn bởi dt3k12haui Xem bài viết
                              e đang làm bài báo cáo vđk. viết code xong rùi nhưng khi mô phỏng bị lỗi không hiển thị đc led 7 thanh đếm từ 0000-9999 theo chương trình. bác nào giúp e cái vụ này vs. e gửi cả file mô phỏng và code mong bác nào giúp e nha.
                              Trên thực tế, 8051 là vi xử lý đơn nhân, do đó 1 lúc sẽ không thể thực hiên được 2 lệnh, việc như bạn nói có thể thực thi song song cả 2 nhiệm vụ là không hoàn toán đúng.
                              RTOS cho phép CPU thực thi đa nhiệm với điều kiện mỗi nhiệm vụ sẽ được thực thi sau 1 khoảng thời gian đặt trước.
                              VD: Bạn có ý định chuyển 2 cái hộp từ A--> B với khoảng cách là 1m. có 2 cách giải quyết.
                              C1: chuyển hộp 1 từ A-->B sau đó chuyển hộp còn lại từ A-->B
                              C2: chuyển hộp 1 đi được 1cm sau đó quay lại chuyển hộp 2 1cm sau đó lại quay lại chuyển hộp 1....
                              kết quả của cách 2 sẽ cho thấy hai cái hộp sẽ đựoc đưa đến B cùng một lúc...
                              Thông thường RTOS của 8051 hay các vi điều khiển đều sử dụng ngắt để tạo ra 1 khoảng thời gian thực thi nhiệm vụ.
                              bài toán của bạn sẽ có 2 khoảng thời gian thực thi đó là: Thời gian đếm tăng giá trị và thời gian quét LED.

                              Comment

                              Về tác giả

                              Collapse

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

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

                              Collapse

                              Đang tải...
                              X