اطلاعیه

Collapse
No announcement yet.

مشکل در اسکن کیپد(CODEVISION)

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

    مشکل در اسکن کیپد(CODEVISION)

    سلام به همه رفقا :biggrin:
    آقایون خانوما! من برنامه ی اسکن صفحه کلید با استفاده از وقفه خارجی (منبع کتاب مهندس ره افروز) را نوشتم. البته به نظر من یه خط از برنامه این کتاب مشکل داره این خط:
    column=findcolumn(PINA & 0x0F);
    من این خط رو تغییر دادم:
    column=indcolumn(~(PINA & 0x0F)&0x0F);
    و با این تغییر توی پروتئوس جواب گرفتم اما در عمل فقط سطر یک رو خوب جواب می ده وقتی کلیدی از بقیه سطرها فشرده می شه lcd دو بار اون رو نشون می ده و بعد از ان هم دو خط موازی چاپ می کنه. :cry: :cry:
    در ضمن من اینتراپت رو حساس به لبه پایین رونده تنظیم کردم.
    اینم فایل پروتئوس و کدویژن برنامه:
    http://www.persianupload.com/6036157
    من به کمک شما به شدت نیازمندم!
    از همکاری و توجه شما بی نهایت سپاس گزارم.
    همیشه بزرگوار تر از آن باشید که برنجید
    و نجیب تر از آن باشید که برنجانید!

    #2
    پاسخ : مشکل در اسکن کیپد(CODEVISION)

    :sad: :cry2:
    کسی نبود؟؟؟
    :cry2: :cry2: :cry2:
    همیشه بزرگوار تر از آن باشید که برنجید
    و نجیب تر از آن باشید که برنجانید!

    دیدگاه


      #3
      پاسخ : مشکل در اسکن کیپد(CODEVISION)

      دوستان عزیز مشکل حل شد! :wow: :applause:
      تنها نکته اینه که باید وقفه رو به صورت حساس به سطح صفر تنظیم کرد! :applause:
      با تشکر
      همیشه بزرگوار تر از آن باشید که برنجید
      و نجیب تر از آن باشید که برنجانید!

      دیدگاه


        #4
        پاسخ : مشکل در اسکن کیپد(CODEVISION)

        نوشته اصلی توسط jaafary1 نمایش پست ها
        دوستان عزیز مشکل حل شد! :wow: :applause:
        تنها نکته اینه که باید وقفه رو به صورت حساس به سطح صفر تنظیم کرد! :applause:
        با تشکر
        من یک تابع کیپد دارم که با وقفه اونو راه انداختم.....ولی اگر داخل whileبرنامه اونو فراخوانی نکنم وقفه کار نمیکنه....من میخوام تابع در while فراخوانی نشه..باید چی کار کنم؟
        [FONT=Yekan]flash char shift[4]={0xFE,0xFd,0xFb,0xF7};[/FONT]flash char layout[16]={7,8,9,40,
        4,5,6,41,
        1,2,3,42,
        43,0,44,45};
        char keypad()
        {
        int row=0,column=-1,position=0,k;
        while(1)
        {
        for(row=0;row<4;row++)
        {
        PORTC=shift[row];
        if(C0 == 0){column=0;}
        if(C1 == 0){column=1;}
        if(C2 == 0){column=2;}
        if(C3 == 0){column=3;}

        if(column!=-1)
        {
        position=(row*4)+column;
        while(C0 == 0){}
        while(C1 == 0){}
        while(C2 == 0){}
        while(C3 == 0){}
        column=-1;
        delay_ms(50);
        k=layout[position];
        return k;

        };
        }
        }



        }






        interrupt [EXT_INT0] void ext_int0_isr(void)
        {
        key=keypad();
        if(key!=0xff){
        if((key>=0)&&(key<=9)){
        itoa(key,key_str);
        strcat(save_str,key_str);
        toole_addad=strlen(save_str);
        if(toole_addad>4){
        *save_str=NULL;
        lcd_clear();

        }
        addade_taiedshode=atoi(save_str);
        lcd_clear();
        lcd_gotoxy(0,0);
        sprintf(buffer_lcd,"pass= %d",addade_taiedshode);
        lcd_puts(buffer_lcd);
        } [FONT=Yekan] [/FONT]
        } [FONT=Yekan] [/FONT]
        }


        while (1)
        {
        keypad();

        }
        }

        دیدگاه

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