要实现呼吸灯效果,主要就是确定 频率,两个方面的频率:①以多快的频率开关LED,②以多块的频率 修改脉冲宽度。我们的例子的频率是:产生100us 中断 来开关LED, 每10ms 修改一次 脉冲宽度,100个等级,1s的频率呼吸。
有两种实现方式:直接PWM 输出 另一种 是用定时器 模拟PWM 优点是任意引脚都可以实现。这里先用后一种方式实现。
主要代码:
#define LED_GPIO_PORT GPIOD
#define LED_GPIO_PINS GPIO_Pin_0
#define led_on GPIO_SetBits(LED_GPIO_PORT,LED_GPIO_PINS)
#define led_off GPIO_ResetBits(LED_GPIO_PORT,LED_GPIO_PINS)
void led_pwm_init(void)
{
GPIO_Init(LED_GPIO_PORT, LED_GPIO_PINS, GPIO_Mode_Out_PP_Low_Slow);//初始化LED,GPD0低速推挽输出
CLK_PeripheralClockConfig (CLK_Peripheral_TIM4,ENABLE); //使能外设时钟,STM8L外设时钟默认关闭,使用前需使能
TIM4_TimeBaseInit(TIM4_Prescaler_2, 0x64);//16M/8/2=1M,0xff=255,100*(1/1M)=100uS,大约61次中断是1S
// Clear TIM4 update flag
TIM4_ClearFlag(TIM4_FLAG_Update);//向上清除溢出标志
//Enable update interrupt
TIM4_ITConfig(TIM4_IT_Update, ENABLE);//向上溢出中断使能,中断向量号25
TIM4_Cmd(ENABLE);//TIM4使能
enableInterrupts();//开启中断总开关
}
/**
* @brief Timer4 Update/Overflow Interrupt routine.
* @param None
* @retval None
*/
INTERRUPT_HANDLER(TIM4_UPD_OVF_IRQHandler, 25)
{
/* In order to detect unexpected events during development,
it is recommended to set a breakpoint on the following instruction.
*/
/* i++;
if(i==61)
{
GPIO_ToggleBits(GPIOD, GPIO_Pin_0);//翻转GPD0输出状态
i=0;
}*/
if((++timenum)>=100)//每10mS调整一下led的占空比 100us中断;
{
time_second_count++;
timenum=0;
if(leddirection==0) //如果是渐亮方向变化,则占空比递增
{
ledpwm++;
if (ledpwm > pwm_max)
{
ledpwm = pwm_max;
// leddirection =1;
}
}
if(leddirection==1) //如果是渐暗方向变化,则占空比递减
{
ledpwm--;
if(ledpwm<=pwm_min)
{
ledpwm=pwm_min;
//leddirection=0;
}
}
ledpwm_temp=ledpwm;//获取LED的占空比
}
if(ledpwm_temp>0)//占空比大于0,则点亮led,否则熄灭led
{
//led_on;
led_off;
ledpwm_temp--; //? 就是来控制亮的时间
}
else
{
led_on;
//led_off;
}
TIM4_ClearITPendingBit(TIM4_IT_Update);
}
上一篇:STM8L探索套件学习笔记-GPIO端口操作(一)
下一篇:关于我对IIC协议的一些理解
推荐阅读
史海拾趣
随着公司规模的扩大和市场份额的提升,Bce Sud开始实施国际化战略。公司先后在多个国家和地区设立了研发中心和销售网络,进一步扩大了市场份额。通过与国际知名企业的合作与交流,Bce Sud不断提升自身的技术水平和国际竞争力。
Ark-Les Connectors公司从一家小型电子连接器制造商起步,凭借其不断的技术创新,逐渐在行业中崭露头角。公司研发团队致力于开发高性能、高可靠性的连接器产品,满足日益增长的电子设备连接需求。通过对材料科学的深入研究,Ark-Les成功研发出新型耐高温、耐腐蚀的连接器材料,大大提高了产品的使用寿命和稳定性。这一创新不仅赢得了客户的广泛认可,也为公司带来了可观的市场份额。
Ark-Les Connectors公司的成功离不开一支高素质的团队。公司注重人才培养和团队建设,通过提供完善的培训体系和晋升机制,吸引和留住了一批优秀的研发、生产、销售和管理人才。这些人才为公司的发展提供了源源不断的动力和创新力。同时,公司还倡导团队合作精神,鼓励员工之间的沟通与协作,共同为公司的发展贡献力量。这种良好的团队氛围使得Ark-Les能够在面对市场挑战时保持凝聚力和战斗力,实现持续稳健的发展。
这些故事只是基于电子行业一般发展规律的虚构情景,旨在展示一个公司可能的发展路径和策略。实际的电子行业发展过程中,公司的发展会受到众多因素的影响,包括市场环境、技术变革、政策调整等。因此,读者在理解这些故事时,应结合实际情况进行思考和判断。
在电子行业中,品质是生存和发展的关键。Ark-Les Connectors公司从一开始就深知这一点,因此将品质控制作为公司发展的核心战略。公司建立了严格的质量管理体系,从原材料采购到生产流程控制,再到产品检测与售后服务,每一个环节都严格把关。这种对品质的坚持让Ark-Les的产品在市场上赢得了良好的口碑,也为公司积累了大量的忠实客户。
|
[ 经典系列]Real-Time Concepts for Embedded Systems 正好我这有一种嵌入式开发的资料,号称是Embedded Systems 开发探秘之类的经典书,英文版的。拿出共享,希望大家喜欢。… 查看全部问答∨ |
|
|
最初我安装好了evc,也能运行例子程序。不知道我中间运行了什么冬冬,结果在运行evc时,运行不起来了,出现如下问题: Failed to connect the Drop-in CPU   ...… 查看全部问答∨ |
目的:通过NFS远程登录ARM开发板,使得其它PC机也能通过远程调试ARM板 NFS配置正常 主机PC机的ip:192.168.0.1 ARM板ip:192.168.0.20 客户端PC机去telnet 192.168.3.20 连上后出现:(none)login: 不是自 ...… 查看全部问答∨ |
|
求救:本本没有串、并口,大侠们提供一个USB下载线制作资料或地址吧(用于AT89S52单片机的)。 我的本本只有USB口,我买了个USB转串口的线是可以用的,但转并口的线不能用。 现在想自做一个USB下载线或串口下载线,但网上资料全是并口的资料,还求前辈们给个资料或地址。 注:是用于AT89S52芯片的ISP下载线。… 查看全部问答∨ |
|
|
这段时间在玩这颗片子,用RVMDK+Jlink调试环境,大概两周后,发现用jlink调试的时候下载不了程序了,老是蹦出对话框"cannot stop arm device"。上网查一了一下,说是片子执行了random instruction, ...… 查看全部问答∨ |



ASM10DTBD-S664






京公网安备 11010802033920号