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

[复制链接]
4388|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条件是满足的
 楼主| roalychen 发表于 2009-12-3 12:17 | 显示全部楼层
用103K配置OK了,不过是用默认复用功能的

OPT BYTE的修改还是有点问题, 好象改不了的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

227

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部