看不到应有的波形

[复制链接]
566|5
 楼主| llljh 发表于 2017-5-1 22:30 | 显示全部楼层 |阅读模式
我用系统的示例工程“Filter_ADC_VDAC Example Project”做数字滤波 然后用示波器看结果 该示例工程很方便 先赞一个

然后我把ADC设置成16位 但只看最重要的8位信号的DAC转换 对main.c里的中断作如下修改
原中断
CY_ISR(filterVDAC)
{
    /* Convert the 2's complement value to an unsigned 8-bit value
     * The VDAC expects an unsigned 8-bit value as input.
     */
        VDAC8_SetValue(Filter_Read8(Filter_CHANNEL_A) + 128u);
}

我的修改
CY_ISR(filterVDAC)
{
    /* Convert the 2's complement value to an unsigned 8-bit value
     * The VDAC expects an unsigned 8-bit value as input.
     */
        uint8 test;
        test=(Filter_Read16(Filter_CHANNEL_A)>>8);
        VDAC8_SetValue(test + 128u);
}
但是下到板子上用示波器看不到应有的波形啊
到底是哪里有问题?!!求救啊!!
morrisk 发表于 2017-5-1 22:33 | 显示全部楼层
试一下这个程序:
/******************************************************************************/
#include <device.h>
#include <VDAC8.h>

#define REQUEST_PER_BURST        (1u)
#define BYTES_PER_BURST          (2u)
#define UPPER_SRC_ADDRESS        CYDEV_PERIPH_BASE
#define UPPER_DEST_ADDRESS       CYDEV_PERIPH_BASE

void DMA_Config(void);

CY_ISR(filterVDAC)
{

        VDAC8_SetValue((uint8)(Filter_Read16(Filter_CHANNEL_A)>>8));

}

void main()
{
    /* Start all components used on schematic */
    ADC_DelSig_IRQ_Start();
    isr_StartEx(filterVDAC);
    ADC_DelSig_Start();
    ADC_DelSig_StartConvert();
    VDAC8_Start();
    Opamp_Start();
    Filter_Start();
        Filter_DALIGN_REG = 0x00;
        Filter_SetCoherency(Filter_CHANNEL_A, Filter_KEY_LOW);

    /* User-implemented function to set-up DMA */
    DMA_Config();

    /* Enable Global Interrupts */
    CYGlobalIntEnable;

    for(;;)
    {
    }
} /* End of main */

void DMA_Config(void)
{
    /* Declare variable to hold the handle for DMA channel */
    uint8 channelHandle;
    uint8 tdChanA;
    channelHandle = DMA_DmaInitialize(BYTES_PER_BURST, REQUEST_PER_BURST,
                                        HI16(UPPER_SRC_ADDRESS), HI16(UPPER_DEST_ADDRESS));
    tdChanA = CyDmaTdAllocate();
    CyDmaTdSetConfiguration(tdChanA, 2u, DMA_INVALID_TD, 0u);
    CyDmaTdSetAddress(tdChanA, LO16((uint32)ADC_DelSig_DEC_SAMP_PTR), LO16((uint32)Filter_STAGEA_PTR));
    CyDmaChSetInitialTd(channelHandle, tdChanA);

    CyDmaChEnable(channelHandle, 1u);
}

/* [] END OF FILE */
/*************************************************************************************/
 楼主| llljh 发表于 2017-5-1 22:35 | 显示全部楼层
我用你这个程序试了一下 还是不行啊 从示波器看不到正常输出 实际上是什么输出都没有
xxmmi 发表于 2017-5-1 22:40 | 显示全部楼层

是不是哪里还要改啊?
kangzj 发表于 2017-5-1 22:42 | 显示全部楼层
ADC和DAC分开验证不就简单了
 楼主| llljh 发表于 2017-5-1 22:44 | 显示全部楼层
嗯,那我按大家的说法挨个排查一下,先结贴啦,谢谢哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部