一.DSP 28335学习之点灯_gpatoggle_书虚浮的博客-程序员秘密

技术标签: DSP  

说明:下面的教程我是参考开发板提供的代码例子

void main(void)
{

// 步骤 1. 初始化系统控制:
// 设置PLL, WatchDog, 使能外设时钟
// 下面这个函数可以从DSP2833x_SysCtrl.c文件中找到..
   InitSysCtrl();
   
// 步骤 2. 初始化通用输入输出多路复用器GPIO: 
// 这个函数在DSP2833x_Gpio.c源文件中被定义了
// 这个函数使GPIO控制类寄存器初始化到默认状态
// InitGpio();  // 本例不用此子函数
 
// 本例使用下面的GPIO配置
   Gpio_select();      

// 步骤 3. 清除所有中断初始化中断向量表:
// 禁止CPU全局中断
   DINT;

// 初始化PIE控制寄存器到他们的默认状态.
// 这个默认状态就是禁止PIE中断及清除所有PIE中断标志 
// 这个函数放在DSP2833x_PieCtrl.c源文件里
   InitPieCtrl();

// 禁止CPU中断和清除所有CPU中断标志 
   IER = 0x0000;
   IFR = 0x0000;


//初始化PIE中断向量表,并使其指向中断服务子程序(ISR)
// 这些中断服务子程序被放在了DSP280x_DefaultIsr.c源文件中
// 这个函数放在了DSP2833x_PieVect.c源文件里面.
   InitPieVectTable();

    
// 步骤 4. 初始化片内外设:
// 这个函数可以在DSP280x_CpuTimers.c源文件中找到
//   InitCpuTimers();   // 这个例子仅初始化了Cpu定时器
    
// 步骤 5. 用户特定的代码
   
   GpioDataRegs.GPBDAT.all    =0x30000000;
   GpioDataRegs.GPCDAT.all    =0x00000007;
   for(;;)
   {   
       
       delay_loop();
       GpioDataRegs.GPBTOGGLE.all =0x30000000; 
       GpioDataRegs.GPCTOGGLE.all =0x00000007;
       
       delay_loop();

       GpioDataRegs.GPBTOGGLE.all =0x30000000; 
       GpioDataRegs.GPCTOGGLE.all =0x00000007;
    
    }

}     

Q1: 做一件事情得有步骤,我用DSP去点灯,我需要哪几个步骤 ?

答:

(1)系统初始化           //这一步肯定得有, 具体怎么配置。参考上面代码     。 

(2)配置GPIO        //重点是讲GPIO配置,下面会详细展开怎么配置

(3)关闭中断        //参考代码里面,有关闭中断操作。至于为啥要关闭,我猜测是用不到就关闭吧!

(3)主函数调用   //学习单片机的都知道

 

 

Q2: 配置GPIO其实就相当于操作寄存器。 DSP有这么多寄存器 。应该操作哪些寄存器?

答:DSP的寄存器非常多,GPIO相关的寄存器也不少。这里我们只需要点灯。操作几个重点GPIO相关寄存器即可,其它的相关GPIO寄存器保持默认即可。具体步骤如下。

(1)根据上面的代码:

    EALLOW;
    GpioCtrlRegs.GPAMUX1.all = 0x00000000;  // All GPIO
    GpioCtrlRegs.GPADIR.all = 0xFFFFFFFF;   // All outputs

    EDIS;

   GpioDataRegs.GPBTOGGLE.all

   因此操作GPAMUX1、GPADIR、GPBTOGGLE三个寄存器即可 。

1.GPAMUX1:  GPIO的多功能复用寄存器,这里点灯,写入00即可。    

00:通用的输入输出口

01:外设选择1

10:外设选择2

11:外设选择3

 

2.GPADIR: GPIO方向寄存器,GPIO共58个,每个寄存器有两种状态。详见P146-P147

0:配置GPIO作为输入

1:配置GPIO作为输出

 

3.GPBTOGGLE:翻转寄存器 。例如 GPATOGGLE.GPIOx = 1:强制设置端口电平反转。详见:P153-P155

0:无效

1:有效

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37445354/article/details/106457714

智能推荐

petalinux kernel bootargs_rrr2的博客-程序员秘密

kernel bootargs的设置也很重要。设置得不正确的话,会无法启动kernel。例如:卡在Starting kernel …进不去。它允许 PetaLinux 在 DTS 中自动生成内核启动命令行设置,或者传递 PetaLinux 用户定义的内核启动命令行设置。bootargs参数默认是:console=ttyPS0,115200 earlyprintk。用户可以自定义。rootargs中的参数说明:rootwait :代表无限等待下去,直到相关底层准备完毕。console : 指定串口.

element-ui 使用table组件 报错 h.$scopedSlots.default is not a function_艾小双的博客-程序员秘密

