Thông báo

Collapse
No announcement yet.

Giúp đỡ biên dịch code C cho robot dò đường

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

  • Giúp đỡ biên dịch code C cho robot dò đường

    Em tìm kiếm được bài toán cho robot dò đường em đã sửa và biên dịch thử nhưng vẫn có một lỗi. Mong các anh em biên dịch giúp em ạ. Em chân thành cảm ơn

    Đây là code:


    Code:
    #include <reg51.h>
    #include <stdio.h>
    
    
    
    unsigned char speedleft,speedright;
    unsigned char high,low,flag,time;
    
    main()
        {
               P1=0x40;
               P3=0xff;
               high = 80;
               low = 30;
               flag = 0;
               time = 50;
               Start();
               while(1) {
               P3|= 0x0f;
               Run();
               }
               }
    
    Start()
               {
               char exit,key;
               exit =1;
               while(exit)
               {
               key = P1;
               if((key & 0x40)==0) exit=0;
               }
               } 
    
    Run()
               {
               char sensors;
               sensors = (P3 &=0x0f);
    
     if((sensors & 0x01)==0) {
               TurnRight();
               flag = 1; }
    
     else if((sensors & 0x08)==0) {
               TurnLeft();
               flag = 2; }
               else if(sensors == 0x09) {
               Forward(high);
               flag = 0; }
    
     else if(((sensors==0x0b)||(sensors==0x0d))&&(flag==0))
               Forward(low);
    
    }
    
    Forward(char speed)
               {
               P1=0x64;
               speedright = speed+10;
               speedleft = speed;
               delay(time);
               }
    
    TurnRight()
               {
               P1=0x68;
               speedright = low+5;
               speedleft = low;
               delay(time);
               }
    
    TurnLeft()
               {
               P1=0x54;
               speedright = low+5;
               speedleft = low;
               delay(time);
               }
    
    Reverse(char speed)
               {
               P1=0x58;
               speedright = speed;
               speedleft = speed+5;
               delay(time);
               }

    Đây là lỗi nó báo khi mình biên dịch:


    Code:
    D:\ROBOT_TEST.C(20): warning C206: 'Run': missing function-prototype
    D:\ROBOT_TEST.C(41): warning C206: 'TurnRight': missing function-prototype
    D:\ROBOT_TEST.C(45): warning C206: 'TurnLeft': missing function-prototype
    D:\ROBOT_TEST.C(48): warning C206: 'Forward': missing function-prototype
    D:\ROBOT_TEST.C(48): error C267: 'Forward': requires ANSI-style prototype

  • #2
    Bạn coppy ba chương trình con Run, TurnLeft và TurnRight lên trước các chương trình chính gọi nó, hoặc khai báo Funtion prototype là hết. MCU thực hiện các lệnh theo thứ tự từ trên xuống dưới, chương trình main bạn chưa khai báo hàm con nên nó không biết đường nào mà gọi. Bạn nên xem kĩ lại sách VDK, mình nghĩ bạn chưa hiểu bản chất của MCU.

    Comment


    • #3
      Bạn coppy ba chương trình con Run, TurnLeft và TurnRight lên trước các chương trình chính gọi nó, hoặc khai báo Funtion prototype trước chương trình main như sau:
      void Run();
      void TurnLeft();
      void TurnRight();
      là hết. MCU thực hiện các lệnh theo thứ tự từ trên xuống dưới, nó đọc chương trình main bạn chưa khai báo hàm con nên nó không biết đường nào mà gọi. Bạn nên xem kĩ lại sách VDK, mình nghĩ bạn chưa hiểu bản chất của MCU.

      Comment


      • #4
        nghĩ cũng lạ, hôm trước mình nhớ có đoạn code nào ngta viết ngược như thế vẫn chạy
        TamPhieuLuuKy@yahoo.com
        092 2838 712 --->>

        Comment


        • #5
          Vậy thì trước hàm main chắc chắn người ta đã khai báo prototype rồi bác ạ. Nếu như không khai báo mà chạy được thì em pó tay.

          Comment


          • #6
            Nguyên văn bởi Đức_CDT Xem bài viết
            mình nghĩ bạn chưa hiểu bản chất của MCU.
            Cảm ơn bạn, đúng là mình chưa hiểu bản chất vấn đề.. Mình mới tìm hiểu thôi
            Cho mình hỏi là nó báo lỗi thêm cái này

            Code:
            D:\ROBOT_TEST.C(14): warning C206: 'delay': missing function-prototype
            D:\ROBOT_TEST.C(14): error C267: 'delay': requires ANSI-style prototype
            cái hàm delay này mình ko thấy có trong chuơng trình bạn ạ. Vậy sửa lỗi này như thế nào?

            Comment


            • #7
              thức đêm post bài để mọi người giúp ạ

              Comment


              • #8
                up up up mọi người giúp mình với ạ

                Comment


                • #9
                  bạn nhấp đúp vào lỗi cho con trỏ nhảy đấn vị trí lõi xem, hoặc là bạn chưa khai báo thạch anh để dùng ham delay hoặc hàm delay của bạn sai cú pháp, nếu MOLAP thì __delay_ms(100); CCS thì delay_ms(100); HT hình như mình nhớ là delay_ms(100); lun
                  TamPhieuLuuKy@yahoo.com
                  092 2838 712 --->>

                  Comment


                  • #10
                    Code của mình ở phía trên bạn xem giúp mình với ạ. Mọi người biết giúp mình với

                    Comment


                    • #11
                      Cho mình hỏi sử dụng robot dò đường với 89c2051 và thạch anh 12Mhz (11,0592) thì sử dụng delay time là bao nhiêu thì hợp lý ạ

                      Comment

                      Về tác giả

                      Collapse

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

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

                      Collapse

                      • bqviet
                        Trả lời cho Đấu tắt điện cho máy tính bảng
                        bởi bqviet
                        Bqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
                        06-12-2025, 17:17
                      • nguyendinhvan
                        Trả lời cho Xin hỏi về mạch thu FM/AM trong catsette
                        bởi nguyendinhvan
                        Theo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
                        05-12-2025, 19:59
                      • afrendly
                        Trả lời cho Đấu tắt điện cho máy tính bảng
                        bởi afrendly
                        Có vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
                        04-12-2025, 01:27
                      • nick22
                        Trả lời cho Máy điện châm ?
                        bởi nick22
                        Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
                        01-12-2025, 13:23
                      Đang tải...
                      X