浮名此生分享 http://blog.sciencenet.cn/u/hailangww 工学博士

博文

[转载]初始化外设时钟

已有 888 次阅读 2022-9-27 09:58 |系统分类:科研笔记|文章来源:转载

//--------------------------------------------------------------------------

// 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)

{

 //等同汇编指令#define  EALLOW asm(" EALLOW");原来TI的DSP为了提高安全性能,

//将很多关键寄存器作了保护处理。通过状态寄存器1(ST1)的位6设置与复位,来决定是否

//允许DSP指令对关键寄存器进行操作。这些关键寄存器包括:器件仿真寄存器、FLASH寄存

//器、CSM寄存器、PIE矢量表、系统控制寄存器、GPIOMux寄存器等等。

   EALLOW;

// HISPCP/LOSPCP prescale register settings, normally it will be set to default values

   SysCtrlRegs.HISPCP.all = 0x0001;  //High speed clock = SYSCLKOUT/2=75MHZ

   SysCtrlRegs.LOSPCP.all = 0x0002;


// Peripheral clock enables set for the selected peripherals.使能一些外设时钟:EVA,EVB,SCIA,

// SCIB ,MCBSP,SPI,ECAN,ADC的时钟被使能,通常为了降低功耗,没用到的外设,时钟关闭

   SysCtrlRegs.PCLKCR.bit.EVAENCLK=1;

   SysCtrlRegs.PCLKCR.bit.EVBENCLK=1;

   SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1;

   SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1;

   SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=1;

   SysCtrlRegs.PCLKCR.bit.SPIENCLK=1;

   SysCtrlRegs.PCLKCR.bit.ECANENCLK=1;

   SysCtrlRegs.PCLKCR.bit.ADCENCLK=1;

//等同#define  EDIS   asm(" EDIS"),清除状态寄存器1的C6位,来防止杂散代码或指针破坏寄存器内容。

   EDIS;

}

转自《C2000手册》



https://blog.sciencenet.cn/blog-54347-1357001.html

上一篇:[转载]锁相环初始化
下一篇:[转载]官方锁相环初始化例程
收藏 IP: 58.34.184.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 14:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部