View Single Post
Old 02-09-2008, 12:14 AM   #94
lion
Đệ tử 6 túi
 
lion's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 127
:
Công này đoạn code này gây ra lỗi sai :

//---------------------------------------------------------------
ngan=so_vong/1000;
tram=(so_vong-ngan*1000)/100;
chuc=(so_vong-ngan*1000-tram*100)/10;
donvi=so_vong%10;
//---------------------------------------------------------------

mình cũng đã từng gặp lỗi này , nhưng ko thể nào điều chỉnh được :
nguyên nhân là do trình dịch CCS không sử lý được phép chia > 8 bit :

vi du :

unsigned char so1,so2,so3,so4 ;
//---------------------------------------------------------

void tach_so( unsigned int data )
{
so1 = data / 1000 ;
so2 = (data % 1000)/100 ;
so3 = ((data % 1000)%100)/10 ;
so4 = ((data % 1000)%100)%10 ;
}

//----------------------------------------------------------
void main(void)
{
TRISA=0xff;
TRISB=0xff;
TRISC=0x00;
TRISD=0x00;

while(1)
{

tach_so( 1234 ) // cho kết quả hiển thị sai

hien_thi( so1 );
hien_thi( so2 );
hien_thi( so3 );
hien_thi( so4 );

};
}
//------------------------------------------------

nếu gán cho hàm : tach_so( 1234 ) ( data > 255 ) thì kết quả hiển thị sẽ sai , còn nếu gán cho hàm : tach_so( 223 ) ( data < 255 ) thì kết quả hiển thị đúng .
lion vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn