📄 caninit.c
字号:
//* file name: CANinit.c
// 本文件是用于初始化 CAN 模块
#include "DSP281x_Device.h"
void DisableDog(void)
{
EALLOW;
SysCtrlRegs.WDCR= 0x0068;//禁止看门狗,并使看门狗时钟为晶振时钟的1/512。
/*---------------------------------------------------------------------------------
WDCR:Watchdog control register bit definitions
bit 15-8 00000000: reserved
bit 7 0: WDFLAG---看门狗复位状态标志位,如果该位置1,表示
看门狗复位满足了条件;如果等于0,表示是上电
复位条件或外部器件复位条件;写1可以将该位清零
bit 6 1: WDDIS----写1,屏蔽看门狗;写0,使能看门狗。只有当SCSR2的
WDOVERRIDE位等于1时,才能改变WDDIS的值,
器件复位后看门狗模块被使能
bit 5-3 101: WDCHK----WDCHK必须写101,写其他值都会引起器件内核复位
bit 2-0 000: WDPS-----配置看门狗计数时钟(WDCLK)相对于OSCCLK/512的倍率
000-WDCLK=OSCCLK/512/1 001- WDCLK=OSCCLK/512/1
010-WDCLK=OSCCLK/512/2 011- WDCLK=OSCCLK/512/4
100-WDCLK=OSCCLK/512/8 101- WDCLK=OSCCLK/512/16
110-WDCLK=OSCCLK/512/32 111- WDCLK=OSCCLK/512/64
----------------------------------------------------------------------------------*/
EDIS;
}
//--------------------------------------------------------------------------
// Example: InitPeripheralClocks:
//---------------------------------------------------------------------------
// This function initializes the clocks to the peripheral modules.
// First the high and low clock prescalers are set
// Second the clocks are enabled to each peripheral.
// To reduce power, leave clocks to unused peripherals disabled
// Note: If a peripherals clock is not enabled then you cannot
// read or write to the registers for that peripheral
void InitPeripheralClocks(void)
{
EALLOW;
// HISPCP/LOSPCP prescale register settings, normally it will be set to default values
SysCtrlRegs.HISPCP.all = 0x0001; //配置高速外设时钟相对于SYSCLKOUT的1/2
/*-------------------------------------------------------------------------
HISPCP:高速外设时钟寄存器,配置高速外设时钟相对于SYSCLKOUT的倍频系数
bit 15-3: reserved
bit 2-0: 000-高速时钟=SYSCLKOUT/1 001-高速时钟=SYSCLKOUT/2(复位时默认)
010-高速时钟=SYSCLKOUT/4 011-高速时钟=SYSCLKOUT/6
100-高速时钟=SYSCLKOUT/8 101-高速时钟=SYSCLKOUT/10
110-高速时钟=SYSCLKOUT/12 111-高速时钟=SYSCLKOUT/14
---------------------------------------------------------------------------*/
SysCtrlRegs.LOSPCP.all = 0x0002;
/*-------------------------------------------------------------------------
LOSPCP:低速外设时钟寄存器,配置低速外设时钟相对于SYSCLKOUT的倍频系数
bit 15-3: reserved
bit 2-0: 000-低速时钟=SYSCLKOUT/1 001-低速时钟=SYSCLKOUT/2(复位时默认)
010-低速时钟=SYSCLKOUT/4 011-低速时钟=SYSCLKOUT/6
100-低速时钟=SYSCLKOUT/8 101-低速时钟=SYSCLKOUT/10
110-低速时钟=SYSCLKOUT/12 111-低速时钟=SYSCLKOUT/14
---------------------------------------------------------------------------*/
// Peripheral clock enables set for the selected peripherals.
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; //使能EV-A外设内部的高速时钟。对于低功耗模式,可以通过软件或者复位清零
SysCtrlRegs.PCLKCR.bit.EVBENCLK=1; //使能EV-B外设内部的高速时钟
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -