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

📄 caninit.c

📁 dsp2812的采用ecan模块通信发送消息的文件源码
💻 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 + -