![]() |
|
![]() |
#1 |
Đệ tử 6 túi
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 . |
![]() |
![]() |
![]() |
|
|