1958|7

111

帖子

0

资源

一粒金砂(中级)

【GD32450I-EVAL】简易示波演示 [复制链接]

淘了一块便宜的函数发生器回来,通过电阻分压后测算电压。通过液晶屏显示。

本来弄了个前置放大电路板子,可我模电水平实在不行,弄来弄去弄不好,只能直接分压了。

此时使用的是PA4引脚,ADC0通道4

 

1-使用计时器每100ms进行一次连续转换

    timer_initpara.prescaler         = 9999;
    timer_initpara.period            = 999;
    timer_init(TIMER2,&timer_initpara);    
    timer_interrupt_enable(TIMER2, TIMER_INT_UP);
    timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP);
    // timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_CH1);
    // dbg_periph_enable(DBG_TIMER2_HOLD);
    nvic_irq_enable(TIMER2_IRQn, 1U, 0U);

    /* enable TIMER2 */
    timer_enable(TIMER2);

2-定时器中断服务函数

void TIMER2_IRQHandler(void)
{
    if(timer_interrupt_flag_get(TIMER2, TIMER_INT_FLAG_UP)==SET)
    {
        adc_special_function_config(ADC0, ADC_CONTINUOUS_MODE, ENABLE);
        adc_software_trigger_enable(ADC0, ADC_REGULAR_CHANNEL);
        timer_interrupt_flag_clear(TIMER2, TIMER_INT_FLAG_UP);
    }
}

3-ADC每次测试完480个点(刚好屏幕跨度像素)停止转换

void ADC_IRQHandler(void)
{
    uint16_t i=0;
    char t_char[30] = "";
    static int s_counter=0;
    static uint16_t s_recorder[480];
    uint16_t *t_displaySize;
    
    if(adc_interrupt_flag_get(ADC0, ADC_INT_FLAG_EOC)==SET)
    {
        s_recorder[s_counter] = adc_regular_data_read(ADC0);
        adc_counter++;
        s_counter++;
        if(s_counter>=480){
            s_counter = 0;
            adc_special_function_config(ADC0, ADC_CONTINUOUS_MODE, DISABLE);
            t_displaySize = EXT_BUFFER0_ADDR;
            memset((void *)EXT_BUFFER0_ADDR, 0, LCD_WIDTH * LCD_HEIGHT * LCD_FB_BYTE_PER_PIXEL * 2);
            for (i = 0; i < 480; i++)
                t_displaySize[s_recorder*272/0xFFF*480 + i] = 0xAAAA;
        }
        adc_interrupt_flag_clear(ADC0, ADC_INT_FLAG_EOC);
    }
}

4-其中,停止转换的时候将点写入到显示缓存

            for (i = 0; i < 480; i++)
                t_displaySize[s_recorder*272/0xFFF*480 + i] = 0xAAAA;

 

 

调整频率时的显示效果:

7.gif

此帖出自GD32 MCU论坛

回复

1975

帖子

0

资源

五彩晶圆(初级)

做得不错,给力


回复

1万

帖子

2853

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


回复

4584

帖子

1

资源

五彩晶圆(初级)

响应看起来挺快

个人签名

默认摸鱼


回复

1986

帖子

3

资源

版主

感觉还不错,就是屏幕的UI设计的不太美观哈,功能挺不错的,但是这个个示波器的频率应该不会太高,可以简单的测量一些频率较低的波形,不过能做到这里非常厉害啦~点个赞!!!

点评

其实一开始是想用 littlevgl 来显示,那就漂亮了,可是看着看着忽然发现用 littlevgl 的图标刷新率太感人了……那个刷新率做出来也没意义  详情 回复 发表于 2020-10-25 22:35

回复

111

帖子

0

资源

一粒金砂(中级)

w494143467 发表于 2020-10-12 14:32 感觉还不错,就是屏幕的UI设计的不太美观哈,功能挺不错的,但是这个个示波器的频率应该不会太高,可以简单 ...

其实一开始是想用 littlevgl 来显示,那就漂亮了,可是看着看着忽然发现用 littlevgl 的图标刷新率太感人了……那个刷新率做出来也没意义


回复

2

帖子

0

资源

一粒金砂(初级)

楼主,有QQ么加一下,有偿请教您问题

点评

什么问题先直接说一下吧,能在论坛里说清楚就直接论坛里搞定了  详情 回复 发表于 2020-11-7 18:56

回复

111

帖子

0

资源

一粒金砂(中级)

张少兵 发表于 2020-11-6 16:11 楼主,有QQ么加一下,有偿请教您问题

什么问题先直接说一下吧,能在论坛里说清楚就直接论坛里搞定了


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

最新文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表