打印
[STM8]

STM8S103配置TIM1为输出比较模式不翻转

[复制链接]
3654|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
roalychen|  楼主 | 2009-11-28 08:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是103F的片子,想把TIM1设置成翻转输出比较模式,但端口不会发生翻转

配置程序如下:
GPIO_Init(GPIOC, GPIO_PIN_6, GPIO_MODE_OUT_PP_HIGH_FAST);
TIM1->CR1 &= 0xFE; // stop TIM1
TIM1->PSCRH = 0;
TIM1->PSCRL = 0;

TIM1->CR1 = 0;
TIM1->CR2 = 0;
TIM1->EGR = 0x20;
TIM1->CNTRH = 0;
TIM1->CNTRL = 0;
TIM1->CCR1H = 0x1f;
TIM1->CCR1L = 0xff;

TIM1->IER = 2;
TIM1->CCMR1 = 0x30; // 输出,禁止预装载,比较匹配翻转
TIM1->CCER1 = 0x01;  // 0x03;
TIM1->CCER2 = 0;
//TIM1->OISR = 0x01;

TIM1->BKR = 0x80;

TIM1->CR1 |= 0x01;

中断程序:
@interrupt void Timer_PWM_IRQ(void)
{
u8 tempirq;
TIM1->CR1 &= 0xFE; // stop TIM1

if(TIM1->SR1 & 0x02)
{
  TIM1->CNTRH = 0;
  TIM1->CNTRL = 0;
  
  
  TIM1->SR1 &= (u8)(~0x02);
  
}

TIM1->CR1 |= 0x01;
}

会发生中断,但输出口PC6一直是高电平,不会发生翻转

请高手指点下.谢谢!
沙发
stm_zy| | 2009-11-28 08:45 | 只看该作者
你用的是PC6口的映射复用功能吧?有没有在选项字节(AFR0)中打开映射?

使用特权

评论回复
板凳
秋天落叶| | 2009-11-28 09:42 | 只看该作者
进中断,不发生翻转,肯定就是中断里的IF条件不满足了

使用特权

评论回复
地板
roalychen|  楼主 | 2009-11-28 11:37 | 只看该作者
回2楼: 我配置了OPT BYTE还是不行, 不知哪里弄错了, 到时用103K再看看了,实际产品是103K的
回3楼: 判断了IF条件是满足的

使用特权

评论回复
5
roalychen|  楼主 | 2009-12-3 12:17 | 只看该作者
用103K配置OK了,不过是用默认复用功能的

OPT BYTE的修改还是有点问题, 好象改不了的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

227

帖子

0

粉丝