اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام
    من یه برنامه ای با کدویژن نوشتم، وقتی میرم قسمت project>make، کدویژن اخطار میده. اخطارش اینه:
    کد:
    L1095: Invalid directive: '.equ_lcd_port'
    و این کدی هست که توی کدویژن به کار بردم:
    کد:
    l#include <mega32.h>
       #include <stdio.h>
       #include <lcd.h>
       #include <delay.h>
    #asm 
    .equ_lcd_port=0x1B ;PORT A
    #endasm
    به نظرتون مشکل از کجاست؟

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

    فکر میکنم مشکل اینه که __lcd_port باید قبل از اینکلود کردن lcd.h تعریف بشه:
    کد:
        #asm
        .equ __lcd_port=0x18
      #endasm
      #include <lcd.h>


    توضیحات بیشتر رو میتونید تو همون lcd.h در شاخه inc در محل نصب کدویژنتون ببینید

    دیدگاه


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

      من تازه شروع کردم به یادگیری و زیاد نمی دونم
      ولی با توجه به این که شما پورت A رو برای LCD انتخاب کردید
      شاید دارید از Mega8 استفاده می کنید که پورت A نداره و از B شروع می شه

      البته اگه اشتباه گفتم دوستان درستش رو بگن تا ما هم یاد بگیریم
      ندن ساقی صفا اهلی ، غم دنیادن آیریلماز ** گتیر دولدور گینه جامی ، بالیخ دریادن آیریلماز
      غنیمتدیر بو دم ساقی ، گتیر دولدور گنه جامی ** جهاندا رسمدور عاشق ، می و مینادن آیریلماز

      دیدگاه


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

        نوشته اصلی توسط ele_sav
        من تازه شروع کردم به یادگیری و زیاد نمی دونم
        ولی با توجه به این که شما پورت A رو برای LCD انتخاب کردید
        شاید دارید از Mega8 استفاده می کنید که پورت A نداره و از B شروع می شه

        البته اگه اشتباه گفتم دوستان درستش رو بگن تا ما هم یاد بگیریم
        نه از mega32 استفاده میکنم.

        فکر میکنم مشکل اینه که __lcd_port باید قبل از اینکلود کردن lcd.h تعریف بشه:
        اتفاقا اول هم همینجوری بود ولی باز اخطار میداد! دقیقا همون اخطار را میده.

        دیدگاه


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

          آقا مرسی. این مشکل حل شد. فقط الان یه مشکل جدید دارم.

          دارم رو این برنامه کار میکنم:
          برنامه ای که دیوتی سایکل و دوره تناوب پالس ورودی(با فرکانسی در محدوده 1 تا 4 کیلوهرتز) را بر روی ال سی دی نمایش دهد.

          برنامه اینه:

          کد:
          #include<mega32.h>
             #include <stdio.h>
             
             #include <delay.h>
          #asm
            .equ __lcd_port=0x1B ;PORTA
          #endasm
          #include <lcd.h>
          
           #include <LCD.h>
          float T1=0.0,T2=0.0,DC=0,tp=0.0;
          bit control=0;
          interrupt [EXT_INT0] void ext_int0_isr(void)
          {
          TCCR1B=0x00;
          if (control==1){
          T2=TCNT1;
          T2+=50;
          TCNT1=0;
          MCUCR=0x02;
          control=1;
          }
          else {
          T1=TCNT1;
          T1+=50;
          TCNT1=0;
          MCUCR=0x03;  
          control=1;
          }
          TCCR1B=0x02;
          }
          void main (){
          char lcd_buff1[16],lcd_buff2[16];
          lcd_init(16);
          PORTD=0x04;
          DDRD=0X00;
          TCNT1=0x0000;
          GICR|=0x40;
          while(1){
          #asm ("sei")
          delay_ms(200);
          lcd_clear();
          #asm ("sei")
          TCCR1B=0x00;
          TCNT1=0;
          DC=(T1/(T1+T2)*100);
          tp=(T1+T2);
          sprintf(lcd_buff1,"Duty cycle=%%%2.0f",DC);
          lcd_gotoxy(0,0);
          lcd_puts(lcd_buff1);
          sprintf(lcd_buff2, "Time=%4.1fus",tp);
          lcd_puts(lcd_buff2);
          };
          }

          ولی وقتی توی پروتئوس شبیه سازیش میکن جواب نمیده.
          این عکسی هست که از پروتئوس گرفتم:



          به نظرتون مشکل چیه؟

          دیدگاه

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