#include "absacc.h" #include "math.h" #include <intrins.h> #include <reg51.h> #include "stdio.h" //------------------------------------------------------------------------------- //划线函数 void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode) {unsigned char x,y; double k,b; unsigned i; if( 1) // |k|<=1 {k=(float)(y2-y1) / (float)(x2-x1) ; b=y1-k*x1; if( x1 <= x2 ) {for(x=x1;x<=x2;x++) {i=i+2.7; } } } } void main() {unsigned i; Line(0,0,23,34,1); P1=34; jj:goto jj; } This programme can run well in Keil UV2 ,but can't run along in my target board. But I revised the state i=i+2.7; to i=i+2;,and the programme can run well. why?
View all questions in Keil forum