سلام خدمت دوستان
من یه برنامه کی÷د دارم که میخوام تبدیل به ماشین حسابش کنم
فعلا تنها کاری کردم اینه که قسمتی رو که اعداد رو میگیره درست کردم به این صورت که اعداد رو که یکی یکی وارد میکنیم عدد چند رقمی نمایش بده اما مشکل اینه که دونه دونه اعداد رو نمایش میده اما وقتی یه متغیر جدیدی تعریف کردم که بیاد اعداد رو توی توان 10شون ضرب کنه و با هم جمع کنه و عدد چند رقمی بهوم بده هیچی نشون نمیده این کد برناممه اگر میشه بهش یه نگاه بندازید قسمت کامنت دار قسمتیه که اجرا نمیشه
unsigned int keys[4][4] = {{1,4,7,10},{2,5,8,0},{3,6,9,11},{12,13,14,15}} ;
من یه برنامه کی÷د دارم که میخوام تبدیل به ماشین حسابش کنم
فعلا تنها کاری کردم اینه که قسمتی رو که اعداد رو میگیره درست کردم به این صورت که اعداد رو که یکی یکی وارد میکنیم عدد چند رقمی نمایش بده اما مشکل اینه که دونه دونه اعداد رو نمایش میده اما وقتی یه متغیر جدیدی تعریف کردم که بیاد اعداد رو توی توان 10شون ضرب کنه و با هم جمع کنه و عدد چند رقمی بهوم بده هیچی نشون نمیده این کد برناممه اگر میشه بهش یه نگاه بندازید قسمت کامنت دار قسمتیه که اجرا نمیشه
unsigned int keys[4][4] = {{1,4,7,10},{2,5,8,0},{3,6,9,11},{12,13,14,15}} ;
کد:
while (1) { unsigned char data,h,a[40],temp; int i,power=-1,ent_num=0,num_key[40]; //num_key[power] = 0xff ; do { power++; num_key[power] = 0xff ; delay_ms(1000); while(num_key[power] == 0xff) { temp = 0x70; h = 0x80 ; for(i = 0 ; i < 4 ; i++) { PORTA = temp ; delay_ms(10) ; data =PINA & 0x0f ; if(data == 0x07) num_key[power] = keys[0][i] ; if(data == 0x0b) num_key[power] = keys[1][i] ; if(data == 0x0d) num_key[power] = keys[2][i] ; if(data == 0x0e) num_key[power] = keys[3][i] ; temp =(long) 255-(h/(pow(2,i+1))) ; } /*if(num_key[power] != 0xff) { break ; }*/ } delay_ms(1000); lcd_clear(); lcd_gotoxy(0,0); sprintf(a,"key=%d",num_key[power]); lcd_puts(a); } while(num_key[power]!= 10); //delay_ms(1000); for(i=0;i<power;i++) //az inja dige kar nemikone { ent_num+=num_key[i]*(pow(10,(power-1-i))); } delay_ms(300); lcd_clear(); lcd_gotoxy(0,0); sprintf(a,"key=%d",ent_num); lcd_puts(a); delay_ms(3000); lcd_clear();
دیدگاه