51822外设篇-1

来源:互联网 发布:新浪uc软件下载 编辑:程序博客网 时间:2024/05/01 19:25

看了51822好一阵子了,一直没来总结,抛开蓝牙不说,虽然51822只是一个M0内核的MCU,所用到寄存器

也不多,但是也挺有自己的特色的。首先51822把每个外设可操作的内容分为以下几个部分。

TASK: 相对于其他的51或者32为单片机,其实就是一些外设的命令,例如开启定时器,开启时钟等,51822并没

有像从前一样把命令设为某个寄存器的某一位,而是直接占用了一个寄存器,让之称为TASK。

EVENT:与TASK对应,EVENT就是某些外设的响应,比如ADC转换完成,timer溢出等,它也是单独占用了一个寄

存器,使用方法就像是之前单片机查询中断标志位一样,当使能中断后,EVENT可以出发一个中断,当不使能中断

时,他的作用就相当于中断标志位。


为什么要引入TASK,EVENT这两个东西呢?因为51822有一个PPI功能,他可以使用一个EVENT去触发一个TASK,

而不需要cpu干预,比如定时器溢出,IO口就可以做翻转,这样就为ble争取了更多cpu利用率。


SHORTCUT:起初使用定时器的时候,就发现为什么没有自动重载功能? 不是没有,而是51822把这些类似的功能

定义为SHORT,在SHORT寄存器里,可以配置相关功能,详情可以见个外设SHORT内容。


Register:寄存器就是堆相关外设的配置,这个和之前一样。

另外,51822很少介绍他的中断控制器,也许是51822并不希望用户使用太多中断,毕竟他的BLE协议栈是使用M0的

SVC机制来实现的,为保证BLE协议栈不被打断,多使用TASK和EVENT的PPI或许是明智的,不过在程序里可以发现

还是有相关中断寄存器可以配置,这些后续进一步学习再来讨论。

0 0
原创粉丝点击