Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
19 years ago

audio core

I am using audio core to generate digital audio filters . I want to pass digital signal from ADC to DAC , but it can't operate . Who can help me this problem . Thank you very much !!!

3 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    here is my code by C

    while(1)

    {

    //wait for interrupt signal

    ctrl_reg = IORD_ALT_UP_AUDIO_CONTROL(ALT_UP_AUDIO_BASE);

    ctrl_reg &= ALT_UP_AUDIO_CONTROL_RI_MSK;

    if(ctrl_reg == 0) continue; //if there isn't read interrupt signal , continue wait

    ctrl_reg = IORD_ALT_UP_AUDIO_CONTROL(ALT_UP_AUDIO_BASE);

    //clear interrupt flag

    ctrl_reg &= ~ALT_UP_AUDIO_CONTROL_RI_MSK;

    IOWR_ALT_UP_AUDIO_CONTROL(ALT_UP_AUDIO_BASE, ctrl_reg);

    //read left channel

    alt_up_audio_read_left_channel(&left_reg,read_length);

    //read right channel

    alt_up_audio_read_right_channel(&right_reg,read_length);

    // write left channel

    alt_up_audio_write_left_channel(&left_reg,write_length);

    // write right channel

    alt_up_audio_write_right_channel(&right_reg,write_length);

    }
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Try this example, let me know if it works.

    # include "alt_up_audio.h"

    // assumes input only from right channel

    int main()

    {

    unsigned sample_count;

    long audiobuf[128];

    alt_up_audio_reset_audio_core(); //get the audio started

    while (1)

    {

    sample_count = alt_up_audio_read_right_channel(audiobuf,128);

    if(sample_count)

    { //must write both output channels

    alt_up_audio_write_left_channel(audiobuf,sample_count);

    alt_up_audio_write_right_channel(audiobuf,sample_count);

    }

    }

    }
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hello, i am having the same problem , so is there any workaround for this?

    Thanks!