void clockwise_sense_dirction(void) { if( (!RIGHT_KEY && !LEFT_KEY) || (RIGHT_KEY && LEFT_KEY ) ) //顺时针,加亮度 { Turn_counter_cnt=0; Turn_clockwise_cnt++; if(Turn_clockwise_cnt>2) //顺时针控制延迟 { Turn_clockwise_cnt=0; if((user_set_delay_time<=30)||(user_set_delay_time>41)) //确保区间在30~40之外 { user_set_delay_time--; if(user_set_delay_time==0) { user_set_delay_time= Max_delay_time_AC; } } } } if( (!RIGHT_KEY && LEFT_KEY ) || (RIGHT_KEY && !LEFT_KEY) ) //逆时针,减亮度 { Turn_clockwise_cnt=0; Turn_counter_cnt++; if(Turn_counter_cnt>2) //逆时针控制延迟 { Turn_counter_cnt=0; if((user_set_delay_time<29)||(user_set_delay_time>=40)) //确保区间在30~40之外 { user_set_delay_time++; if(user_set_delay_time>Max_delay_time_AC) { user_set_delay_time=0; } } } } }
时间: 2024-02-14 08:03:18 浏览: 387
ASRS.zip_ASRS_The Ring
这段代码是用于控制旋钮旋转方向的,根据旋钮旋转的方向来控制亮度的增减。下面是对这段代码的详细解释:
首先,判断旋钮的旋转方向,如果旋钮没有旋转或者旋转方向不明确,则不做任何操作。
```
if( (!RIGHT_KEY && !LEFT_KEY) || (RIGHT_KEY && LEFT_KEY ) )
```
如果旋钮顺时针旋转,则计数器 `Turn_clockwise_cnt` 加 1,如果计数器 `Turn_clockwise_cnt` 超过 2,则将计数器 `Turn_clockwise_cnt` 重置为 0,并且将亮度增加一个步长 `user_set_delay_time--`,同时确保亮度区间在 30~40 之外。
```
Turn_clockwise_cnt++;
if(Turn_clockwise_cnt>2)
{
Turn_clockwise_cnt=0;
if((user_set_delay_time<=30)||(user_set_delay_time>41))
{
user_set_delay_time--;
if(user_set_delay_time==0)
{
user_set_delay_time= Max_delay_time_AC;
}
}
}
```
如果旋钮逆时针旋转,则计数器 `Turn_counter_cnt` 加 1,如果计数器 `Turn_counter_cnt` 超过 2,则将计数器 `Turn_counter_cnt` 重置为 0,并且将亮度减少一个步长 `user_set_delay_time++`,同时确保亮度区间在 30~40 之外。
```
Turn_counter_cnt++;
if(Turn_counter_cnt>2)
{
Turn_counter_cnt=0;
if((user_set_delay_time<29)||(user_set_delay_time>=40))
{
user_set_delay_time++;
if(user_set_delay_time>Max_delay_time_AC)
{
user_set_delay_time=0;
}
}
}
```
需要注意的是,代码中使用了两个按键 `LEFT_KEY` 和 `RIGHT_KEY` 来检测旋钮的旋转方向,需要根据具体情况来修改这两个按键的引脚号和触发方式。同时,代码中还使用了计数器来控制旋钮旋转的延迟,需要根据实际情况来调整计数器的值。
阅读全文