[$group] 工控类-步进电机.$pname$ [$last_ver_update_time] 2021-04-03 [$min_need_ver] 1.23 [$p_list] [$short_show_UIname] [$code_area_type] codes,exe_per_1ms,init_code [$blocks_type] [$name] 123 [$cs] [$init_code_for_init_val] #get_P口_to_PxM1_PxM0_set_code(group_xml,rand1,block_name,ref_complier,extinfo,"[($_xgm$a),type=pin]","1","28步进信号1")% #get_P口_to_PxM1_PxM0_set_code(group_xml,rand1,block_name,ref_complier,extinfo,"[($_xgm$b),type=pin]","1","28步进信号2")% #get_P口_to_PxM1_PxM0_set_code(group_xml,rand1,block_name,ref_complier,extinfo,"[($_xgm$c),type=pin]","1","28步进信号3")% #get_P口_to_PxM1_PxM0_set_code(group_xml,rand1,block_name,ref_complier,extinfo,"[($_xgm$d),type=pin]","1","28步进信号4")% IO_Write([($_xgm$a),type=pin] ,0) ; IO_Write([($_xgm$b),type=pin] ,0) ; IO_Write([($_xgm$c),type=pin] ,0) ; IO_Write([($_xgm$d),type=pin] ,0) ; i_$rnd_varname_pre$=0; left_puls_$rnd_varname_pre$=0; dir_$rnd_varname_pre$=0; [$toolbox_block_code] [$replace_map] $_xgm$a = $field$a ,mytype|pin, ptype|TIMES $_xgm$b = $field$b ,mytype|pin, ptype|TIMES $_xgm$c = $field$c ,mytype|pin, ptype|TIMES $_xgm$d = $field$d ,mytype|pin, ptype|TIMES [$init_code_for_define_area] @@file=motor28_4x.c u8 fenpin_$rnd_varname_pre$=0; u8 dir_$rnd_varname_pre$=0; volatile u32 left_puls_$rnd_varname_pre$=0; u8 i_$rnd_varname_pre$=0; #define A_ON_$rnd_varname_pre$ IO_Write([($_xgm$a),type=pin] ,1) #define A_OFF_$rnd_varname_pre$ IO_Write([($_xgm$a),type=pin] ,0) #define B_ON_$rnd_varname_pre$ IO_Write([($_xgm$b),type=pin] ,1) #define B_OFF_$rnd_varname_pre$ IO_Write([($_xgm$b),type=pin] ,0) #define C_ON_$rnd_varname_pre$ IO_Write([($_xgm$c),type=pin] ,1) #define C_OFF_$rnd_varname_pre$ IO_Write([($_xgm$c),type=pin] ,0) #define D_ON_$rnd_varname_pre$ IO_Write([($_xgm$d),type=pin] ,1) #define D_OFF_$rnd_varname_pre$ IO_Write([($_xgm$d),type=pin] ,0) u8 is_m_ok_$rnd_varname_pre$(){ if(left_puls_$rnd_varname_pre$==0){return 1;} return 0; } [$init_code_for_define_area_once] @@file=motor28_4x.c [$function_ref_define_in_headfile] @@file=motor28_4x.h #define A_ON_$rnd_varname_pre$ IO_Write([($_xgm$a),type=pin] ,1) #define A_OFF_$rnd_varname_pre$ IO_Write([($_xgm$a),type=pin] ,0) #define B_ON_$rnd_varname_pre$ IO_Write([($_xgm$b),type=pin] ,1) #define B_OFF_$rnd_varname_pre$ IO_Write([($_xgm$b),type=pin] ,0) #define C_ON_$rnd_varname_pre$ IO_Write([($_xgm$c),type=pin] ,1) #define C_OFF_$rnd_varname_pre$ IO_Write([($_xgm$c),type=pin] ,0) #define D_ON_$rnd_varname_pre$ IO_Write([($_xgm$d),type=pin] ,1) #define D_OFF_$rnd_varname_pre$ IO_Write([($_xgm$d),type=pin] ,0) extern u8 dir_$rnd_varname_pre$; extern volatile u32 left_puls_$rnd_varname_pre$; extern u8 i_$rnd_varname_pre$; extern u8 fenpin_$rnd_varname_pre$; u8 is_m_ok_$rnd_varname_pre$(); [$thread_do] fenpin_$rnd_varname_pre$++; if(fenpin_$rnd_varname_pre$>=4){ fenpin_$rnd_varname_pre$=0; if(left_puls_$rnd_varname_pre$>0){ switch(i_$rnd_varname_pre$) { case 0: A_ON_$rnd_varname_pre$; B_OFF_$rnd_varname_pre$; C_OFF_$rnd_varname_pre$; D_OFF_$rnd_varname_pre$; break; case 1: A_ON_$rnd_varname_pre$; B_ON_$rnd_varname_pre$; C_OFF_$rnd_varname_pre$; D_OFF_$rnd_varname_pre$; break; case 2: A_OFF_$rnd_varname_pre$; B_ON_$rnd_varname_pre$; C_OFF_$rnd_varname_pre$; D_OFF_$rnd_varname_pre$; break; case 3: A_OFF_$rnd_varname_pre$; B_ON_$rnd_varname_pre$; C_ON_$rnd_varname_pre$; D_OFF_$rnd_varname_pre$; break; case 4: A_OFF_$rnd_varname_pre$; B_OFF_$rnd_varname_pre$; C_ON_$rnd_varname_pre$; D_OFF_$rnd_varname_pre$; break; case 5: A_OFF_$rnd_varname_pre$; B_OFF_$rnd_varname_pre$; C_ON_$rnd_varname_pre$; D_ON_$rnd_varname_pre$; break; case 6: A_OFF_$rnd_varname_pre$; B_OFF_$rnd_varname_pre$; C_OFF_$rnd_varname_pre$; D_ON_$rnd_varname_pre$; break; case 7: A_ON_$rnd_varname_pre$; B_OFF_$rnd_varname_pre$; C_OFF_$rnd_varname_pre$; D_ON_$rnd_varname_pre$; break; } } if(dir_$rnd_varname_pre$==0){ i_$rnd_varname_pre$++; // 步进加1 if(i_$rnd_varname_pre$>=8){ i_$rnd_varname_pre$=0; if(left_puls_$rnd_varname_pre$>0){ left_puls_$rnd_varname_pre$--; } } } if(dir_$rnd_varname_pre$==1){ // 步进加1 if(i_$rnd_varname_pre$==0){ i_$rnd_varname_pre$=7; if(left_puls_$rnd_varname_pre$>0){ left_puls_$rnd_varname_pre$--; } }else{ i_$rnd_varname_pre$--; } } } [$timer0_100us_code] [$timer0_1ms_code] [$引脚占用列表,用于提示冲突] [($_xgm$a),type=pin] [($_xgm$b),type=pin] [($_xgm$c),type=pin] [($_xgm$d),type=pin] [$寄存器占用列表,用于提示冲突,但=>后的值没变则不提示冲突] [$中断函数号占用列表,用于提示冲突]