你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。关注该话题即可发布文章!
void Sw28_SetBrightness(SW28_HandleTypeDef *swObj, uint8_t b)
{% z1 C# K/ ]3 X7 h2 a0 B
uint8_t newBrightness = b + 1;
uint8_t oldBrightness = swObj->Brightness - 1; // De-wrap old brightness value
uint32_t c;
uint16_t scale,i;) n2 e4 w% k" S% S
if(newBrightness != swObj->Brightness)
{ // Compare against prior value
// Brightness has changed -- re-scale existing data in RAM+ Y0 |, J1 G/ f) Z
; i- S4 ?; k# m$ E
if(oldBrightness == 0) , t* b1 H$ c" B9 `
scale = 0; // Avoid /04 e8 i0 M. V$ K9 B6 J. L' F+ s% W6 |
else if(b == 255) " ^$ k; w9 g) h9 m( ]$ l
scale = 65535 / oldBrightness;
else . K1 q$ ^! f9 c( N
scale = (((uint16_t)newBrightness << 8) - 1) / oldBrightness;: G! B1 R- i# Z$ U, c. z6 k9 R
for(i=0; i<swObj->PixelLen; i++): J: O s' ~; U" [, ?9 f
{2 v5 _5 q, b1 o8 x% E* B
c = Sw28_GetPixelColor(swObj,i); //获取16bit颜色 H" w* ^" G2 O& |1 T
c = Sw28_ScaleColor(scale, c);
Sw28_SetPixelsColor(swObj,i,c);//设置颜色
}4 e2 \5 b7 u! M8 Q" A, b
swObj->Brightness = newBrightness;( R5 Q3 e' d6 Y9 P6 T
}
}