375|4

90

帖子

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


回复

1940

帖子

0

资源

五彩晶圆(初级)

做得不错,给力


回复

1万

帖子

133

资源

管理员

个人签名

玩板看这里:

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

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


回复

2642

帖子

1

资源

五彩晶圆(初级)

响应看起来挺快

个人签名人已离开,无事别找,找也找不到。

回复

211

帖子

0

资源

版主

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


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

关闭
站长推荐上一条 1/5 下一条

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

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

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

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