⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text.c

📁 MC145162一段无绳电话的程序,供参考
💻 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 + -