Thông báo

Collapse
No announcement yet.

Gọi mảng trong chương trình con của KeilC

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

  • Gọi mảng trong chương trình con của KeilC

    Mình có ví dụ này

    #include <AT89X51.H>
    #include <delay.h>

    unsigned char code value1[5]={0,1,2,3,4};
    unsigned char code value2[5]={5,6,7,8,9};

    void chuongtrinhcon (unsigned char biendem, unsigned char mang[])
    {
    unsigned char i;
    for(i=0;i<biendem;i++)
    {P1=mang[i];
    delay_ms[50];
    }
    }

    void main(void)
    {
    while(1)
    {
    chuongtrinhcon(5,value1[]);
    }
    }

    Mình muốn hỏi, nếu muốn truy xuất giá trị value1[] trong chuongtrinhcon, thì cái chỗ in đậm phải gọi thế nào?
    - Mạch nạp vdk 8051, AVR, PIC, EEPROM
    - Linh kiện điện tử cho sinh viên



  • #2
    Chỉ có cách là xây dựng hàm mới Tùy theo mục đích mà xây dựng hàm cho phù hợp
    vanduc0211@gmail.com

    Comment


    • #3
      Nguyên văn bởi viboyth.haui Xem bài viết
      Chỉ có cách là xây dựng hàm mới Tùy theo mục đích mà xây dựng hàm cho phù hợp
      Ý bạn là gọi hàm thế nào, mình ko rõ lắm, vì trong chương trình mình phải gọi rất nhiều mảng, nếu gọi hết thì bộ nhớ chip ko đủ, nên mình dùng cách đó để giảm bớt tài nguyên chip lại (ko nói tới việc thay chip khác nhé)
      Ý mình muốn hỏi là phải khai báo chương trình hoặc gọi đoạn chương trình con đó thế nào: chuongtrinhcon(5,value1[]);
      Hoặc mọi người có cách nào khác ko?
      Last edited by nguyen24; 25-10-2012, 22:13.
      - Mạch nạp vdk 8051, AVR, PIC, EEPROM
      - Linh kiện điện tử cho sinh viên


      Comment


      • #4
        ghi chuongtrinhcon(5,value1[5]); cũng ko chịu
        - Mạch nạp vdk 8051, AVR, PIC, EEPROM
        - Linh kiện điện tử cho sinh viên


        Comment


        • #5
          unsigned char code value1[5]={0,1,2,3,4};

          cái code bạn thêm trước value là có ý nghĩa gì vậy?

          Comment


          • #6
            mình chưa thấy ai truyền một mảng vào chương trình con bao giờ,bạn tìm các tài liệu c xem có hỗ trợ cái này không

            Comment


            • #7
              Nguyên văn bởi thegioi21mas Xem bài viết
              unsigned char code value1[5]={0,1,2,3,4};

              cái code bạn thêm trước value là có ý nghĩa gì vậy?
              Mình thêm chữ code có nghĩa là các giá trị sẽ được lưu trên flash, ko phải trên ram
              - Mạch nạp vdk 8051, AVR, PIC, EEPROM
              - Linh kiện điện tử cho sinh viên


              Comment


              • #8
                Nguyên văn bởi dtcn_112 Xem bài viết
                mình chưa thấy ai truyền một mảng vào chương trình con bao giờ,bạn tìm các tài liệu c xem có hỗ trợ cái này không
                Ý là trong hàm main mình có thể viết thế này:

                void main(void)
                {
                while(1)
                {
                unsigned char i;
                for(i=0;i<5;i++) {P1=value1[i]; delay_ms(200);}

                unsigned char i;
                for(i=0;i<5;i++) {P1=value2[i]; delay_ms(200);}

                ......
                }
                }

                Nếu làm vài chục cái, thì hơi tốn code của chip quá,
                ý mình muốn là chỉ cần gọi 1 chương trình con, gán 2 biến: 1 cái là i<biendem; 1 cái là tên của mảng (mảng này mình đã có ở trên rồi)
                - Mạch nạp vdk 8051, AVR, PIC, EEPROM
                - Linh kiện điện tử cho sinh viên


                Comment


                • #9
                  Với kiểu yêu cầu thế này,bạn có thể xây dựng 2 hàm,hàm thứ nhất xử lý với mảng cần đưa vào,còn hàm thứ hai thì chỉ việc gọi hàm đầu vào,nguyên tắc chung khi viết code của mình là như vậy
                  vanduc0211@gmail.com

                  Comment


                  • #10
                    cậu nói rõ yêu cầu xem...
                    ý cậu là cách khai báo gọi hàm chương trình con mà kiểu truyền tham số chứ k phải truyền tham trị hả.??? hay thế nào.??

                    Comment


                    • #11
                      Nguyên văn bởi viboyth.haui Xem bài viết
                      Với kiểu yêu cầu thế này,bạn có thể xây dựng 2 hàm,hàm thứ nhất xử lý với mảng cần đưa vào,còn hàm thứ hai thì chỉ việc gọi hàm đầu vào,nguyên tắc chung khi viết code của mình là như vậy
                      Bạn cho mình 1 ví dụ dc ko
                      Last edited by nguyen24; 29-10-2012, 16:00.
                      - Mạch nạp vdk 8051, AVR, PIC, EEPROM
                      - Linh kiện điện tử cho sinh viên


                      Comment


                      • #12
                        Nguyên văn bởi nguyen24 Xem bài viết
                        Bạn cho mình 1 ví dụ dc ko
                        Mình đang thử viết code demo cho led cube 8*8*8 dùng 8051: bạn xem nhé,mình viết theo ý của mình 888.C
                        vanduc0211@gmail.com

                        Comment


                        • #13
                          chuongtrinhcon(5,value1[]);
                          mình ko thấy ai lôi cả mảng vào ctc khi gọi kiểu kia cả, và theo mình là ko thể được. với các mảng khai báo dạng toàn cục thì nó đã có ý nghĩa trong cả chương trình chính lẫn chương trình con nên chả việc j phải lôi cả vào thế. ví dụ như cái đoạn code mà bạn viết
                          void main(void)
                          {
                          while(1)
                          {
                          unsigned char i;
                          for(i=0;i<5;i++) {P1=value1[i]; delay_ms(200);}

                          unsigned char i;
                          for(i=0;i<5;i++) {P1=value2[i]; delay_ms(200);}

                          ......
                          }
                          }
                          chả liên quan j tới cái mảng value1,value2 mà phải lôi nó vào trong cái biến của ctc. khai báo toàn cục thì cứ xài nó bt thôi
                          Website chính thức đổi địa chỉ website thành
                          Mời các bạn ghé thăm !!!

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X