سلام به همگی
این برنامه رو ببینید:
این برنامه یه ماشین حساب مهندسی هست که الان دارم روش کار میکنم.
میخوام کلید ها رو با switch case بخونم ولی نمیشه...یعنی تو سوویچ عبارت PIND رو بذارم و مقادیر باینری مثل 0b1101111 رو چک کنم ولی کار نمیکنه و تنها با همین روش ابتدایی کار میکنه...چیکار کنم..؟
یه سوال دیگه...چجوری میتونم کاری کنم که مثلا * بعدی روی اولی overwrite نشه و بلافاصله بعدش نوشته بشه و سومی هم بعد از آن...؟
یعنی اگر کلید * رو یکبار بزنیم بشه :*
دوبار بزنیم بشه : **
و سه بار بزنیم بشه :***
سپاس.
این برنامه رو ببینید:
کد:
#include <mega64.h> #include <glcd.h> #include <font5x7.h> #include <delay.h> void main(void) { // Declare your local variables here // Graphic LCD initialization data GLCDINIT_t glcd_init_data; PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; PORTE=0x00; DDRE=0x00; PORTF=0x00; DDRF=0x00; PORTG=0x00; DDRG=0x00; // Graphic LCD initialization // The KS0108 connections are specified in the // Project|Configure|C Compiler|Libraries|Graphic LCD menu: // DB0 - PORTA Bit 0 // DB1 - PORTA Bit 1 // DB2 - PORTA Bit 2 // DB3 - PORTA Bit 3 // DB4 - PORTA Bit 4 // DB5 - PORTA Bit 5 // DB6 - PORTA Bit 6 // DB7 - PORTA Bit 7 // E - PORTC Bit 0 // RD /WR - PORTC Bit 1 // RS - PORTC Bit 2 // /RST - PORTC Bit 3 // CS1 - PORTC Bit 4 // CS2 - PORTC Bit 5 // Specify the current font for displaying text glcd_init_data.font=font5x7; glcd_init(&glcd_init_data); glcd_outtextxy(1,20,"SCIENTIFIC CALCULATOR"); delay_ms(500); glcd_clear(); while (1) { if(PIND.0==0) { glcd_outtextxy(0,5,"."); } if(PIND.1==0){ glcd_outtextxy(0,5,"/"); } if(PIND.2==0) { glcd_outtextxy(0,5,"*"); } if(PIND.3==0) { glcd_outtextxy(0,5,"-"); } if(PIND.4==0) { glcd_outtextxy(0,5,"+"); } } }
میخوام کلید ها رو با switch case بخونم ولی نمیشه...یعنی تو سوویچ عبارت PIND رو بذارم و مقادیر باینری مثل 0b1101111 رو چک کنم ولی کار نمیکنه و تنها با همین روش ابتدایی کار میکنه...چیکار کنم..؟
یه سوال دیگه...چجوری میتونم کاری کنم که مثلا * بعدی روی اولی overwrite نشه و بلافاصله بعدش نوشته بشه و سومی هم بعد از آن...؟
یعنی اگر کلید * رو یکبار بزنیم بشه :*
دوبار بزنیم بشه : **
و سه بار بزنیم بشه :***
سپاس.
دیدگاه