DSP_学习记录3

接上一次记录

第一步:初始化时钟里边GPIO的时钟。

GpioMuxRegs.------负责初始化时,选择gpio口的功能(通用、复用)

第一种:通用(一共至少配置4个)

gpio的数据寄存器都可以用--dat/(set/clear/toggle/----选一个设定)pud/dir

如果是输入时,加上输入限定--CTRL/---SEL这两个

第二种:复用(一共至少配置3个)

pud,dir

如果涉及到输入功能--加上输入限定--CTRL/---SEL这两个

以上这些都是GPIO的初始化,设定初始的时候,GPIO的功能是什么样的。

实际用到这些gpio变换的时候在主函数中修改。

CPU定时器

第一个:用户能用哪一个定时器:2812---定时器0,28335定时器0和1;

主要思想:将定时器中的数值装载到计数器(PRDH:PRD---->TIMH:TIM)-----计多少个数(PRDH:PRD+1)个数    PRDH:PRD----在PRD寄存器中

系统时钟150M----分频-->(TDDRH:TDDR--->PSCH:PSC)就是说我原来1s跳150M次,现在分频以后1s跳150M/(TDDRH:TDDR+1)次。----现在我每次跳多久知道了,我开始计数(PRDH:PRD),计多少数就是多长时间。   TDDRH:TDDR--->PSCH:PSC-----在TPRH和TPR寄存器中

(PRDH:PRD+1)*(TDDRH:TDDR+1)/150M=时间      


         InitCpuTimers();以上两方面在这个里边初始化好了。

在初始化定时器中需要关闭定时器TSS=1

然后定时器的配置中也需要关闭定时器TSS=1;

以上都配置完了,TSS=0。

到目前为止,定时器基本配置完全。

        InitCpuTimers();
        ConfigCpuTimer(&CpuTimer0, 80, 50);//45.045045045

目前知道的是,定时器每1/250k进去一次,具体干啥了还不知道。

接下来学习中断,了解定时器具体怎么用,上边讲的告诉你定时器的基本配置。先配好才能用。

DSP中断系统

有三级中断系统,CPU,PIE,外设级

CPU级中断:第一软件触发

                       第二,硬件触发

CPU级中断向量---存的中断的入口地址

CPU级---IER(16位)/IFR(16位)刚好一一对应。

有中断请求,IFR自动置1,CPU查看对应的IER是否满足使能,满足则响应。

        IER = 0x0000;
        IFR = 0x0000;刚开始全部清0.

 PIE中断---这个告诉你这个表对应的中断是哪一个。只是看看用的。

进入CPU级INT1有8个pie级的中断 1的优先级高于2

PIE中断寄存器----这个是真正程序写的时候用的

  InitPieCtrl();//初始化PIE控制寄存器,使能全部关闭,标志位清0。模块也不使能----pie使能关闭

InitPieVectTable();//初始化地址----PIE模块使能,就是告诉你如果产生中断,中断函数从这个地址进去。把每个中断函数地址都分配好。你是什么中断进对应的中断地址。

外设级中断

外设中断启动时候先手动清除中断标志位。

中断函数也要有外设中断标志位清除。

main函数编写中断。

1关闭全局中断 DINT=0

2关闭CPU级中断使能和标志位IER=0;IFR=0;

3关闭PIE级中断使能和标志位 InitPieCtrl();

4初始化PIE级中断向量的地址,使能PIE级模块InitPieVectTable();

以上相当于初始化

5配置外设的中断选择端口(外设初始化,开启时钟---相当于使能外设了)

6将外设对应的函数==中断向量表

7打开PIE级对应的中断使能

8打开CPU级中断 使能

9全局中断 使能

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值