首先说明:开发环境Manjaro linux,内核5.0,滚动升级版本,随时都是最新,CCS也是最新的CCv 8

 #include "DSP2833x_Device.h"     // 这是一个很重要的头文件,决定CPU类型,数据类型、asm宏指令,包含的所有的外设,外设的头文件和其他硬件的抽象头文件
#include "DSP2833x_Examples.h" // 该头文件是常用实现函数的文件包含
//中断服务函数声明
__interrupt void wakeint_isr(void); //声明全局变量
Uint32 WakeCount;
Uint32 LoopCount; //主函数
void main(void)
{
// Step 1. 初始化系统控制:
// 配置PLL,设置cpu时钟
// 配置外设时钟
// 配置看门狗 该函数在 DSP2833x_SysCtrl.c中.
InitSysCtrl(); // Step 2. 初始化GPIO:
// 该函数在 DSP2833x_Gpio.c 中.
//InitGpio();
// Step 3. 初始化中断:
// 禁止CPU中断,该函数在 DSP2833x_Device.h 中 DINT; // 禁止外设中断
// 清理外设中断允许寄存器
// 清理外设中断标志寄存器
// 禁止CPU中断,设置允许中断位为0
// 初始化外设中断向量表
// 设置中断函数
InitPieCtrl(); //
// Disable CPU interrupts and clear all CPU interrupt flags
//
IER = 0x0000;
IFR = 0x0000; //
// Initialize the PIE vector table with pointers to the shell Interrupt
// Service Routines (ISR).
// This will populate the entire table, even if the interrupt
// is not used in this example. This is useful for debug purposes.
// The shell ISR routines are found in DSP2833x_DefaultIsr.c.
// This function is found in DSP2833x_PieVect.c.
//
InitPieVectTable(); //
// Interrupts that are used in this example are re-mapped to
// ISR functions found within this file.
//
EALLOW; // This is needed to write to EALLOW protected registers
PieVectTable.WAKEINT = &wakeint_isr;
EDIS; // This is needed to disable write to EALLOW protected registers // Step 4. 初始化外设:
// 该函数在 DSP2833x_InitPeripherals.c 中
//
//InitPeripherals(); // Not required for this example // Step 5. 用户自己的代码
// Clear the counters
//
WakeCount = ; // Count interrupts
LoopCount = ; // Count times through idle loop //
// 将看门狗中断连接到PIE中断,该寄存器首SCM控制,使用特定的修改方式
// Write to the whole SCSR register to avoid clearing WDOVERRIDE bit
//
EALLOW;
SysCtrlRegs.SCSR = BIT1;
EDIS; //
// Enable WAKEINT in the PIE: Group 1 interrupt 8
// Enable INT1 which is connected to WAKEINT:
//
PieCtrlRegs.PIECTRL.bit.ENPIE = ; // Enable the PIE block
PieCtrlRegs.PIEIER1.bit.INTx8 = ; // Enable PIE Group 1 INT8
IER |= M_INT1; // Enable CPU int1
EINT; // Enable Global Interrupts //
// Reset the watchdog counter
//
ServiceDog(); //
// Enable the watchdog
//
EALLOW;
SysCtrlRegs.WDCR = 0x0028;
EDIS; //
// Step 6. 函数执行环节
//
for(;;)
{
LoopCount++; //
// Uncomment ServiceDog to just loop here
// Comment ServiceDog to take the WAKEINT instead
//
//ServiceDog();
}
} // 中断函数
// Step 7. Insert all local Interrupt Service Routines (ISRs) and functions
// here: If local ISRs are used, reassign vector addresses in vector table as
// shown in Step 5
// //
// wakeint_isr -
//
__interrupt void
wakeint_isr(void)
{
WakeCount++; //
// Acknowledge this interrupt to get more from group 1
//
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}

在我看来,这就是个看门狗6 + 1,通常包括ti的都把他们当成7个环节,但是作为中断函数更多的应该只是个附属品而已,我这样说也是可以的。

