summaryrefslogtreecommitdiffstats
path: root/Graphic_Equalizer/doc/html/runfft_8hcc-source.html
diff options
context:
space:
mode:
Diffstat (limited to 'Graphic_Equalizer/doc/html/runfft_8hcc-source.html')
-rw-r--r--Graphic_Equalizer/doc/html/runfft_8hcc-source.html166
1 files changed, 166 insertions, 0 deletions
diff --git a/Graphic_Equalizer/doc/html/runfft_8hcc-source.html b/Graphic_Equalizer/doc/html/runfft_8hcc-source.html
new file mode 100644
index 0000000..554df35
--- /dev/null
+++ b/Graphic_Equalizer/doc/html/runfft_8hcc-source.html
@@ -0,0 +1,166 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>Graphic Equalizer: C:/Project Marcel &amp; Oliver/Graphic_Equalizer/src/runfft.hcc Source File</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.9.1 -->
+<div class="qindex"><a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
+<div class="nav">
+<a class="el" href="dir_000000.html">C:</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">Project Marcel &amp; Oliver</a>&nbsp;/&nbsp;<a class="el" href="dir_000002.html">Graphic_Equalizer</a>&nbsp;/&nbsp;<a class="el" href="dir_000004.html">src</a></div>
+<h1>runfft.hcc</h1><a href="runfft_8hcc.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001
+00020 <span class="preprocessor">#include &lt;stdlib.hch&gt;</span>
+00021 <span class="preprocessor">#include "pal_master.hch"</span>
+00022
+00023 <span class="preprocessor">#include "<a class="code" href="configuration_8hch.html">configuration.hch</a>"</span>
+00024 <span class="preprocessor">#if USE_RUNFFT</span>
+00025 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="audio_8hch.html">audio.hch</a>"</span>
+00026 <span class="preprocessor">#include "fft.hch"</span>
+00027
+00028 <span class="preprocessor">#include "debug.hch"</span>
+00029
+00030 <span class="comment">/*</span>
+00031 <span class="comment"> * Forward declarations</span>
+00032 <span class="comment"> */</span>
+00033 <span class="keyword">static</span> macro expr ClockRate = PAL_ACTUAL_CLOCK_RATE;
+00034 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00035 <span class="preprocessor"></span><span class="comment">//input buffer</span>
+00036 ram <span class="keywordtype">signed</span> 18 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00037 <span class="comment">//output buffer</span>
+00038 ram <span class="keywordtype">signed</span> 18 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00039 <span class="preprocessor">#else</span>
+00040 <span class="preprocessor"></span><span class="comment">//input buffer</span>
+00041 ram <span class="keywordtype">signed</span> 16 audio_buffer_in[256] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00042 <span class="comment">//output buffer</span>
+00043 ram <span class="keywordtype">signed</span> 16 audio_buffer_out[128] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00044 <span class="preprocessor">#endif</span>
+00045 <span class="preprocessor"></span><span class="comment">//EQ settings for the FFT</span>
+00046 ram <span class="keywordtype">unsigned</span> 4 EQ_info[128] with { block = <span class="stringliteral">"BlockRAM"</span>};
+00047 <span class="comment">//EQ settings received from the display</span>
+00048
+00049
+00050 <span class="preprocessor">#if HARDWARE_MULTIPLY</span>
+00051 <span class="preprocessor"></span><span class="keywordtype">signed</span> 18 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
+00052
+00053 <span class="keywordtype">signed</span> 18 *audioptr_out1,*audioptr_out2;
+00054
+00055 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4;
+00056 <span class="preprocessor">#else</span>
+00057 <span class="preprocessor"></span><span class="keywordtype">signed</span> 16 *audioptr_in1,*audioptr_in2,*audioptr_in3,*audioptr_in4;
+00058
+00059 <span class="keywordtype">signed</span> 16 *audioptr_out1,*audioptr_out2;
+00060
+00061 <span class="keywordtype">unsigned</span> 6 *displayptr1,*displayptr2,*displayptr3,*displayptr4;
+00062 <span class="preprocessor">#endif</span>
+00063 <span class="preprocessor"></span>
+00074 macro proc <a class="code" href="audio_8hcc.html#a1">audio_main</a>(audiodata, AUDIOIN, AUDIOOUT)
+00075 {
+00076 <span class="keywordtype">signed</span> 18 sample;
+00077 <span class="keywordtype">unsigned</span> 6 sample_count;
+00078 <span class="keywordtype">unsigned</span> 8 i,cycle;
+00079 <span class="keywordtype">unsigned</span> 4 eqinfo;
+00080
+00081 <span class="keywordtype">unsigned</span> 1 FFT_Sync, first;
+00082 macro expr OW = PalAudioOutGetMaxDataWidthCT ();
+00083 macro expr IW = PalAudioInGetMaxDataWidthCT ();
+00084 <span class="keywordtype">signed</span> LeftNew, RightNew;
+00085 <span class="keywordtype">signed</span> Output_sample;
+00086
+00087 ram <span class="keywordtype">unsigned</span> 6 input[64];
+00088
+00089 <span class="comment">//pointers for double and quadruple buffering:</span>
+00090 audioptr_in1 = &amp;audio_buffer_in[0];
+00091 audioptr_in2 = &amp;audio_buffer_in[64];
+00092 audioptr_in3 = &amp;audio_buffer_in[128];
+00093 audioptr_in4 = &amp;audio_buffer_in[192];
+00094
+00095 audioptr_out1 = &amp;audio_buffer_out[0];
+00096 audioptr_out2 = &amp;audio_buffer_out[64];
+00097
+00098 displayptr1 = &amp;audiodata.ifft_info.write[0];
+00099 displayptr2 = &amp;audiodata.ifft_info.write[64];
+00100 displayptr3 = &amp;audiodata.ifft_info.write[128];
+00101 displayptr4 = &amp;audiodata.ifft_info.write[192];
+00102
+00103 FFT_Sync=0;
+00104 par
+00105 {
+00106 <span class="keywordflow">for</span>(;;)
+00107 {
+00108 <span class="keywordflow">if</span> (FFT_Sync) <span class="comment">//if 64 samples are read from ADC...</span>
+00109 {
+00110 par
+00111 {
+00112 <span class="comment">// switch pointers </span>
+00113 audioptr_in1 = audioptr_in2;
+00114 audioptr_in2 = audioptr_in3;
+00115 audioptr_in3 = audioptr_in4;
+00116 audioptr_in4 = audioptr_in1;
+00117
+00118 audioptr_out1 = audioptr_out2;
+00119 audioptr_out2 = audioptr_out1;
+00120
+00121 displayptr1=displayptr2;
+00122 displayptr2=displayptr3;
+00123 displayptr3=displayptr4;
+00124 displayptr4=displayptr1;
+00125
+00126 FFT_Sync = 0;
+00127 }
+00128
+00129 <span class="comment">// FFT calculation</span>
+00130 perform_fft(audioptr_in1);
+00131
+00132 <span class="preprocessor">#if PERFORM_FFT_CALCULATION</span>
+00133 <span class="preprocessor"></span> <a class="code" href="fft_8hcc.html#a5">equalize_audio</a>(&amp;audiodata);
+00134 <span class="preprocessor">#endif</span>
+00135 <span class="preprocessor"></span> <span class="comment">// inverse FFT calculation</span>
+00136 perform_ifft(audioptr_out1,displayptr1);
+00137 }
+00138 <span class="keywordflow">else</span>
+00139 delay;
+00140 }
+00141
+00142 <span class="keywordflow">for</span>(sample_count=0;;)<span class="comment">//store the samples in the inputbuffer</span>
+00143 {
+00144 <span class="keywordflow">if</span> (!FFT_Sync)
+00145 {
+00146 par
+00147 {
+00148 seq
+00149 {
+00150 PalAudioInRead(AUDIOIN, &amp;LeftNew, &amp;RightNew);
+00151 <span class="preprocessor">#if HARDWARE_MULTIPLY </span>
+00152 <span class="preprocessor"></span> audioptr_in1[sample_count] = LeftNew;<span class="comment">//drop 2 LSB's</span>
+00153 <span class="preprocessor">#else</span>
+00154 <span class="preprocessor"></span> audioptr_in1[sample_count] = (LeftNew\\2);<span class="comment">//drop 2 LSB's</span>
+00155 <span class="preprocessor">#endif</span>
+00156 <span class="preprocessor"></span> sample_count++;
+00157 <span class="keywordflow">if</span> (!sample_count)
+00158 {
+00159 FFT_Sync = 1;
+00160 }
+00161 }
+00162 seq
+00163 {
+00164 Output_sample = audioptr_out2[sample_count];
+00165 }
+00166 }
+00167 }
+00168 <span class="keywordflow">else</span>
+00169 {
+00170 delay;
+00171 }
+00172 }
+00173 <span class="keywordflow">for</span>(;;)
+00174 {
+00175 PalAudioOutWrite(AUDIOOUT,(<span class="keywordtype">signed</span> OW)(Output_sample @ 0),(<span class="keywordtype">signed</span> OW)(Output_sample @ 0));
+00176 }
+00177 }<span class="comment">//end par</span>
+00178 }<span class="comment">// end function</span>
+00179 <span class="preprocessor">#endif</span>
+00180 <span class="preprocessor"></span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Nov 29 12:04:48 2004 for Graphic Equalizer by&nbsp;
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.3.9.1 </small></address>
+</body>
+</html>