void main (void) { #if(PREEMPTION == 1) //配置PIT0的NVIC分组 nvic_init_struct.NVIC_IRQChannel = PIT0_IRQn; nvic_init_struct.NVIC_IRQChannelGroupPriority = NVIC_PriorityGroup_1; nvic_init_struct.NVIC_IRQChannelPreemptionPriority = 0; LPLD_NVIC_Init(nvic_init_struct); //配置PIT1的NVIC分组 nvic_init_struct.NVIC_IRQChannel = PIT1_IRQn; nvic_init_struct.NVIC_IRQChannelGroupPriority = NVIC_PriorityGroup_1; nvic_init_struct.NVIC_IRQChannelPreemptionPriority = 1; LPLD_NVIC_Init(nvic_init_struct); #endif //配置PIT0 pit0_init_struct.PIT_Pitx = PIT0; pit0_init_struct.PIT_PeriodMs = 500; pit0_init_struct.PIT_Isr = pit0_isr; LPLD_PIT_Init(pit0_init_struct); //配置PIT1 pit1_init_struct.PIT_Pitx = PIT1; pit1_init_struct.PIT_PeriodMs = 1000; pit1_init_struct.PIT_Isr = pit1_isr; LPLD_PIT_Init(pit1_init_struct); LPLD_PIT_EnableIrq(pit0_init_struct); LPLD_PIT_EnableIrq(pit1_init_struct); while(1) { } }
void init_PIT() { pit0_init_struct.PIT_Pitx = PIT0; //选择PIT0 pit0_init_struct.PIT_PeriodUs = MY_SAMPLE_TIME; //PIT0计数周期500ms pit0_init_struct.PIT_Isr = pitdacisr; //初始化PIT0 LPLD_PIT_Init(pit0_init_struct); LPLD_PIT_EnableIrq(pit0_init_struct); }
//-------------------------------------------------------------------------------------------------------- void PIT_Init(void) { pit_init_struct.PIT_Pitx = PIT0; pit_init_struct.PIT_PeriodMs = 1; //定时周期1毫秒 pit_init_struct.PIT_Isr = PIT_Signal; //设置中断函数名 LPLD_PIT_Init(pit_init_struct); LPLD_PIT_EnableIrq(pit_init_struct); }
/* * 初始化PIT定时器 * */ void pit_init(void) { //配置定时周期中断参数 pit_init_struct.PIT_Pitx = PIT0; pit_init_struct.PIT_PeriodMs = 20; //20毫秒产生一起中断 pit_init_struct.PIT_Isr = pit_isr; //初始化PIT LPLD_PIT_Init(pit_init_struct); //使能PIT定时中断 LPLD_PIT_EnableIrq(pit_init_struct); }
/* * 初始化PIT0和PIT1通道 * */ void pit_init(void) { //配置PIT0参数 pit0_init_struct.PIT_Pitx = PIT0; pit0_init_struct.PIT_PeriodS = 2; //定时周期2秒 pit0_init_struct.PIT_Isr = pit0_isr; //设置中断函数 //初始化PIT0 LPLD_PIT_Init(pit0_init_struct); //配置PIT1参数 pit1_init_struct.PIT_Pitx = PIT1; pit1_init_struct.PIT_PeriodMs = 1000; //定时周期1000毫秒 pit1_init_struct.PIT_Isr = pit1_isr; //设置中断函数 //初始化PIT1 LPLD_PIT_Init(pit1_init_struct); //使能PIT0和PIT1 LPLD_PIT_EnableIrq(pit0_init_struct); LPLD_PIT_EnableIrq(pit1_init_struct); }
void pit_init() { PIT_InitTypeDef pit0_init_struct={PIT0}; pit0_init_struct.PIT_Pitx = PIT0; //配置PIT0参数 pit0_init_struct.PIT_PeriodMs = PIT0_MS; //定时周期 pit0_init_struct.PIT_Isr = pit0_isr; //设置中断函数 LPLD_PIT_Init(pit0_init_struct); //初始化PIT0 LPLD_PIT_EnableIrq(pit0_init_struct); //使能PIT0 PIT->CHANNEL[PIT1].LDVAL = 0xFFFFFFFF; //用于测程序执行时间 PIT->CHANNEL[PIT1].TCTRL |= PIT_TCTRL_TEN_MASK; }