mohammadreza0123
پنج شنبه 15 آبان 1393, 08:19 صبح
سلام بچه ها
من در کدویژن یه برنامه نوشتم
که مثلا اگه پین بی 0 و بی 1 ، 0 بود بیاد عملیات جمع نیم بایت اول پورت آ رو با نیم بایت دومش جمع کنه
و همین طور اگه بی 0 و بی 1 ،0و1 ---- 1و0 ----- 1و1 بود عملیات تفریق نیم بایت اول پورت آ و نیم بایت دومش و همین طور چند عمل دیگه
که باید خروجی نتیجه این عملیات رو نشون بده
توو کدویژن خودش عملیات جمع و تفریق رو به صورت باینری انجام میده
استادمون گفته باید محاسبات two's comlement باشه
یعنی چی
؟
یعنی این کاری که من کردم الان اشتباهه؟؟؟؟؟؟؟؟؟؟؟؟
کد من به صورت زیر در کدویژن هست برای اتمگا 16
#include <mega16.h>
unsigned char sum(unsigned char x,unsigned char y)
{
return(x+y);
}
unsigned char def(char x,char y)
{
return(x-y);
}
void main()
{
unsigned char al,ah,all,ahl;
DDRA=0x00;
DDRC=0xff;
DDRB=0x00;
al=PINA%16;
ah=PINA/16;
all=al%4;
ahl=ah%4;
while(1)
{
if((PINB.0==0)&&(PINB.1==0))
{
PORTC=sum(ah,al);
}
if((PINB.0==0)&&(PINB.1==1))
{
PORTC=def(ah,al);
}
if((PINB.0==1)&&(PINB.1==0))
{
PORTC=sum(ahl,all);
}
if((PINB.0==1)&&(PINB.1==1))
{
PORTC=def(ahl,all);
}
}
}
این کد جواب میده بهم
اما اگه بخوام محاسبات two's complement باشه و در خروجی نمایش داده بشه باید چه کنم
لطفا با پیام خصوصی منو با خبر کنید
ممنونم پیشاپیش
من در کدویژن یه برنامه نوشتم
که مثلا اگه پین بی 0 و بی 1 ، 0 بود بیاد عملیات جمع نیم بایت اول پورت آ رو با نیم بایت دومش جمع کنه
و همین طور اگه بی 0 و بی 1 ،0و1 ---- 1و0 ----- 1و1 بود عملیات تفریق نیم بایت اول پورت آ و نیم بایت دومش و همین طور چند عمل دیگه
که باید خروجی نتیجه این عملیات رو نشون بده
توو کدویژن خودش عملیات جمع و تفریق رو به صورت باینری انجام میده
استادمون گفته باید محاسبات two's comlement باشه
یعنی چی
؟
یعنی این کاری که من کردم الان اشتباهه؟؟؟؟؟؟؟؟؟؟؟؟
کد من به صورت زیر در کدویژن هست برای اتمگا 16
#include <mega16.h>
unsigned char sum(unsigned char x,unsigned char y)
{
return(x+y);
}
unsigned char def(char x,char y)
{
return(x-y);
}
void main()
{
unsigned char al,ah,all,ahl;
DDRA=0x00;
DDRC=0xff;
DDRB=0x00;
al=PINA%16;
ah=PINA/16;
all=al%4;
ahl=ah%4;
while(1)
{
if((PINB.0==0)&&(PINB.1==0))
{
PORTC=sum(ah,al);
}
if((PINB.0==0)&&(PINB.1==1))
{
PORTC=def(ah,al);
}
if((PINB.0==1)&&(PINB.1==0))
{
PORTC=sum(ahl,all);
}
if((PINB.0==1)&&(PINB.1==1))
{
PORTC=def(ahl,all);
}
}
}
این کد جواب میده بهم
اما اگه بخوام محاسبات two's complement باشه و در خروجی نمایش داده بشه باید چه کنم
لطفا با پیام خصوصی منو با خبر کنید
ممنونم پیشاپیش