?? text.c
字號:
//轉一段無繩電話程序,看能否借鑒?
//****
#include <MC145162.h>
//---
uint8 MCControlR;
uint16 MC14bitsAuxCount;
uint16 MC12bitsRefCount;
uint16 MCTxCount;
uint16 MCRxCount;
uint32 MC32bitsBuf;
#define MC145162_DEBUG_OUT 1
//---
//MC145162初始化
void MC145162_Mod_Setup(void);
void MC145162_Mod_Reference(void);
void MC145162_Tx_Rx_Counter(void);
void MC145162_ini(void)
{
MCControlR = 0x88;
MC14bitsAuxCount = 10240;
MCTxCount = 39983;
MCRxCount = 45180;
MC145162_Pin_Install();
MC145162_Mod_Setup();
MC145162_Mod_Reference();
MC145162_Tx_Rx_Counter();
}
//---
//發送control命令集
void MC145162_SendData(uint32 data,uint8 bits,uint8 mod);
void MC145162_Mod_Setup(void)
{
#define MC145162_TEST_BIT_OUTPUT 1
MC32bitsBuf = MCControlR | 0x80;
#if MC145162_TEST_BIT_OUTPUT
MC32bitsBuf |= 0x20;
#endif
MC32bitsBuf <<= 24;
MC145162_Pin_Enb(1);
MC145162_SendData(MC32bitsBuf,8,false);
MC145162_Pin_Enb(0);
}
//---
//發送reference命令集
void MC145162_Mod_Reference(void)
{
if(MC14bitsAuxCount > 16383)MC14bitsAuxCount = 16383;
if(MC12bitsRefCount > 4095)MC12bitsRefCount = 4095;
if(MC14bitsAuxCount < 16)MC14bitsAuxCount = 16;
if(MC12bitsRefCount < 16)MC12bitsRefCount = 16;
#if MC145162_DEBUG_OUT
{static char data[50];
sprintf(data,"MCA=%d\r\n",MC14bitsAuxCount);
dprintf(data);
}
#endif
#define MC145162_Mod_Reference_Bit_AUX (0x01 << 30)
#define MC145162_Mod_Reference_Bit_Tx0 (0x00 << 29)
#define MC145162_Mod_Reference_Bit_Rx0 (0x00 << 28)
#define MC145162_Mod_Reference_12B_REF (MC12bitsRefCount << 16)
#define MC145162_Mod_Reference_Bit_RS1 (0x00 << 15)
#define MC145162_Mod_Reference_Bit_RS2 (0x00 << 14)
#define MC145162_Mod_Reference_Bit_AUXD(MC14bitsAuxCount << 0)
MC32bitsBuf = MC145162_Mod_Reference_Bit_AUX |
MC145162_Mod_Reference_Bit_Tx0 |
MC145162_Mod_Reference_Bit_Rx0 |
MC145162_Mod_Reference_12B_REF |
MC145162_Mod_Reference_Bit_RS1 |
MC145162_Mod_Reference_Bit_RS2 |
MC145162_Mod_Reference_Bit_AUXD;
MC145162_Pin_Enb(1);
MC145162_SendData(MC32bitsBuf,32,false);
MC145162_Pin_Enb(0);
}
//---
//發送counter分頻命令集
void MC145162_Tx_Rx_Counter(void)
{
if(MCTxCount < 16)MCTxCount = 16;
if(MCRxCount < 16)MCRxCount = 16;
MC32bitsBuf = (MCTxCount << 16) | MCRxCount;
#if MC145162_DEBUG_OUT
{static char data[50];
sprintf(data,"MCTxCount=%d\r\nMCRxCount=%d\r\n" ,MCTxCount,MCRxCount);
dprintf(data);
}
#endif
MC145162_Pin_Enb(0);
MC145162_SendData(MC32bitsBuf,32,true);
}
//---
//數據發送子函數
void MC145162_SendData(uint32 data,uint8 bits,uint8 mod)
{uint8 i;
if(bits)bits--;
for(i = 0;i < bits;i++)
{
MC145162_Pin_Din(data&0x80000000);
MC145162_Pin_Clk(1)
MC145162_Pin_Clk(0);
Data <<= 1;
}
MC145162_Pin_Din(data&0x80000000);
MC145162_Pin_Clk(1)
if(mod){MC145162_Pin_Enb(1);}
MC145162_Pin_Clk(0);
if(mod){MC145162_Pin_Enb(0);}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -