OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8318|回复: 3

stm8s timer1 死区设置为什么 没有出现死区反而 oc1和oc1n的输出高脉冲头重叠增加了?求大神解答

[复制链接]

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-1-12
在线时间
13 小时
发表于 2014-1-12 20:14:05 | 显示全部楼层 |阅读模式
/* MAIN.C file
 * 
 * Copyright (c) 2002-2005 STMicroelectronics
 */


#include "stm8s207c.h" // 声明中断服务函数
_Bool ZKBJ @PD_IDR:4;
_Bool ZKBQ @PB_IDR:7;
_Bool ZZ   @PB_ODR:6;
_Bool LED  @PC_ODR:3;
_Bool LED1 @PC_ODR:4;

/* 函数声明----------------------------------------------------------------------*/
/* TIM1_PWM初始化 */
void TIM1_PWM_init(void);
void CLK_Init(void);
void GPIO_Init(void);
void SCZWH_Init(void);
void SCZWL_Init(void);
void SCZWH_Int(void);
void SCZWL_Int(void);
void DELAY (unsigned int x);
//void EXTI0_Init(void);
//void EXTI3_Init(void);

void main(void)
{
      _asm("sim");
 GPIO_Init();
     CLK_Init();
_asm("rim");
        TIM1_PWM_init();
        while(1);
}

/****
* 函数功能: TIM1_PWM初始化
* 参数: 无
* 返回值: 无
*/
void CLK_Init(void)
{
 CLK_SWR = 0xB4;
while(!(CLK_SWCR&0x08));
CLK_SWCR |=0x02;
while(CLK_CMSR!=0xB4);
CLK_CSSR |=0x01;
 CLK_CKDIVR = 0x00;
CLK_PCKENR1 = 0x80;
}

void GPIO_Init(void)
{
PB_DDR = 0x03;
PB_CR1 = 0x0F;
//PB_CR2 |= 0x03;
PC_DDR |= 0x06;
PC_DDR |= 0X18;
PC_CR1 |= 0X18;
PC_CR1 |= 0x06;
PC_CR2 |= 0x06;
PC_CR1 |= 0x08;
PC_CR2 |= 0x00;
}

void TIM1_PWM_init(void)
{
        TIM1_ARRH = 0x00;        // 计数周期
        TIM1_ARRL = 0x20;
        TIM1_CCR1H = 0x00;        // TIM1比较/捕获寄存器1
        TIM1_CCR1L = 0x0b;
TIM1_CCR2H = 0x00;
TIM1_CCR2L = 0x0b;
        TIM1_PSCRH = 0;                // 分频比
        TIM1_PSCRL = 1;
        
        TIM1_CR1 |= 0x20;        // CMS(01) : Center-aligned mode 1
        TIM1_CR1 |= 0x80;        // set ARPE
TIM1_IER |= 0x03;
TIM1_IER |= 0x04;
//TIM1_IER |= 0x20;
//TIM1_IER |= 0x40;
//TIM1_IER |= 0x80;
        TIM1_CCMR1 |= 0x60;        // OC1M(110) : PWM Mode 1
        TIM1_CCMR1 |= 0x08; // set OC1PE
TIM1_CCMR2 |= 0x60; 
TIM1_CCMR2 |= 0x08; 
        TIM1_CCER1 |= 0x01;        // set CC1E
        TIM1_CCER1 |= 0x08;        // set CC1NP
        TIM1_CCER1 |= 0x04;        // set CC1NE
TIM1_CCER1 |= 0x02;
TIM1_CCER1 |= 0x10;        // set CC1E
        TIM1_CCER1 |= 0x20;        // set CC1NP
        TIM1_CCER1 |= 0x40;        // set CC1NE
TIM1_CCER1 |= 0x80;
        TIM1_CR2 |= 0x01;        // set CCPC
TIM1_CR2 |= 0x04;
TIM1_CR2 |= 0x04;
        TIM1_EGR |= 0x20;        // set COMG
        TIM1_DTR = 0x05;        // Deadtime generator
        TIM1_BKR |= 0x08;        // set OSSR
        TIM1_BKR |= 0x80;        // set MOE
        TIM1_CR1 |= 0x01;        // 开启计数?
TIM1_OISR |= 0x0f;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

557

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165002
金钱
165002
注册时间
2010-12-1
在线时间
2102 小时
发表于 2014-1-13 22:53:10 | 显示全部楼层
回复 支持 反对

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2014-1-12
在线时间
13 小时
 楼主| 发表于 2014-1-14 20:23:35 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢谢原子哥,问题已经解决,程序没有问题的。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-8-25
在线时间
0 小时
发表于 2017-8-25 17:19:58 | 显示全部楼层
楼主这个是怎么解决的,遇到了相同的问题
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-26 08:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表