|
【GD32E231 DIY大赛】3.点亮一排数码管
[复制链接]
感觉这次有点吃亏,因为数码管是共阴的一寸的,又大又笨,每个下边接一个8050三极管,然后又接8条线。我说平时做产品时都有一个数码管控制芯片。但这次我没有用只得硬着头皮上了。今天,我用定时器13分配给每个三极管25HZ的信号,但不是太好,以后慢慢调整吧
以下是定时器13的程序。
- void Timer13_Init(void)
- {
- timer_parameter_struct timer_initpara;
- rcu_periph_clock_enable(RCU_TIMER13);
- timer_deinit(TIMER13);
-
- /* TIMER configuration */
- timer_initpara.prescaler = 719;
- timer_initpara.alignedmode = TIMER_COUNTER_EDGE;
- timer_initpara.counterdirection = TIMER_COUNTER_UP;
- timer_initpara.period = 999; //10MS
- timer_initpara.clockdivision = TIMER_CKDIV_DIV1;
- timer_initpara.repetitioncounter = 0;
- timer_init(TIMER13,&timer_initpara);
- timer_interrupt_enable(TIMER13, TIMER_INT_UP); /*Enable TIMER2*/
- nvic_irq_enable(TIMER13_IRQn, 0); //Set priority to 0(0-2)
- /* auto-reload preload enable */
- timer_auto_reload_shadow_enable(TIMER13);
- /* auto-reload preload enable */
- timer_enable(TIMER13);
- }
- /*The interrupt handler function of tmer2*/
- void TIMER13_IRQHandler(void)
- {
- if(RESET != timer_interrupt_flag_get(TIMER13, TIMER_INT_FLAG_UP))
- {
- display_count++;
- }
- timer_interrupt_flag_clear(TIMER13, TIMER_INT_FLAG_UP);
- }
复制代码
以下是运行的照片,虽然有点闪,但功能上达到目地了,下次再调整吧。
|
|