NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3822 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 4 از 4

موضوع: ایراد چندتا از ماکرو های برنامه!

  1. #1
    کاربر فعال r0b0 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امید عزیزی
    نوشته ها
    140
    تشکر
    205
    تشکر شده 198 بار در 80 پست

    پیش فرض ایراد چندتا از ماکرو های برنامه!

    سلام به همگی
    دوستان تو برنامه ای که گذاشتم از این چندتا ماکرو، warning میگیره
    کد:
    #define RXB8 1
    #define TXB8 0
    #define UPE 2
    #define OVR 3
    #define FE 4
    #define UDRE 5
    #define RXC 7
    البته برنامه کامپایل میشه ولی میخوام علت warning ها رو بدونم

    کد:
    #include <mega32.h>
    #include <delay.h>
    #include <stdlib.h>
    #asm
       .equ __lcd_port=0x15 ;PORTC
    #endasm
    #include <lcd.h>
    
    bit receiver=0,transmit=0;
    
    #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)
    
    #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
    
    bit rx_buffer_overflow;
    
    interrupt [USART_RXC] void usart_rx_isr(void)
    {
    char status,data;
    status=UCSRA;
    data=UDR;
    
    receiver=1;
    
    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_
    #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")
    --rx_counter;
    #asm("sei")
    return data;
    }
    #pragma used-
    #endif
    
    #include <stdio.h>
    #define ADC_VREF_TYPE 0x00
    
    unsigned int read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input | ADC_VREF_TYPE;
    ADCSRA|=0x40;
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCW;
    }
    
    void main(void)
    {
    int i;
    char str[20],str1[20],data_in;
    float temp;
    
    UCSRA=0x00;
    UCSRB=0x98;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x47;
    
    ADMUX=ADC_VREF_TYPE;
    ADCSRA=0x87;
    
    lcd_init(16);
    
    #asm("sei")
    
    while (1)
      {
          temp=read_adc(0);
          temp=(temp*100/1024);
          ftoa(temp,1,str);
          lcd_clear();
          lcd_gotoxy(0,0);
          sprintf(str1,"temp:%s\xdfC\r",str);
          lcd_puts(str1);
          delay_ms(100);
          if (receiver==1)
           {
           data_in=getchar();
           printf("%c\r",data_in);
           if (data_in==13);
            {
            transmit==1;
            }
           if (transmit==1)
            {
            for (i=0;i<10;i++)
                {
                delay_ms(1000);
                puts(str1);
                }
            if (i>=10)
                {
                receiver=0;
                transmit=0;
                }
            }
           }
      }
    };
    سپاس

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  3. #2
    مدیرکل انجمنها agape آواتار ها
    تاریخ عضویت
    Feb 2009
    نام
    Zeus
    نوشته ها
    1,235
    تشکر
    139
    تشکر شده 2,209 بار در 846 پست

    پیش فرض

    خوب دایی جان چه اخطاری میده !
    کامپایلرت چی هست

  4. تشکرها از این نوشته :


  5. #3
    کاربر فعال r0b0 آواتار ها
    تاریخ عضویت
    Jan 2013
    نام
    امید عزیزی
    نوشته ها
    140
    تشکر
    205
    تشکر شده 198 بار در 80 پست

    پیش فرض

    محیط کدویژن
    هشدار میده که ماکروها تعریف نشدن
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: macro.jpg
مشاهده: 16
حجم: 113.6 کیلو بایت  

  6. #4
    کاربر فعال sarab1 آواتار ها
    تاریخ عضویت
    Jul 2008
    نوشته ها
    329
    تشکر
    139
    تشکر شده 172 بار در 100 پست

    پیش فرض

    عمو جان این warning ها به خاطر اینه که ماکرو ها رو به احتمال زیاد در lcd.h هم تعریف کردی و دوباره کاری شده!!!! و توی لیست warning ها هم نوشته که redefine شدند!!

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •