اطلاعیه

Collapse
No announcement yet.

مشکل در برنامه نویسی میکرو

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل در برنامه نویسی میکرو

    سلام
    می دونم سوالم خیلی پیش پا افتادست. اما من تازه کارم دیگه. یه برنامه دارم و می خوام mega32 رو پروگرام کنم. اما چندتا error تو برنامه میده که نمی دونم چه جوری درستش کنم. می شه لطفا کمکم کنید و بگید این چند خط رو چه جوری تصحیح کنم؟
    can't open #include file: 74595.c
    can't open #include file: keypad.c
    undefined symbol 'Rotate_Motor'
    undefined symbol 'Menu'


    #2
    پاسخ : مشکل در برنامه نویسی میکرو

    داداش برنامه ت رو بزار مشکل خاصی نیست
    برنامه رو بزار سه سوت حله
    هستم اگر می روم گر نروم نیستم

    دیدگاه


      #3
      پاسخ : مشکل در برنامه نویسی میکرو

      سلام
      دوست عزیز اگه یکم به زبان C اشنا باشی متوجه ارورها میشی
      دوتا ارور اول مربوط به اینه که دوتا کتابخونه رو فراخوانی کردی که سورس این کتابخونها رو نداری
      دوتا ارور دوم هم میگه که شما دوتا واژه و کلمه در برنامه وجود داره که باید تعریف بشه و به دستور یا رجیستری نسبت داده بشه
      موفق باشی

      دیدگاه


        #4
        پاسخ : مشکل در برنامه نویسی میکرو

        ممنون از جوابهاتون. می دونم این ارورها رو اما نمی دونم چه جوری تصحیح کنم، یعنی چه دستوری برای تعریف کردنشون بنویسم. :redface:
        ببخشید آقا یا خانم roohipatala متوجه نشدم منظورتون از برنامه رو بزار چیه؟ :icon_razz:

        دیدگاه


          #5
          پاسخ : مشکل در برنامه نویسی میکرو

          سلام.
          اول مشخص کنید این برنامه، برنامه چیه.
          شما این برنامه رو از جایی دانلود کردید؟

          این erorr ها برای اینه که کتابخانه keypad و Rotate_Moto و 74595 رو پیدا نمیکنه. شما باید اونورا رو در مسیر برنامتون کپی کنید.
          تشکر لازم نیست!

          دیدگاه


            #6
            پاسخ : مشکل در برنامه نویسی میکرو

            یکی از دوستانم نوشته ولی الان اینجا نیست که ازش بپرسم. اما سورس های keypad و 74595 وجود داره اما نمی دونم چرا باز نمی کنه. rotate_Motor و Menu رو هم نمی دونم باید با چه دستوری تعریف کنم. یعنی بعد از define چی باید بنویسم؟

            دیدگاه


              #7
              پاسخ : مشکل در برنامه نویسی میکرو

              نوشته اصلی توسط s.l
              ممنون از جوابهاتون. می دونم این ارورها رو اما نمی دونم چه جوری تصحیح کنم، یعنی چه دستوری برای تعریف کردنشون بنویسم. :redface:
              ببخشید آقا یا خانم roohipatala متوجه نشدم منظورتون از برنامه رو بزار چیه؟ :icon_razz:
              خوب خیلی ساده ست.
              برنامه ت رو کپی کن اینجا تا ببینیم مشکل از کجاست
              البته farzadjamali توضیح دادن. ولی مثثل اینکه کارت راه نیفتاد
              حالا برنامه رو کپی کن اینجا تا ببینیم چیکار می تونیم بکنیم
              هستم اگر می روم گر نروم نیستم

              دیدگاه


                #8
                پاسخ : مشکل در برنامه نویسی میکرو


                #include <mega32.h>
                #include <delay.h>
                #include <74595.c>
                #include <Step_5Phase_036dps.c>
                #include <stdio.h>

                // Alphanumeric LCD Module functions
                #asm
                .equ __lcd_port=0x1B ;PORTA
                #endasm
                #include <lcd.h>

                // Declare your global variables here
                unsigned char Func_Number=0;
                unsigned long int Step_Values[50];
                unsigned char Directions_Values[50];
                unsigned long int Speed_Values[50];


                #include <KeyPad.c>


                #define RXB8 1
                #define TXB8 0
                #define UPE 2
                #define OVR 3
                #define FE 4
                #define UDRE 5
                #define RXC 7

                #define FRAMING_ERROR (1<<FE)
                #define PARITY_ERROR (1<<UPE)
                #define DATA_OVERRUN (1<<OVR)
                #define DATA_REGISTER_EMPTY (1<<UDRE)
                #define RX_COMPLETE (1<<RXC)

                // USART Receiver buffer
                #define RX_BUFFER_SIZE 8
                char rx_buffer[RX_BUFFER_SIZE];

                #if RX_BUFFER_SIZE<256
                unsigned char rx_wr_index,rx_rd_index,rx_counter;
                #else
                unsigned int rx_wr_index,rx_rd_index,rx_counter;
                #endif

                // This flag is set on USART Receiver buffer overflow
                bit rx_buffer_overflow;

                // USART Receiver interrupt service routine
                interrupt [USART_RXC] void usart_rx_isr(void)
                {
                char status,data;
                status=UCSRA;
                data=UDR;
                if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
                {
                rx_buffer[rx_wr_index]=data;
                if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
                if (++rx_counter == RX_BUFFER_SIZE)
                {
                rx_counter=0;
                rx_buffer_overflow=1;
                };
                };
                }

                #ifndef _DEBUG_TERMINAL_IO_
                // Get a character from the USART Receiver buffer
                #define _ALTERNATE_GETCHAR_
                #pragma used+
                char getchar(void)
                {
                char data;
                while (rx_counter==0);
                data=rx_buffer[rx_rd_index];
                if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
                #asm("cli&quot
                --rx_counter;
                #asm("sei&quot
                return data;
                }
                #pragma used-
                #endif


                void main(void)
                {
                // Declare your local variables here
                unsigned char Counter;
                // Input/Output Ports initialization
                // Port A initialization
                // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
                // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
                PORTA=0x00;
                DDRA=0xFF;


                // Port B initialization
                // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
                // State7=T State6=T State5=T State4=T State3=0 State2=0 State1=0 State0=0
                PORTB=0x00;
                DDRB=0x0F;


                // Port C initialization
                // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
                // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
                PORTC=0x00;
                DDRC=0xFF;

                // Port D initialization
                // Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=In Func0=In
                // State7=P State6=P State5=P State4=P State3=0 State2=0 State1=T State0=T
                PORTD=0xF0;
                DDRD=0x0C;

                // Timer/Counter 0 initialization
                // Clock source: System Clock
                // Clock value: Timer 0 Stopped
                // Mode: Normal top=FFh
                // OC0 output: Disconnected
                TCCR0=0x00;
                TCNT0=0x00;
                OCR0=0x00;

                // Timer/Counter 1 initialization
                // Clock source: System Clock
                // Clock value: Timer 1 Stopped
                // Mode: Normal top=FFFFh
                // OC1A output: Discon.
                // OC1B output: Discon.
                // Noise Canceler: Off
                // Input Capture on Falling Edge
                // Timer 1 Overflow Interrupt: Off
                // Input Capture Interrupt: Off
                // Compare A Match Interrupt: Off
                // Compare B Match Interrupt: Off
                TCCR1A=0x00;
                TCCR1B=0x00;
                TCNT1H=0x00;
                TCNT1L=0x00;
                ICR1H=0x00;
                ICR1L=0x00;
                OCR1AH=0x00;
                OCR1AL=0x00;
                OCR1BH=0x00;
                OCR1BL=0x00;

                // Timer/Counter 2 initialization
                // Clock source: System Clock
                // Clock value: Timer 2 Stopped
                // Mode: Normal top=FFh
                // OC2 output: Disconnected
                ASSR=0x00;
                TCCR2=0x00;
                TCNT2=0x00;
                OCR2=0x00;

                // External Interrupt(s) initialization
                // INT0: Off
                // INT1: Off
                // INT2: Off
                MCUCR=0x00;
                MCUCSR=0x00;

                // Timer(s)/Counter(s) Interrupt(s) initialization
                TIMSK=0x00;

                // USART initialization
                // Communication Parameters: 8 Data, 1 Stop, No Parity
                // USART Receiver: On
                // USART Transmitter: On
                // USART Mode: Asynchronous
                // USART Baud rate: 9600
                UCSRA=0x00;
                UCSRB=0x98;
                UCSRC=0x86;
                UBRRH=0x00;
                UBRRL=0x67;

                // Analog Comparator initialization
                // Analog Comparator: Off
                // Analog Comparator Input Capture by Timer/Counter 1: Off
                ACSR=0x80;
                SFIOR=0x00;

                // Global enable interrupts
                #asm("sei&quot

                // LCD module initialization
                lcd_init(16);

                Rotate_Motor(10,Clock_Wise,1);
                Rotate_Motor(10,UnClock_Wise,1);
                delay_ms(1000);
                Menu();
                delay_ms(3000);

                for(Counter=0;Counter<Func_Number;Counter++)
                Rotate_Motor(Step_Values[Counter],Directions_Values[Counter],Speed_Values[Counter]);
                Load_595WithData(0,0,
                0,0,
                0,0,
                0,0);
                }

                دیدگاه


                  #9
                  پاسخ : مشکل در برنامه نویسی میکرو

                  برنامه رو کپی کردم. ممنون از کمکتون. فقط یه کم راست چین چپ چینش بهم ریخته. شرمنده.

                  دیدگاه


                    #10
                    پاسخ : مشکل در برنامه نویسی میکرو

                    سلام دادا.
                    از کدویژن ورژن بالا استفاده کن. به احتمال زیاد مشکلت حل میشه. اما اگه هم نشد برنامه های اون کتابخونه هارو توی برنامه اصلیت پیاده کن.
                    تشکر لازم نیست!

                    دیدگاه


                      #11
                      پاسخ : مشکل در برنامه نویسی میکرو

                      سلام
                      برای فراخوانی کتابخونه های keypad و 74595 و Step_5Phase_036dps به جای استفاده از <> از "" استفاده کن به احتمال زیاد مشکلت حل میشه
                      مثال:

                      l

                      #include "74595.c"
                      #include "Step_5Phase_036dps.c"
                      #include "KeyPad.c"

                      l

                      دیدگاه


                        #12
                        پاسخ : مشکل در برنامه نویسی میکرو

                        والا من اطلاعاتم کامل نیست
                        اما این برنامه ای که شما گذاشتین دو تابع menu و Rotate_Motor رو استفاده کردین که تعریف نکردیشون که خوب به احتمال زیاد توی کتابخونه هات باید باشه
                        حالا این کاری که آقا فرزاد گفت رو انجام بده
                        اگه نشد کل فایل های پروژه رو بزار من با کامپایلرم امتحان کنم (مال من آخرین ورژن کدویژنه) ببینم چی میشه
                        هستم اگر می روم گر نروم نیستم

                        دیدگاه

                        لطفا صبر کنید...
                        X