不使用库函数
#include "stm8s105s6.h"
_Bool LED @PD_ODR:0;
/**************************实现函数********************************************
*函数原型: void Delay(unsigned int time)
*******************************************************************************/
void Delay(unsigned int time)
{
volatile unsigned int i;
while(time--){
i=300;
while(i--);
}
}
void CLK_Init(void)
{
CLK_CKDIVR = 0x00; //16M晶振
}
void GPIO_Init(void)
{
PD_DDR = 0xff;
PD_CR1 = 0xff;
PD_CR2 = 0x00;
PC_DDR = 0xff;
PC_CR1 = 0xff;
PC_CR2 = 0x00;
}
/**************************实现函数********************************************
*函数原型: main() 主程序
*功 能: 配置定时器1,改变PWM的占空比,以调节LED1的亮度
*******************************************************************************/
main()
{
int i;
GPIO_Init();
CLK_Init();
//
CLK_PCKENR1 =0x80;
//CLK_PCKENR2 =0xff;
//
TIM1_CCER1 = 0x03; //通道1极性,有效电平为低电平
TIM1_CCMR1 = 0x60; //配置通道1 模式PWM 1
TIM1_BKR |= 0x80; //使能PWM输出
TIM1_PSCRH = 0x00;
TIM1_PSCRL = 0x00; //预分频系数 1
TIM1_ARRH = 0x00;
TIM1_ARRL = 0xff; //最大计数值
TIM1_CCR1H = 0x00;
TIM1_CCR1L = 0x06; //通道1的比较值
TIM1_CR1 = 0x01; //启动Tim1 向上计数模式
//
//
while (1)
{ //LED1的亮度会慢慢亮,然后熄灭.
for(i=0;i<20;i++)
{
Delay(100);
LED=0;
TIM1_CCR1H = 0x00;//改变PC1输出的PWM的占空比,
TIM1_CCR1L = 0x3f; //通道1的比较值
}
Delay(100);
for(i=0;i<20;i++)
{
Delay(100);
LED=1;
TIM1_CCR1H = 0x00;//改变PC1输出的PWM的占空比,
TIM1_CCR1L = 0xef; //通道1的比较值
}
}
}
怎么 没有输出 PWM信号 求大侠指点!! 要说外设时钟 和 使能都打开了,为啥 输出还是没有? |