📄 一些常用的c语言音响程序(5):收音头控制程序(有些难度) - enbia's blog.mht
字号:
work=20
mode type define:<BR>#define=20
MODE_IN1 0x28<BR>#define=20
MODE_IN2 0x29<BR>#define=20
MODE_OUT 0x2a<BR><BR>#define=20
CTE_ON 0x040000<BR><BR>#de=
fine=20
IOC1 0x000001<BR>#define=20
IOC2 0x000002<BR>#define=20
IO1 0x000004<B=
R>#define=20
IO2 0x000008<B=
R><BR>#define=20
BO1_ON 0x000010<BR>#define=
=20
BO2_ON 0x000020<BR>#define=
=20
BO3_ON 0x000040<BR>#define=
=20
BO4_ON 0x000080<BR><BR>#de=
fine=20
DO_MODE_UNLOCK 0x000200<BR>#define=20
DO_MODE_END_UC 0x000400<BR>#define=20
DO_MODE_MASK ~0x000e00<BR><BR>//=20
----------------------------------------<BR>// DEVIDER mode type =
define<BR>//=20
----------------------------------------<BR>#define=20
AM_DV_MODE 0x000000 &=
nbsp;//=20
16 BIT<BR>#define=20
SW_DV_MODE 0x020000 &=
nbsp;//=20
20 <BR>#define=20
FM_DV_MODE 0x020000 &=
nbsp;//=20
20 BIT SWALLOW<BR><BR>#define AM_DV_REF_9KHz=20
0x900000 // 9 =
KHZ<BR>#define=20
AM_DV_REF_10KHz 0x800000 // 10=20
KHZ<BR><BR>#define=20
SW_DV_REF 0xa00000 &n=
bsp;//=20
5 KHZ<BR>#define=20
FM_DV_REF 0x300000 &n=
bsp;//=20
25 KHZ<BR><BR>#define=20
PLL_OFF_REF 0xe00000 =
//=20
PLL inhibit and OSC stop.<BR><BR>//=20
----------------------------------------<BR>// IF Count<BR>//=20
----------------------------------------<BR>#define=20
GATE_TIME 32<BR><BR>#define=20
GATE_TIME_32MS 0x020000 //<=
BR>#define=20
GATE_TIME_4MS 0x000000<BR>#define=20
GATE_TIME_8MS 0x010000<BR><BR>#define=20
IFS 0x100000&n=
bsp; <BR><BR>#define=20
AM_IF_CNT=20
450*GATE_TIME =
//=20
450KH; <BR>#define AM_IF_CNT_MIN AM_IF_CNT -=20
AM_IF_CNT*0.01<BR>#define AM_IF_CNT_MAX =
AM_IF_CNT +=20
AM_IF_CNT*0.01<BR><BR>#define SW_IF_CNT=20
450*GATE_TIME =
//=20
450KH;<BR>#define SW_IF_CNT_MIN SW_IF_CNT -=20
SW_IF_CNT*0.01<BR>#define SW_IF_CNT_MAX =
SW_IF_CNT +=20
SW_IF_CNT*0.01<BR><BR>#define FM_IF_CNT=20
10700*GATE_TIME &nbs=
p; //=20
10.7 MH; <BR>#define FM_IF_CNT_MIN FM_IF_CNT -=20
FM_IF_CNT*0.01 <BR>#define FM_IF_CNT_MAX=20
FM_IF_CNT + FM_IF_CNT*0.01 <BR><BR>// =
----------------------------------------<BR>// Frequence Refrence<BR>//=20
----------------------------------------<BR>#define=20
AM_FREF_9KHz 9 =
//=20
9khz<BR>#define=20
AM_FREF_10KHz 10 &nbs=
p;//=20
10khz<BR><BR>#define=20
SW_FREF 5  =
; //=20
5khz<BR>#define =
FM_FREF (25*2)=20
// Fref=3D25*2 khz<BR><BR>// Frequence Range<BR>#define=20
AM_MIN_9KHz 522  =
; //=20
KHZ<BR>#define=20
AM_MAX_9KHz 1611 &nbs=
p;//=20
KHZ<BR><BR>#define=20
AM_MIN_10KHz 530 &nbs=
p;//=20
KHZ<BR>#define=20
AM_MAX_10KHz 1610 //=20
KHZ<BR><BR>#define=20
SW_MIN 1700 &nb=
sp; //=20
KHZ<BR>#define=20
SW_MAX 25000 &n=
bsp; //=20
KHZ<BR><BR>#define=20
FM_MIN 8700 &nb=
sp; //=20
10KHZ<BR>#define=20
FM_MAX 10800 &n=
bsp; //=20
10KHZ<BR><BR>// Frequence Counter Range<BR>#define=20
AM_CNT_MIN_9KHz ((AM_MIN_9KHz + =
450)/9)<BR>#define=20
AM_CNT_MAX_9KHz ((AM_MAX_9KHz + =
450)/9)<BR><BR>#define=20
AM_CNT_MIN_10KHz ((AM_MIN_10KHz + 450)/10)<BR>#define=20
AM_CNT_MAX_10KHz ((AM_MAX_10KHz + 450)/10)<BR><BR>#define=20
SW_CNT_MIN ((SW_MIN +=20
450)/SW_FREF)<BR>#define =
SW_CNT_MAX ((SW_MAX=20
+ 450)/SW_FREF)<BR>#define=20
FM_CNT_MIN ((FM_MIN + 1070)/((FM_FREF =
*100)/1000))<BR>#define =
FM_CNT_MAX ((FM_MAX +=20
1070)/((FM_FREF *100)/1000))<BR><BR>//=20
----------------------------------------<BR>// Search Step<BR>//=20
----------------------------------------<BR>#define=20
AM_CNT_STEP 1 &=
nbsp; //=20
F_step=3D1*5khz<BR>#define=20
SW_CNT_STEP 1 &=
nbsp; //=20
F_step=3D1*5khz<BR><BR>#define=20
FM_CNT_STEP_100KHz 2 =
//=20
F_step=3D2*50khz when Fref=3D25khz<BR>#define=20
FM_CNT_STEP_50KHz 1 &=
nbsp; //=20
F_step=3D50khz when Fref=3D25khz<BR><BR>typedef struct =
{<BR> DWORD=20
DivMode;<BR> DWORD DivRefPara;<BR><BR> WORD=20
IFCntMax;<BR> WORD IFCntMin;<BR><BR> BYTE=20
FRef;<BR><BR> WORD CntMax;<BR> WORD=20
CntMin;<BR><BR> BYTE CntStep;<BR>}BAND_INFO;<BR><BR>enum=20
{<BR> BAND_AM,<BR> BAND_FM,<BR> BAND_SW<=
BR>};<BR> <BR>static=20
BAND_INFO code BandInfo_AM_9KHz =3D {AM_DV_MODE, AM_DV_REF_9KHz, =
AM_IF_CNT_MAX,=20
AM_IF_CNT_MIN, AM_FREF_9KHz, AM_CNT_MAX_9KHz, AM_CNT_MIN_9KHz,=20
AM_CNT_STEP};<BR>static BAND_INFO code BandInfo_AM_10KHz =3D =
{AM_DV_MODE,=20
AM_DV_REF_10KHz, AM_IF_CNT_MAX, AM_IF_CNT_MIN, AM_FREF_10KHz, =
AM_CNT_MAX_10KHz,=20
AM_CNT_MIN_10KHz, AM_CNT_STEP};<BR><BR>static BAND_INFO code =
BandInfo_FM_100KHz=20
=3D {FM_DV_MODE, FM_DV_REF, FM_IF_CNT_MAX, FM_IF_CNT_MIN, FM_FREF, =
FM_CNT_MAX,=20
FM_CNT_MIN, FM_CNT_STEP_100KHz};<BR>static BAND_INFO code =
BandInfo_FM_50KHz =3D=20
{FM_DV_MODE, FM_DV_REF, FM_IF_CNT_MAX, FM_IF_CNT_MIN, FM_FREF, =
FM_CNT_MAX,=20
FM_CNT_MIN, FM_CNT_STEP_50KHz};<BR><BR>static BAND_INFO code BandInfo_SW =
=3D=20
{SW_DV_MODE, SW_DV_REF, SW_IF_CNT_MAX, SW_IF_CNT_MIN, SW_FREF, =
SW_CNT_MAX,=20
SW_CNT_MIN, SW_CNT_STEP};<BR><BR>//=20
----------------------------------------------------------------<BR>//=20
Variables<BR>//=20
----------------------------------------------------------------<BR>stati=
c DWORD=20
idata dwPLL_Shadow_IN1;<BR>static DWORD idata =
dwPLL_Shadow_IN2;<BR><BR>static=20
WORD idata cur_count[3]; // Current=20
count<BR><BR>static BOOL bST_MONO;<BR>static BOOL b_amstep;<BR>static =
BOOL=20
b_fmstep =3D 1;<BR><BR>static BYTE idata=20
band; <BR><BR>//=20
----------------------------------------------------------------<BR>// =
external=20
functions<BR>//=20
----------------------------------------------------------------<BR>stati=
c void=20
Tuner_Set_Frequency_Int(void);<BR>static void Write_LC72131_Addr(BYTE=20
addr);<BR>static DWORD Read_72131(void);<BR>static void =
Write_LC72131(BYTE addr,=20
DWORD value);<BR>static WORD Count_To_Freq(void);<BR><BR>extern void=20
Pause(BYTE);<BR>extern BOOL Write_EEPROM(BYTE, BYTE);<BR>extern BYTE=20
Read_EEPROM(BYTE);<BR><BR>extern void Temp_Mute(BOOL =
bOnOff);<BR><BR>#endif=20
<DIV class=3Dtextbox-urls><IMG class=3Dmeta-button alt=3D"Comments Feed" =
src=3D"http://www.enbia.com/blog/styles/mulog/images/rss_comment.png"> =
<B>Comments=20
Feed:</B> http://www.Enbia.com/blog/feed.asp?q=3Dcomment&id=3D21 =
<BR><IMG=20
class=3Dmeta-button alt=3D"UTF-8 Encoding"=20
src=3D"http://www.enbia.com/blog/styles/mulog/images/utf8.png"> =
<B>Trackback=20
URL:</B> http://www.Enbia.com/blog/trackback.asp?id=3D21 =
</DIV></DIV></DIV><BR>
<SCRIPT language=3Djavascript =
src=3D"http://www.enbia.com/blog/common.js"=20
type=3Dtext/javascript></SCRIPT>
<A name=3Dcomments></A>
<DIV class=3Dcomment-wrapper id=3DcommentWrapper>
<DIV class=3Dcomment-top id=3DcommentTop>View Mode: <A=20
href=3D"javascript:toggleComments(true,true);">Show All</A> | <A=20
href=3D"javascript:toggleComments(true,false);">Comments: 1</A> | <A=20
href=3D"javascript:toggleComments(false,true);">Trackbacks: 2416</A> | =
<A=20
href=3D"javascript:toggleOrder();">Toggle Order</A> | Views: 3290 </DIV>
<DIV class=3Dcommentbox id=3Dcomment7><A name=3Dcomment7></A>
<DIV class=3Dcommentbox-title><A =
href=3D"javascript:doQuote('comm_7','ipman')"><IMG=20
alt=3DQuote=20
src=3D"http://www.enbia.com/blog/styles/mulog/images/icon_quote.gif"></A>=
<B><A=20
href=3D"http://www.enbia.com/blog/user.asp?act=3Dview&id=3D9">ipman</=
A></B>=20
<DIV class=3Dcommentbox-label>[ 2006-03-16 22:40:07 ] </DIV></DIV>
<DIV class=3Dcommentbox-content id=3Dcomm_7>Thank you very much! =
</DIV></DIV>
<DIV class=3Dtrackbackbox id=3Dtrackback17660><A =
name=3Dtrackback17660></A>
<DIV class=3Dtrackbackbox-title><IMG alt=3DTrackback=20
src=3D"http://www.enbia.com/blog/styles/mulog/images/icon_trackback.gif">=
<B><A=20
href=3D"http://www.51jipiao.net/guonei.asp" =
target=3D_blank>=E6=89=93=E6=8A=98=E6=9C=BA=E7=A5=A8</A></B>=20
<DIV class=3Dtrackbackbox-label>[ =E6=89=93=E6=8A=98=E6=9C=BA=E7=A5=A8 | =
2006-12-31 11:44:30 ] </DIV></DIV>
<DIV =
class=3Dtrackbackbox-content>=E6=89=93=E6=8A=98=E6=9C=BA=E7=A5=A85744</DI=
V></DIV>
<DIV class=3Dtrackbackbox id=3Dtrackback17661><A =
name=3Dtrackback17661></A>
<DIV class=3Dtrackbackbox-title><IMG alt=3DTrackback=20
src=3D"http://www.enbia.com/blog/styles/mulog/images/icon_trackback.gif">=
<B><A=20
href=3D"http://www.sh-dingyi.net/" =
target=3D_blank>=E5=87=8F=E9=80=9F=E6=9C=BA</A></B>=20
<DIV class=3Dtrackbackbox-label>[ =E5=87=8F=E9=80=9F=E6=9C=BA | =
2006-12-31 11:44:57 ] </DIV></DIV>
<DIV =
class=3Dtrackbackbox-content>=E5=87=8F=E9=80=9F=E6=9C=BA9543</DIV></DIV>
<DIV class=3Dtrackbackbox id=3Dtrackback17662><A =
name=3Dtrackback17662></A>
<DIV class=3Dtrackbackbox-title><IMG alt=3DTrackback=20
src=3D"http://www.enbia.com/blog/styles/mulog/images/icon_trackback.gif">=
<B><A=20
href=3D"http://www.hdkz.com.cn/index1.htm" =
target=3D_blank>=E5=88=BB=E7=AB=A0</A></B>=20
<DIV class=3Dtrackbackbox-label>[ =E5=88=BB=E7=AB=A0 | 2006-12-31 =
11:45:27 ] </DIV></DIV>
<DIV class=3Dtrackbackbox-content>=E5=88=BB=E7=AB=A06782</DIV></DIV>
<DIV class=3Dtrackbackbox id=3Dtrackback17663><A =
name=3Dtrackback17663></A>
<DIV class=3Dtrackbackbox-title><IMG alt=3DTrackback=20
src=3D"http://www.enbia.com/blog/styles/mulog/images/icon_trackback.gif">=
<B><A=20
href=3D"http://www.bahouse.cn/" =
target=3D_blank>=E5=8C=97=E4=BA=AC=E7=A7=9F=E6=88=BF</A></B>=20
<DIV class=3Dtrackbackbox-label>[ =E5=8C=97=E4=BA=AC=E7=A7=9F=E6=88=BF | =
2006-12-31 11:48:22 ] </DIV></DIV>
<DIV =
class=3Dtrackbackbox-content>=E5=8C=97=E4=BA=AC=E7=A7=9F=E6=88=BF5337</DI=
V></DIV>
<DIV class=3Dtrackbackbox id=3Dtrackback17664><A =
name=3Dtrackback17664></A>
<DIV class=3Dtrackbackbox-title><IMG alt=3DTrackback=20
src=3D"http://www.enbia.com/blog/styles/mulog/images/icon_trackback.gif">=
<B><A=20
href=3D"http://www.51jipiao.net/" =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -