سلام به همگی
این برنامه رو ببینید:
این برنامه یه ماشین حساب مهندسی هست که الان دارم روش کار میکنم.
میخوام کلید ها رو با 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 نشه و بلافاصله بعدش نوشته بشه و سومی هم بعد از آن...؟
یعنی اگر کلید * رو یکبار بزنیم بشه :*
دوبار بزنیم بشه : **
و سه بار بزنیم بشه :***
سپاس.


موفق باشی یا علی...
دیدگاه