اطلاعیه

Collapse
No announcement yet.

یه مشکل کوچیک!

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    یه مشکل کوچیک!

    سلام
    بروبچه های اینکاره ممکنه یه نگاه به این برنامه بندازن؟ :redface:
    این اولین برنامه ای هست که با codevision می نویسم! 2 تا error میده که سر در نمیارم چیه :sad: کار برنامه هم اینه که یک کارکتر رو از keypad می گیره و روی lcd نمایش میده ( یعنی احتمالا این کار رو می کنه! )

    #include <mega16.h>
    #asm
    .equ __lcd_port=0x1B ;PORTA
    #endasm
    #include <lcd.h>
    #include <delay.h>
    #include <sleep.h>
    char key;
    char keycode [4][4]={{'7','8','9',&#039 ;/'},{'4','5','6' ,'*'},{'1','2',&#039 ;3','-'},{'c','0','=' ,'+'}};
    char findrow (char input)
    {
    switch (input)
    {
    case 0x0E: return 0;
    break;
    case 0x0D: return 1;
    break;
    case 0x0B: return 2;
    break;
    case 0x07: return 3;
    break;
    }
    }


    interrupt [EXT_INT0] void ext_int0_isr(void)
    {

    char row,cul;
    row=findrow(PINC & 0x0F);
    delay_ms(20);
    PORTC=0xEF;
    if((PINC & 0x0F)!=0x0F)
    row=0;
    else
    {
    PORTC=0x0D;
    if((PINC & 0x0F)!=0x0F)
    row=1;
    else
    {
    PORTC=0x0B;
    if((PINC & 0x0F)!=0x0F)
    row=2;
    else
    {
    PORTC=0x07;
    if((PINC & 0x0F)!=0x0F)
    row=3;
    }
    }
    key=keycode[row][cul];
    lcd_clear();
    lcd_putchar (key);
    }

    void main(void)
    {
    PORTA=0x00;
    DDRA=0x00;

    PORTC=0x0F;
    DDRC=0xF0;

    GICR|=0x40;
    MCUCR=0x00;
    MCUCSR=0x00;
    GIFR=0x40;

    TIMSK=0x00;

    ACSR=0x80;
    SFIOR=0x00;

    lcd_init(16);

    #asm("sei&quot
    sleep_enable();

    while (1)
    {
    powerdown();
    }
    }

    البته اینجا یه خورده اول و آخر برنامه به هم ریخته ( تو codevision درست نوشتم ) . error ها هم اینا هستن:

    (57):must declare first in block
    (84):the program has no 'main' function

    #2
    پاسخ : یه مشکل کوچیک!

    سلام
    بالای void main(void) یدونه { بذار مشکل حل میشه!
    یعنی یکی از اینها { رو نبستی!
    موفق باشی
    در دیر مغان آمد یارم قدحی در دست
    مست از می می خواران از نرگس مستش مست

    دیدگاه


      #3
      پاسخ : یه مشکل کوچیک!

      نوشته اصلی توسط احسان محمودی
      سلام
      بروبچه های اینکاره ممکنه یه نگاه به این برنامه بندازن؟ :redface:
      این اولین برنامه ای هست که با codevision می نویسم! 2 تا error میده که سر در نمیارم چیه :sad: کار برنامه هم اینه که یک کارکتر رو از keypad می گیره و روی lcd نمایش میده ( یعنی احتمالا این کار رو می کنه! )

      #include <mega16.h>
      #asm
      .equ __lcd_port=0x1B ;PORTA
      #endasm
      #include <lcd.h>
      #include <delay.h>
      #include <sleep.h>
      char key;
      char keycode [4][4]={{'7','8','9',&#039 ;/'},{'4','5','6' ,'*'},{'1','2',&#039 ;3','-'},{'c','0','=' ,'+'}};
      char findrow (char input)
      {
      switch (input)
      {
      case 0x0E: return 0;
      break;
      case 0x0D: return 1;
      break;
      case 0x0B: return 2;
      break;
      case 0x07: return 3;
      break;
      }
      }


      interrupt [EXT_INT0] void ext_int0_isr(void)
      {

      char row,cul;
      row=findrow(PINC & 0x0F);
      delay_ms(20);
      PORTC=0xEF;
      if((PINC & 0x0F)!=0x0F)
      row=0;
      else
      {
      PORTC=0x0D;
      if((PINC & 0x0F)!=0x0F)
      row=1;
      else
      {
      PORTC=0x0B;
      if((PINC & 0x0F)!=0x0F)
      row=2;
      else
      {
      PORTC=0x07;
      if((PINC & 0x0F)!=0x0F)
      row=3;
      }
      }
      key=keycode[row][cul];
      lcd_clear();
      lcd_putchar (key);
      }

      void main(void)
      {
      PORTA=0x00;
      DDRA=0x00;

      PORTC=0x0F;
      DDRC=0xF0;

      GICR|=0x40;
      MCUCR=0x00;
      MCUCSR=0x00;
      GIFR=0x40;

      TIMSK=0x00;

      ACSR=0x80;
      SFIOR=0x00;

      lcd_init(16);

      #asm("sei&quot
      sleep_enable();

      while (1)
      {
      powerdown();
      }
      }

      البته اینجا یه خورده اول و آخر برنامه به هم ریخته ( تو codevision درست نوشتم ) . error ها هم اینا هستن:

      (57):must declare first in block
      (84):the program has no 'main' function
      salam:
      man ye moddatiyeh mikham ba atiny13a mode powerdown ro rahandazi konam.vali natunestam.tu in barnameh vaghti register MCUCR meghdar dehi nashodeh che shekliyeh ke mode sleep kar mikoneh!!!!!!!!!!!!!!!!!!!!1

      دیدگاه

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