F28335的InitSysCtrl()与DSP2833x_SysCtrl.c文件(1)

开发DSP除了CCS之外,TI还推出了一个controlSUITE,专门针对C2000系列,主要是官网资源的集中和分类。软件免费只需要下载安装,由于不喜欢被别人加工注释了代码与工程,所以controlSUITE是个不错的选择。而且里边是TI原装的东西,所以应该是最精华的!打开28335的几个例子,main函数第一个调用的就是InitSysCtrl(),而该函数就在DSP2833x_SysCtrl....
摘要由CSDN通过智能技术生成

开发DSP除了CCS之外,TI还推出了一个controlSUITE,专门针对C2000系列,主要是官网资源的集中和分类。软件免费只需要下载安装,由于不喜欢被别人加工注释了代码与工程,所以controlSUITE是个不错的选择。而且里边是TI原装的东西,所以应该是最精华的!

打开28335的几个例子,main函数第一个调用的就是InitSysCtrl(),而该函数就在DSP2833x_SysCtrl.c文件,

// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP2833x_SysCtrl.c file.
   InitSysCtrl()

所以工程里边必须包含DSP2833x_SysCtrl.c。打开

C:\ti\controlSUITE\device_support\f2833x\v142\DSP2833x_common\source里边有DSP2833x_SysCtrl.c

其实在main函数里边对InitSysCtrl()的作用已经说了:初始换系统控制:具体包括PLL,看门狗,使能外设时钟。由于是官方例子,就是套路,不用问为什么这么做,因为TI就是这样做的。

进入DSP2833x_SysCtrl.c

//---------------------------------------------------------------------------
// InitSysCtrl:
//---------------------------------------------------------------------------
// Thi

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
/* * main.c * * Created on: 2018-3-21 * Author: Administrator */ #include "DSP2833x_Device.h" // DSP2833x Headerfile Include File #include "DSP2833x_Examples.h" // DSP2833x Examples Include File // 定义计时器参数 #define TIMER_PERIOD 50000 // 计时器计数范围 #define TIMER_CLK 150E6 // 计时器时钟频率 // 定义计时器计数值和标志位 volatile Uint32 timer_count = 0; volatile int timer_running = 0; // 定义按钮中断服务函数 interrupt void button_isr(void) { // 判断按钮状态并执行相应操作 if(GpioDataRegs.GPADAT.bit.GPIO0 == 0) // 开始计时按钮 { if(!timer_running) // 如果计时器未运行,则启动计时器 { CpuTimer0Regs.TCR.bit.TSS = 0; // 启动计时器 timer_running = 1; // 标记计时器正在运行 } else // 如果计时器正在运行,则暂停计时器 { CpuTimer0Regs.TCR.bit.TSS = 1; // 暂停计时器 timer_running = 0; // 标记计时器已暂停 } } // 清除中断标志位 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; } // 定义计时器中断服务函数 interrupt void timer_isr(void) { // 更新计时器计数值 timer_count++; // 清除中断标志位 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; } void main(void) { // 初始化系统时钟和IO口 InitSysCtrl(); InitGpio(); // 配置计时器 ConfigCpuTimer(&CpuTimer0, TIMER_CLK, TIMER_PERIOD); CpuTimer0Regs.TCR.bit.TIE = 1; // 开启计时器中断 // 配置按钮中断 EALLOW; PieVectTable.XINT1 = &button_isr; GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 0; // 将GPIO0配置为中断源 GpioIntRegs.GPIOXINT1EN.bit.GPIOIE = 1; // 开启GPIO0中断 EDIS; // 使能总中断 PieCtrlRegs.PIECTRL.bit.ENPIE = 1; IER = M_INT1; EINT; // 进入循环等待按钮操作 while(1) { // 显示计时器计数值 if(timer_running) { // 计时器正在运行,显示计时器计数值 // TODO: 在显示器上显示计时器计数值 } else { // 计时器已暂停,不显示计时器计数值 // TODO: 在显示器上显示暂停状态 } } }
06-06

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值