اطلاعیه

Collapse
No announcement yet.

خطا در کدویژن

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

    خطا در کدویژن

    سلام
    یه برنامه نوشتم . دو تا خطا بصورت زیر داده . ( تا بحال از این خطا ها نداشتم !) . میشه بگید مفهومش چیه ؟ یعنی چکارباید بکنم ؟ هر کاری کردم حل نشد ؟
    1- Error: C:\...\02\u.c(62): must declare first in block
    2- Error: C:\...\02\u.c(140): function argument #1 of type 'int' is incompatible with required parameter of type 'unsigned char *'
    امروز زندگی را آغاز کن !
    امروز مخاطره کن !
    امروز کاری کن !
    نگذار که به آرامی بمیری !
    پابلو نرودا

    #2
    پاسخ : خطا در کدویژن

    خطای اول میگه که متغیری که تعریف کردید باید اول بلاک تعریف کنید یعنی بعد از }
    و خطای دوم میگه که متغیری که دارید به عنوان پارامتر ارسال میکنید از نوع int هست در صورتی که باید unsigned char باشه
    اینطوری بنویسید ( هر چند احتمال خطا درش وجود داره )
    f((unsigned char ) a,b);a

    دیدگاه


      #3
      پاسخ : خطا در کدویژن

      نوشته اصلی توسط SomeOne1230
      خطای اول میگه که متغیری که تعریف کردید باید اول بلاک تعریف کنید یعنی بعد از }
      و خطای دوم میگه که متغیری که دارید به عنوان پارامتر ارسال میکنید از نوع int هست در صورتی که باید unsigned char باشه
      اینطوری بنویسید ( هر چند احتمال خطا درش وجود داره )
      f((unsigned char ) a,b);a
      اولی درست بود . انجام دادم و مشکل حل شد ولی دومی رو وقتی unsigned char میزاری باز هم همون خطا رو می ده ! حتی در متن خطا هم هیچ تغییری نمیده ! میشه بیشتر راهنمایی کنید .
      امروز زندگی را آغاز کن !
      امروز مخاطره کن !
      امروز کاری کن !
      نگذار که به آرامی بمیری !
      پابلو نرودا

      دیدگاه


        #4
        پاسخ : خطا در کدویژن

        نوشته اصلی توسط arnic
        اولی درست بود . انجام دادم و مشکل حل شد ولی دومی رو وقتی unsigned char میزاری باز هم همون خطا رو می ده ! حتی در متن خطا هم هیچ تغییری نمیده ! میشه بیشتر راهنمایی کنید .
        امروز زندگی را آغاز کن !
        امروز مخاطره کن !
        امروز کاری کن !
        نگذار که به آرامی بمیری !
        پابلو نرودا

        دیدگاه


          #5
          پاسخ : خطا در کدویژن

          اگه حدسم درست باشه اشارگر هست
          باید متغیرتون رو به unsigned char تغییر بدید و یه علامت & قبلش بزاری

          دیدگاه


            #6
            پاسخ : خطا در کدویژن

            نوشته اصلی توسط SomeOne1230
            اگه حدسم درست باشه اشارگر هست
            باید متغیرتون رو به unsigned char تغییر بدید و یه علامت & قبلش بزاری
            من کاری که دارم می کنم اینه :
            // show LCD
            sprintf(k,"y= %d m",r);
            lcd_gotoxy(0,1);
            lcd_puts(k);
            من بار ها این کار رو کردم ولی هیچ وقت مشکلی پیش نیومده بود
            امروز زندگی را آغاز کن !
            امروز مخاطره کن !
            امروز کاری کن !
            نگذار که به آرامی بمیری !
            پابلو نرودا

            دیدگاه


              #7
              پاسخ : خطا در کدویژن

              char k[16]={0};
              sprintf(&k,"y=%d m",r);

              دیدگاه


                #8
                پاسخ : خطا در کدویژن

                سلام من یه برنامه توی کد ویژن نوشتم کامپایل میشه ولی واسه build کردنش خطا میده خطایی که میده اینه:
                Evaluation version code size limit exceeded
                اگه میشه به من بگید مشکل چیه بسیار ممنون میشم چون خیلی واجبه

                دیدگاه


                  #9
                  پاسخ : خطا در کدویژن

                  سلام فکر نکنم نیاز به اشاره گر باشه اگر چه اینطوری هم میشه
                  اگر برای puts یک متغیر رشته ای بگذارید مشکلتون حل

                  دیدگاه


                    #10
                    پاسخ : خطا در کدویژن

                    یکی به داده منه بیچاره برسه
                    نو کدویژن برنامه نوشتم همش ایراد میگیره
                    میگهError: E:\mobile\mahdi\Dar bazkon khaneh www.picpars.com\Code\rtc_ds1307.h(160), included from: Dar bazkon khaneh.c: too many arguments in function call

                    rtc_get_date(&week,&day,&month,&ye ar); تابعش اینه
                    نمیدونم چیکارش کنم

                    دیدگاه


                      #11
                      پاسخ : خطا در کدویژن

                      یه جا دیگه هم پرسیده بودین. شما موقع استفاده (فراخوانی یا همون call ) تابع 4 تا اشاره گر (آدرس ) بهش دادی که کامپایلر با توجه به اعلان تابع در هدر فایل میشگه این تعداد زیاده. یه نگاه به هدر فایل یا هلپ تابع بنداز

                      دیدگاه


                        #12
                        پاسخ : خطا در کدویژن

                        دوستان من این برنامه رو دارم ( خودم ننوشتم واقعیت خودمم هم دقیق نمی دونم چیه )می گن برنامه ضربان قلبه ، بگذریم ، این برنامه ارور زیر رو میده چه طوری می تونم ارور رو برطرف کنم ؟
                        Error: must declare first in block
                        /*******************************************************
                        This program was created by the
                        CodeWizardAVR V3.12 Advanced
                        Automatic Program Generator
                        © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
                        http://www.hpinfotech.com

                        Project :
                        Version :
                        Date : 16
                        Author :
                        Company :
                        Comments:


                        Chip type : ATmega32
                        Program type : Application
                        AVR Core Clock frequency: 8/000000 MHz
                        Memory model : Small
                        External RAM size : 0
                        Data Stack size : 512
                        *******************************************************/

                        #include <mega32.h>
                        // Alphanumeric LCD functions
                        #include <alcd.h>

                        #include <stdio.h>
                        #include <delay.h>
                        char Second=0;
                        char t;
                        char x;

                        // Timer1 output compare A interrupt service routine
                        interrupt [TIM1_COMPA] void timer1_compa_isr(void)
                        {
                        if(PINB.1==0)
                        {
                        t=60;
                        x=1;
                        }
                        else
                        {
                        t=15;
                        x=4;
                        }

                        Second++;
                        if (Second>t)
                        {
                        Second=0;

                        }

                        }

                        char display[24];

                        void HEART_BIT_C0UNTER_adult(void)
                        {
                        int Heartbeat;
                        while (1)
                        {
                        lcd_clear();
                        lcd_gotoxy(0,0);
                        sprintf(display,"Wait60Second:%d",Second);
                        lcd_puts(display);

                        if (Second>t)
                        {
                        lcd_clear();
                        Second=0;
                        Heartbeat=TCNT0*x;
                        TCCR0=0;
                        lcd_gotoxy(0,0);
                        sprintf(display,"ALL Heartbeat:%d",Heartbeat);
                        lcd_puts(display);
                        lcd_gotoxy(0,1);
                        sprintf(display,"Mood:Low");
                        if (Heartbeat<60)
                        {
                        lcd_puts(display);
                        }
                        sprintf(display,"Mood:Normal");
                        if (Heartbeat>=60&Heartbeat<100)
                        {
                        lcd_puts(display);}
                        sprintf(display,"Mood:High");
                        if (Heartbeat>=100)
                        {
                        lcd_puts(display);
                        }
                        break;
                        }
                        }
                        }
                        void HEART_BIT_C0UNTER_baby(void)
                        {
                        int Heartbeat;
                        while (1)
                        {
                        lcd_clear();
                        lcd_gotoxy(0,0);
                        sprintf(display,"Wait afew Second:%d",Second);
                        lcd_puts(display);
                        if (PINB.2==0)
                        {

                        if (Second>t)
                        {
                        lcd_clear();
                        Second=0;
                        Heartbeat=TCNT0*x;
                        lcd_gotoxy(0,0);
                        sprintf(display,"ALL Heartbeat:%d",Heartbeat);
                        lcd_puts(display);
                        lcd_gotoxy(0,1);
                        sprintf(display,"Mood:Low");
                        if (Heartbeat<100)
                        {
                        lcd_puts(display);
                        }
                        sprintf(display,"Mood:Normal");
                        if (Heartbeat>100&Heartbeat<120)
                        {
                        lcd_puts(display);
                        }
                        sprintf(display,"Mood:High");
                        if (Heartbeat>=120)
                        {
                        lcd_puts(display);
                        }
                        break;
                        }
                        }
                        }

                        void main(void)
                        {

                        // Declare your local variables here

                        // Input/Output Ports initialization
                        // Port A initialization
                        // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out
                        DDRA=(1<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1) | (1<<DDA0);
                        // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0
                        PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

                        // Port B initialization
                        // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                        DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);
                        // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=P Bit2=P Bit1=P Bit0=P
                        PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (1<<PORTB3) | (1<<PORTB2) | (1<<PORTB1) | (1<<PORTB0);

                        // Port C initialization
                        // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=Out Bit2=Out Bit1=Out Bit0=Out
                        DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (1<<DDC3) | (1<<DDC2) | (1<<DDC1) | (1<<DDC0);
                        // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=0 Bit2=0 Bit1=0 Bit0=0
                        PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

                        // Port D initialization
                        // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                        DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
                        // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                        PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

                        // Timer/Counter 0 initialization
                        // Clock source: T0 pin Rising Edge
                        // Mode: Normal top=0xFF
                        // OC0 output: Disconnected
                        TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (1<<CS02) | (1<<CS01) | (1<<CS00);
                        TCNT0=0x00;
                        OCR0=0x00;

                        // Timer/Counter 1 initialization
                        // Clock source: System Clock
                        // Clock value: 31/250 kHz
                        // Mode: CTC top=OCR1A
                        // OC1A output: Disconnected
                        // OC1B output: Disconnected
                        // Noise Canceler: Off
                        // Input Capture on Falling Edge
                        // Timer Period: 3/936 ms
                        // Timer1 Overflow Interrupt: Off
                        // Input Capture Interrupt: Off
                        // Compare A Match Interrupt: On
                        // Compare B Match Interrupt: Off
                        TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
                        TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (1<<CS12) | (0<<CS11) | (0<<CS10);
                        TCNT1H=0x00;
                        TCNT1L=0x00;
                        ICR1H=0x00;
                        ICR1L=0x00;
                        OCR1AH=0x00;
                        OCR1AL=0x7A;
                        OCR1BH=0x00;
                        OCR1BL=0x12;

                        // Timer/Counter 2 initialization
                        // Clock source: System Clock
                        // Clock value: Timer2 Stopped
                        // Mode: Normal top=0xFF
                        // OC2 output: Disconnected
                        ASSR=0<<AS2;
                        TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
                        TCNT2=0x00;
                        OCR2=0x00;

                        // Timer(s)/Counter(s) Interrupt(s) initialization
                        TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (1<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

                        // External Interrupt(s) initialization
                        // INT0: Off
                        // INT1: Off
                        // INT2: Off
                        MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
                        MCUCSR=(0<<ISC2);

                        // USART initialization
                        // USART disabled
                        UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

                        // Analog Comparator initialization
                        // Analog Comparator: Off
                        // The Analog Comparator's positive input is
                        // connected to the AIN0 pin
                        // The Analog Comparator's negative input is
                        // connected to the AIN1 pin
                        ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
                        SFIOR=(0<<ACME);

                        // ADC initialization
                        // ADC disabled
                        ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);

                        // SPI initialization
                        // SPI disabled
                        SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

                        // TWI initialization
                        // TWI disabled
                        TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

                        // Alphanumeric LCD initialization
                        // Connections are specified in the
                        // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                        // RS - PORTA Bit 0
                        // RD - PORTA Bit 1
                        // EN - PORTA Bit 2
                        // D4 - PORTA Bit 4
                        // D5 - PORTA Bit 5
                        // D6 - PORTA Bit 6
                        // D7 - PORTA Bit 7
                        // Characters/line: 24
                        lcd_init(24);

                        // Watchdog Timer initialization
                        // Watchdog Timer Prescaler: OSC/256k
                        WDTCR=(0<<WDTOE) | (1<<WDE) | (1<<WDP2) | (0<<WDP1) | (0<<WDP0);

                        // Global enable interrupts
                        #asm("sei")
                        lcd_clear();
                        lcd_gotoxy(0,0);
                        lcd_putsf(" Heartbeat");
                        lcd_gotoxy(0,1);
                        lcd_putsf(" <<START>>");
                        delay_ms(100);
                        while (1)
                        {
                        if (PINB.0==0)
                        {
                        TCNT0=0;
                        TCCR0=0x07;
                        lcd_clear();
                        if (PINB.2==0)
                        {
                        HEART_BIT_C0UNTER_baby();
                        }
                        else
                        {
                        HEART_BIT_C0UNTER_adult();
                        }
                        while(PINB.0==0)
                        lcd_clear();
                        lcd_gotoxy(0,0);
                        lcd_putsf(" <<Heartbeat>>");
                        lcd_gotoxy(0,1);
                        lcd_putsf(" <<START>>");

                        }
                        }
                        }
                        }
                        راستی وقتی روی ارور کلیک می کنم خط 138 رو نشون میده
                        جدیدترین ویرایش توسط AMIN GHAFFARI; ۲۱:۴۱ ۱۳۹۵/۰۳/۲۴.
                        خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                        [hr]

                        دیدگاه


                          #13
                          پاسخ : خطا در کدویژن

                          همون طور که دوست عزیزمون فرمودند این ارور میگه باید متغیر یا تابع خط 137 رو داخل { } تعریف کنی
                          الان 138 کجاست؟؟؟
                          موقع ارسال این پست چی فک میکردی؟؟؟

                          دیدگاه


                            #14
                            پاسخ : خطا در کدویژن

                            نوشته اصلی توسط hayahu نمایش پست ها
                            همون طور که دوست عزیزمون فرمودند این ارور میگه باید متغیر یا تابع خط 137 رو داخل { } تعریف کنی
                            ok درست شد ممنون
                            نوشته اصلی توسط hayahu نمایش پست ها
                            الان 138 کجاست؟؟؟
                            موقع ارسال این پست چی فک میکردی؟؟؟
                            زیاد جدی نگیر
                            ولی خطوط برنامه شماره دارن دیگه ندارن ؟! تو پستی که گذاشتم معلومه که
                            جدیدترین ویرایش توسط AMIN GHAFFARI; ۲۳:۳۶ ۱۳۹۵/۰۳/۲۴.
                            خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
                            [hr]

                            دیدگاه


                              #15
                              پاسخ : خطا در کدویژن

                              سلام مهندسین عزیز این تابع تو برنامه خطا گرفته می شه دلیلشه چی می تونه باشه؟
                              کد:
                              void alarm () {
                              	PORTB.3 = 1;
                              	PORTB.1 = 0;
                              	delay_ms(5000);
                              	PORTB.4 = 1;
                              	state = 1;
                              	PORTB.3 = 0;

                              دیدگاه

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