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

📄 wdt_port_clk_init.c

📁 CAN通讯底层节点
💻 C
字号:
/*------------------------------------------------------------------------------
;CAN总线大坝监测系统
;底层节点
;文件名称: wdt_port_clk_init.c
;函数功能:看门狗,时钟,交叉开关,IO口初始化
;MCU支持:  C8051F040
;上海富方软件合肥自动化分公司
;-----------------------------------------------------------------------------*/

#include "c8051F040.h"
#include "wdt_port_clk_init.h"



////////////////////////////////////////////////////////////////////////////////
// 看门狗关闭,之前最好关中断
////////////////////////////////////////////////////////////////////////////////
void Watchdog_Close (void){
/* 0xFF锁住禁止功能,WDT超时间隔为4^(3+WDTCN[2-0])*Tsysclk   */
/* 复位后默认开启且为最大超时间隔,复位不影响/RST引脚        */
/* 0xA5使能和重载看门狗定时器,在4个系统周期内写入0xDE和0xAD */
    WDTCN = 0xDE;   
   	WDTCN = 0xAD;   
}



////////////////////////////////////////////////////////////////////////////////
// 交叉开关配置,I/O口配置
////////////////////////////////////////////////////////////////////////////////
void Port_Config (void){
    SFRPAGE_SAVE = SFRPAGE;  

/* 交叉开关配置 */
    SFRPAGE = CONFIG_PAGE;
    XBR3 = 0x80;     // CAN发送脚 CTX (B7)为推挽模式,距离大建议为开漏模式

    SFRPAGE = SFRPAGE_SAVE;  
}



////////////////////////////////////////////////////////////////////////////////
// 时钟初始化,使用外部11.0592MHz晶振作为时钟源
////////////////////////////////////////////////////////////////////////////////
void Sysclk_Init (void){	 
	int n;                        
	SFRPAGE_SAVE = SFRPAGE;   
	
	SFRPAGE = CONFIG_PAGE;
	OSCXCN  = 0x77;                 // 0x7x外部晶振2分频,0x6x外部晶振不分频;XFCN = 111, 10-30Mhz, XFCN = 110, 4-10Mhz;
	for (n=0;n<255;n++);            // 等待1ms以上
	while ((OSCXCN & 0x80) == 0);   // B7为1表示外部晶振稳定运行
	CLKSEL |= 0x01;                 // 选择外部时钟
	OSCICN = 0x00;                  // 内部晶振禁止
	
	SFRPAGE = SFRPAGE_SAVE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -