查看: 2801  |  回复: 2
GD32E231开发板 Workshop 报告:PWM调光灯
慧欧科技
3
主题
5
回复
发表于2019-05-21 23:19:53 | 显示全部楼层
1# 电梯直达

PWM调光灯


一、方案简介

采用GD32E231做主控MCU,实现LED的亮度循环调节,电路设计简单,使用性强;单按键操作,第一次长按5s打开LED灯、

第二次长按5s关闭LED灯,单击调节亮度,分十级循环调节。

二、GD32 MCU简介

72Mhz的cortex m23内核。
2Msps的内置ADC。
64KB flash,8KB SRAM。
timer,RTC,usart,spi,i2c,i2s全都有。
内置比较器,内置运放。

GD32MCU 各模块的性能优势

内核指令效率比m0+内核更高。
内置ADC速度较快。
各项外设资源丰富。
有内置opa,这点比较有特色。


三、方案系统框架

  

四、实物图及功能的实现

1、按键用开发板的Wakeup键

点击查看大图

2、LED灯亮度控制用MCU的PA6脚控制PWM的输出,PWM用定时器TIME2的通道0,频率200Hz。

     


五、代码分享(部分代码、完整代码见压缩包)

void KeyDealWith(void)
{
uint16_t KeyTemp;
KeyTemp=KeyScan();
if(KeyTemp!=0x0000)
{
if(key_long_short_flag) //
{
//if(KeyTemp==1)
//{
if(led_start_flag==1)
{
timer_channel_output_pulse_value_config(TIMER2,TIMER_CH_0,500);
led_class=500;
led_start_flag=0;
}
else
{
timer_channel_output_pulse_value_config(TIMER2,TIMER_CH_0,484);
led_class=500;
led_start_flag=1;
}
//}
}
else
{
//if(KeyTemp==1)
//{
if(led_start_flag)
{
led_class-=50;
if(led_class<50)
{
led_class=500;
}
timer_channel_output_pulse_value_config(TIMER2,TIMER_CH_0,led_class);
}
else
{
timer_channel_output_pulse_value_config(TIMER2,TIMER_CH_0,500);
led_class=500;
}
//}
}
}


}

int main(void)
{
  //uint32_t   
/* initialize KEY and LED, configure SysTick */
    //gd_eval_key_init(KEY_WAKEUP, KEY_MODE_EXTI);
    led_config();
    systick_config();
    
    /* flash the LED for test */
    led_flash(1);

    /* configure EXTI, TIMER */
    //exti_config();
    gpio_config();
    timer_config();
    led_class=499;
    while(1)
{
delay_1ms(60);
KeyDealWith();
    }
}


GD32E231_LED_V100.zip 



freeMan323
0
主题
2
回复
发表于2019-06-13 17:19:27   |  显示全部楼层
3#
想了解一下  你现在是用IAR还是keil进行开发?IAR调试的过程中会出现闪退的问,其次他们的中断向量设置在什么地方是否有找到

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部