最近的开发中,有需求多个列表使用同一个table组件,在开发中正常编写,结果突然就报错了,报错信息如下:当时就蒙了,完全不知道错在哪里,后面一步步排查原因,刚开始以为是逻辑错了导致的,后面才发现是HTML层报错,原因是使用了v-if切换元素导致的,后面网上查资料,才知道,是因为表格是element-ui通过循环产生的,而vue在dom重新渲染时有一个性能优化机制,就是相同dom会被复用,这就是...

Go TCP编程_国际渣男的博客-程序员秘密

Go TCP编程一、服务端编程步陬:1.创建套接字2.监听套接字3.处理请求server/tcp_server.gopackage serverimport ( "fmt" "net" "github.com/jstang007/gateway_demo/httpserver/handler")// SrvForever 服务端启动函数func SrvForever() { //1、创建套接字 listenner, err := net.Listen("tcp", "0.0.0

2020幂次生长,GMIC开启下一个10年科技新浪潮_趣味科技v的博客-程序员秘密

1月8日,全球移动互联网大会(Global Mobile Internet Conference,简称GMIC)在北京召开了2020年启动发布会。长城会CEO周昌华、GMIC项目总监邓书...

Linux 下 Python 备份文件[email protected]尚哥的博客-程序员秘密

#!/usr/bin/env python 2 #auto backup files 3 #by lishang 2019--8-19 4 5 import os,sys,time // 导库 6 date = time.strftime('%Y%m%d') ...

springboot通过添加 Filter 的方式,配置 CORS 规则,并手动指定对哪些接口有效_corsfilter 指定某个接口_Catcher_Ghost的博客-程序员秘密

@Configurationpublic class CorsConfig {private CorsConfiguration corsConfig() {CorsConfiguration corsConfiguration = new CorsConfiguration();corsConfiguration.addAllowedOrigin(""); // 设置访问源地址cors...

随便推点

listView 解决焦点冲突问题 item项和子控件之间的冲突_weixin_30809333的博客-程序员秘密

listView 在item布局的顶级布局中设置android:descendantFocusability="blocksDescendants"可以阻止子控件获取焦点 这样使item项可以点击 此时焦点是父控件不是子控件 这时其中的图片控件还是可以点击的 那是因为图片这些控件的clickable属性默认为true的原因当设置为false时就彻底不能点了当不想让item能点击时 可以不加...

sqlite加密-SQLCipher_wildfireli的博客-程序员秘密

转:http://blog.csdn.net/ydj213/article/details/8650051demo下载:http://download.csdn.net/detail/ydj213/5120854SQLite是一个持久性数据存储在iPhone上流行的API,因此在上攻的发展是显而易见的。作为一个程序员,你的工作稳定和有据可查的API。干净利索地从应用程序代码中分离出来的所有

NSURLSession VS NSURLConnection_nsurlconnection vs nssession_li_yangyang_li的博客-程序员秘密

NSURLSession VS NSURLConnection NSURLSession可以看做是NSURLConnection的进化版,其对NSURLConnection的改进点有: * 根据每个Session做配置(http header,Cache,Cookie,protocal,Credential),不再在整个App层面共享配置.* 支持网络操作的取消和断点续传* 改进了

CSS3变形动画transform、过渡延迟transition、帧动画animation_css transform 延迟_furfur-jiang的博客-程序员秘密

变形操作transform使用 transform 规则控制元素的变形操作,包括控制移动、旋转、倾斜、3D转换等none 定义不进行转换。translate(x,y) 2D 转换。translate3d(x,y,z) 3D 转换。同时控制X/Y/Z轴的移动,三个值必须输入如果某个轴不需要移动时设置为零。translateX(x) 沿X轴移动时正值向右移动、负值向左移动translateY(y) 沿Y轴移动时正值向下移动、负值向上移动translateZ(z) 3D 转换,控制Z轴移动,正数向

linux五元组结构体,NAT唯一五元组选取_张云雷宝宝的博客-程序员秘密

使用iptable进行nat设置时,可以使用如下扩展选项:# SNAT 源地址转换,用在 POSTROUTING、INPUT 链--to-source [[-]][:port[-port]]--random # 映射到随机端口号,--random-fully # 映射到随机端口号(PRNG 完全随机化)--persistent # 映射到固定地址# DNAT 目的地址转换,用...

2021Java高级面试题,dockercompose命令_哆啦A梦没有口袋.的博客-程序员秘密

一、Spring Boot 相关(1)SpringBoot 面试专题什么是 Spring Boot?Spring Boot 有哪些优点?什么是 JavaConfig?如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot 中的监视器是什么?如何在 Spring Boot 中禁用 Actuator 端点安全性?如何在自定义端口上运行 Spring Boot 应用程序?什么是 YAML?如何实现 Spring Boot 应用程序的安全性?如何集成 S

推荐文章

热门文章

相关标签