#include "STC8xxxx.h" #include "Start_Init.h" #include "string.h" #include "UART_Set.h" #include "timer.h" #include "pwm_control.h" void Start_Init(void) { u8 i; memset(&g_Usart,0,sizeof(g_Usart)); memset(&s_recv, 0, sizeof(s_recv)); memset(&g_answer,0,sizeof(g_answer)); g_Usart.lastsn=0xFF; s_recv.B_min = 0; s_recv.B_max = 100; s_recv.global_brightness = 100; for(i=0;i<12;i++) { s_recv.pwm_step[i] = 1; s_recv.key_status[i] = 1; s_recv.gradual_time[i] = 300; } } //定时器2的1ms定时 void Timer2_Init_1ms(void) { TIM_InitTypeDef TIM_InitStructure; //结构定义 TIM_InitStructure.TIM_Mode = TIM_16BitAutoReload; //指定工作模式, TIM_16BitAutoReload,TIM_16Bit,TIM_8BitAutoReload,TIM_16BitAutoReloadNoMask TIM_InitStructure.TIM_Priority = Priority_3; //指定中断优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3 TIM_InitStructure.TIM_Interrupt = ENABLE; //中断是否允许, ENABLE或DISABLE. (注意: Timer2固定为16位自动重装, 中断固定为低优先级) TIM_InitStructure.TIM_ClkSource = TIM_CLOCK_12T; //指定时钟源, TIM_CLOCK_1T,TIM_CLOCK_12T,TIM_CLOCK_Ext TIM_InitStructure.TIM_ClkOut = DISABLE; //是否输出高速脉冲, ENABLE或DISABLE TIM_InitStructure.TIM_Value = 63693UL; //初值,定时为1ms TIM_InitStructure.TIM_Run = ENABLE; //是否初始化后启动定时器, ENABLE或DISABLE Timer_Inilize(Timer2,&TIM_InitStructure); //初始化Timer2 Timer0,Timer1,Timer2,Timer3,Timer4 }