DSP学习教程基于28335(一)的更多相关文章

  1. SVN教程 -- 基于自己学习记录

    SVN教程 -- 基于自己学习记录 1. 概述 a. 什么是SVN? Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.相较于 git ,svn 是集中式版本控 ...

  2. Git 教程 -- 基于自己学习记录

    Git 教程 -- 基于自己学习记录 1. 引言 由于学校布置了一项熟悉 git 和 svn 操作的实验,所以自己重新温习了下 git,记录过程在这. 2. 注册登录 GitHub. 3. 选择一个仓 ...

  3. WebPack 简明学习教程

    WebPack 简明学习教程 字数1291 阅读22812 评论11 喜欢35 WebPack是什么 一个打包工具 一个模块加载工具 各种资源都可以当成模块来处理 网站 http://webpack. ...

  4. MyBatis入门学习教程-使用MyBatis对表执行CRUD操作

    上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...

  5. Deep Learning 5_深度学习UFLDL教程:PCA and Whitening_Exercise(斯坦福大学深度学习教程)

    前言 本文是基于Exercise:PCA and Whitening的练习. 理论知识见:UFLDL教程. 实验内容:从10张512*512自然图像中随机选取10000个12*12的图像块(patch ...

  6. ASP.NET MVC 5 学习教程:添加查询

    原文 ASP.NET MVC 5 学习教程:添加查询 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过控 ...

  7. ASP.NET MVC 5 学习教程:添加控制器

    原文 ASP.NET MVC 5 学习教程:添加控制器 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 通过 ...

  8. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

  9. [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

随机推荐

  1. centos7 nginx端口转发出现502的其中一种原因

    在排查了一系列可能的原因后仍无法解决,经资料查阅可能是SELinux造成,SELinux很强大但若配置不当也会造成很多组件无法正常使用,这里直接将其关闭: //打开配置文件 vi /etc/selin ...

  2. [OS] 操作系统基本类型

    ·批处理系统:(用户脱机使用.成批处理.多道程序运行) 批处理系统,又名批处理操作系统.批处理是指用户将一批作业提交给操作系统后就不再干预,由操作系统控制它们自动运行.这种采用批量处理作业技术的操作系 ...

  3. 【EF Core】Entity Framework Core 批处理语句

    在Entity Framework Core (EF Core)有许多新的功能,最令人期待的功能之一就是批处理语句.那么批处理语句是什么呢?批处理语句意味着它不会为每个插入/更新/删除语句发送单独的请 ...

  4. CodeChef LEMOVIE

    题意:给你n个数字(下标不同数值相同的数字应当被认为是不同的数字),有n!种排列方式.每种排列方式的价值定义为:第一次出现时比前面的所有数字都大的数值个数. 比如1,2,2,3这个排列中,1,2,3这 ...

  5. Android 常用控件自定义样式RadioButton、CheckBox、ProgressBar、

    一.RadioButton / CheckBox 系统自带的RadioButton/CheckBox的样式,注定满足不了实际运用中的情况,有时候自定义自己的样式:此次把自己中工作学习过程中所学到的东西 ...

  6. POJ2945:Find the Clones——题解

    http://poj.org/problem?id=2945 还是trie树……对于结束标记累加并且开个数组记录一下即可. #include<cstdio> #include<cst ...

  7. BZOJ1596 [Usaco2008 Jan]电话网络 【树形dp】

    题目链接 BZOJ1596 题解 先抽成有根树 设\(f[i][0|1][0|1]\)表示以\(i\)为根,儿子都覆盖了,父亲是否覆盖,父亲是否建塔的最少建塔数 转移一下即可 #include< ...

  8. 20165218 2017-2018-1 《Java程序设计》第四周学习总结

    20165218 2017-2018-1 <Java程序设计>第四周学习总结 教材学习内容总结 第五章 子类与继承 子类与父类 通过关键字extands定义子类 class 子类 exta ...

  9. 【DP】【P2734】游戏 A Game

    传送门 Description 有如下一个双人游戏:N个正整数的序列放在一个游戏平台上,游戏由玩家1开始,两人轮流从序列的任意一端取一个数,取数后该数字被去掉并累加到本玩家的得分中,当数取尽时,游戏结 ...

  10. bzoj 4723 [POI2017]Flappy Bird 模拟

    [POI2017]Flappy Bird Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 482  Solved: 196[Submit][Status ...