[$group] 自动代码生成类(元件驱动库).led灯驱动类 [$last_ver_update_time] 2021-04-03 [$min_need_ver] 1.23 [$p_list] 闪烁的led灯的初始化: 蜂鸣器命名为[($_xgm$value001),type=elename,type2=shansuo_led,tip=led灯的命名],led灯链接到单片机的管脚:[($_xgm$value3),type=pin,tip=单片机管脚] [$short_show_UIname] 闪烁的led灯 [($_xgm$value001),type=elename] 初始化,控制脚为[($_xgm$value3),type=pin] [$code_area_type] codes,exe_per_1ms,init_code [$blocks_type] line [$name] 闪烁的led灯的初始化积木 [$thread_do] thread_led_t_$rnd_varname_pre$();//虚拟线程,不能含阻塞执行的部分,每1ms执行一次 [$cs] [$init_code_for_define_area] u16 led_delay_time_$rnd_varname_pre$; //控制灯器每次闪后延时多少毫秒 u8 led_is_shanshuo_$rnd_varname_pre$; //控制led灯是否在闪 u32 delay_$rnd_varname_pre$_ccc; //每次点亮后停顿的时间的计时变量 u8 cur_led_is_on_or_off_$rnd_varname_pre$; //灯目前是在亮还是不在亮 void ctrl_led_t_$rnd_varname_pre$(u8 is_on,u16 delay1){ //控制led是否要闪烁 led_is_shanshuo_$rnd_varname_pre$=is_on; led_delay_time_$rnd_varname_pre$=delay1; [($_xgm$value3),type=pin]=0; } void thread_led_t_$rnd_varname_pre$(){ if(led_is_shanshuo_$rnd_varname_pre$==1){//如果需要闪烁 if(delay_$rnd_varname_pre$_ccc>= led_delay_time_$rnd_varname_pre$ ){//如果延时计时达到 delay_$rnd_varname_pre$_ccc=0;//延时计时归零 if(cur_led_is_on_or_off_$rnd_varname_pre$==0){//判断led灯当前状态 cur_led_is_on_or_off_$rnd_varname_pre$=1;//如果led灯是关闭状态则开启 [($_xgm$value3),type=pin]=1; }else{ cur_led_is_on_or_off_$rnd_varname_pre$=0;//如果led灯是开启状态则关闭 [($_xgm$value3),type=pin]=0; } } } } [$init_code_for_init_val] led_is_shanshuo_$rnd_varname_pre$=0; delay_$rnd_varname_pre$_ccc=0; [($_xgm$value3),type=pin]=0; [$timer0_1ms_code] delay_$rnd_varname_pre$_ccc++;//计时加一