举例:
void angleTime( uint16_t rx, uint16_t ry, uint16_t outR, uint16_t inR, uint16_t innR, uint32_t color, uint8_t min )
{
uint16_t x, y, x1, y1;
GUI_SetColor( color );
GUI_SetPenSize(3);
int oldFactor = GUI_AA_GetFactor();
GUI_AA_SetFactor(2);
for ( uint8_t i = 1; i <= min + 1; i++ )
{
float a = (i * 6) * 3.1415926 / 180;
x = rx + outR * sin( a );
y = ry - outR * cos( a );
if ( i % 5 == 0 ) {
x1 = rx + innR * sin( a );
y1 = ry - innR * cos( a );
}
else {
x1 = rx + inR * sin( a );
y1 = ry - inR * cos( a );
}
GUI_AA_DrawLine( x, y, x1, y1 );
}
GUI_AA_SetFactor(oldFactor);
GUI_SetPenSize(1);
}
//出现(uint8_t)(timeOut * scrollStep) - 1)= -1 的情况(在debug模式下查看就是等于255)导致数据溢出造成死循环
int main()
{
if (timeOut) {
angleTime(rr, rr, rr - 1, rr - 10, rr - 15, 0xFF564D, (uint8_t)(timeOut *
scrollStep) - 1);
}
}
发现过程:
在ozone状态下调试,从进入angleTime函数之后就一直出不来,