在线时间1 小时
UID2086736
ST金币0
蝴蝶豆0
注册时间2014-4-18
新手上路
- 最后登录
- 2018-1-17
|
a0a.1 0b0c
void GPIO_Init(void)
{
PC_DDR |=0x80;
PC_CR1 |=0x80;/*OUTPUT*/
PC_CR2 &=0x7f;/*PC7*/
PC_DDR &=0xbf;
PC_CR1 &=0xbf;/*Input*/
PC_CR2 &=0xbf;/*PC6*/
PC_DDR|=0x20;
PC_CR1|=0x20;/*OUTPUT*/
PC_CR2&=0xdf;/*pc5*/
}
void TIM2_Init(void)
{
TIM2_IER =0x00;
TIM2_EGR=0x01;
TIM2_PSCR = 0X04; /*Configure TIM2 prescaler=1MHZ */
TIM2_ARRH =1000/256;
TIM2_ARRL =1000%256;/*1ms*/
TIM2_IER |=0X01;
TIM2_CR1|=0X81;//ENABLE TIM1
}
void TIM1_CatchInit(void)
{
TIM1_IER =0x00;
TIM1_EGR=0x01;
// TIM1_SR1_CC1IF &=0xf9;
// TIM1_SR1_CC2IF =0x00;
TIM1_CCER1&=0xee;//DISABLED TIM1
TIM1_CCMR1|=0x01;
TIM1_CCER1&=0xec;
TIM1_CCMR2|=0x02;
//TIM1_CCMR2&=0xfe;
TIM1_CCER1|=0x20;
TIM1_SMCR |=0x54;
TIM1_PSCRH = 0x00;
TIM1_PSCRL = 0x0F; /*Configure TIM1 prescaler=1MHZ */
TIM1_IER |=0X06;
TIM1_CCER1|=0x11;//ENABLED TIM1 catch
TIM1_CR1|=0X81;//ENABLE TIM1CNT
// TIM1_CCER1_CC1E=0X01;
// TIM1_CCER1_CC2E=0X01;/*ENABLED INPUT INTERRUPT*/
// TIM1_CR1|=0X81;//ENABLE TIM1
}
@far @interrupt void TIM1_Compare(void)
{
if((TIM1_SR1&0x02)==0x02)
{
TIM1_SR1&=0xfd;
PWM_FLAG++;
}
if((TIM1_SR1&0x04)==0x04)
{
TIM1_SR1&=0xfb;
PWM_FLAG++;
}
}
问题是我用TIM2定时器控制PC5高低电位模拟PWM信号,然后输入到PC6通道,PC6也就是TIM1_CH1通道吧 应该能进入捕获中断 查了好久找不到原因 我参考的帖子http://www.doc88.com/p-8179991153683.html写的 |
|