打印

用示波器看不到应有的波形

[复制链接]
880|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhuww|  楼主 | 2015-9-24 18:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用系统的示例工程“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);
}
但是下到板子上用示波器看不到应有的波形啊
到底是哪里有问题?!!求救啊!!
沙发
zhanglli| | 2015-9-24 18:37 | 只看该作者
试一下这个程序:
/******************************************************************************/
#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 */
/*************************************************************************************/

使用特权

评论回复
板凳
zhuww|  楼主 | 2015-9-24 18:38 | 只看该作者
我用你这个程序试了一下 还是不行啊 从示波器看不到正常输出 实际上是什么输出都没有

使用特权

评论回复
地板
lium| | 2015-9-24 18:38 | 只看该作者
是不是哪里还要改啊?

使用特权

评论回复
5
guoyt| | 2015-9-24 18:38 | 只看该作者
ADC和DAC分开验证不就简单了

使用特权

评论回复
6
zhuww|  楼主 | 2015-9-24 18:39 | 只看该作者
哦,也是

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

893

主题

8252

帖子

1

粉丝