这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 【8.05更新μTenux工程下1-wire总线器件二叉树算法驱动有视频+μTe

共69条 5/7 |‹ 2 3 4 5 6 7 跳转至
专家
2013-07-08 23:32:25     打赏
41楼
楼主这进程看着很舒心

高工
2013-07-09 21:43:51     打赏
42楼

丫的,电脑坏了。。。。。。

悲催啊。。。。。。。。


专家
2013-07-10 08:29:28     打赏
43楼
楼主大作,厉害。

院士
2013-07-10 11:04:01     打赏
44楼

楼主的进度好快啊~~

向楼主学习,也祝愿楼主早日修好电脑,期待更精彩的内容


高工
2013-07-12 23:56:29     打赏
45楼

winxp的笔记本内存葛屁鸟(主机最难坏的东东居然坏了),DDR2的条子现在难买,win8的环境又不适合玩。进退两难啊。

还好上某宝淘了2条,就要到货鸟。不过uTenux的中断,我看了蛮久,没看出啥道道,看来有个大老虎在前面鸟。 


高工
2013-07-13 13:02:24     打赏
46楼

这个么,王老板给过指点的。

嘿嘿,看我的进程贴,里边有原话


就是手动注册个中断服务函数,然后注册下就好了


http://forum.eepw.com.cn/thread/232031/3#28


高工
2013-07-16 01:05:48     打赏
47楼

电脑原地满状态复活。

捣鼓了一晚上中断才理清,睡一觉起来再整理。

mark.


高工
2013-07-16 17:32:58     打赏
48楼

实验十三 中断管理

很早以前就明白,如果不会用中断,就不要说会用MCU。中断的地位可见一斑。

μTenux提供了很灵活的中断管理方式,但是注意,中断到来的时候,μTenux不再进行任务调度了,除非在调用tk_ret_int()之后。

系统限制的中断编号是0-255,其实查看中断向量表,还有很多可以用户自定义的余地。

μTenux系统中,管理中断的函数主要有tk_def_int(UINT dintno,T_DINT* pk_dint)和tk_ret_int()。

特别注意tk_def_int(),它讲一个地址为pk_dint的应用程序在系统中注册为中断号为dintno的中断服务程序。这里仅仅是注册和定义。

这里厘清一下μTenux中断的工作流程:DI()禁止中断——tk_def_int()定义中断——EI()使能中断——打开或触发中断——进入中断服务程序。

实验代码采用的是不可屏蔽中断,并用PendNMI()函数手动打开中断。

实验结果图:


实验代码中9次任务循环,每次循环都打开一次NMI并调用中断服务程序。

基本上和打印信息一致。



1) 实验选取的是不可屏蔽异常 NMI ,选取一个外设中断,考虑如何修改?


无论是NMI还是外设中断,都必须完成中断的基本流程。

DI()禁止中断——tk_def_int()定义中断——EI()使能中断——打开或触发中断——进入中断服务程序。

在这里吃了不少苦头,一直以为调用tk_def_int()函数,就能够完成中断的打开。其实不然,tk_def_int()函数仅仅是完成中断服务程序在μTenux系统中的定义注册功能,除此之外,打开中断还必须要配置目标MCU的相关中断寄存器

不知道μTenux里面如何进行相关操作的,LZ在这里是加载了stm32F4xx的标准库,然后进行NVIC配置的。

这里具体的配置方法,请猛啃stm32F4xx的标准库相关文件。

或者参照军爷的牛帖:http://forum.eepw.com.cn/thread/232031/3#28

这里选择Usart3_IRQn,适当修改程序。建立一个9次循环的任务,每次打开一次中断,9次结束后系统关闭。

直接上图:

打印信息和外设中断全部都是Usart3,每次Usart3接收到数据,都会调用中断函数。

由键盘输入10次,前9次并完成9次中断服务程序的调用,最后1次键盘输入使μTenux系统shutdown。



高工
2013-07-16 19:51:00     打赏
49楼
终于做完这些实验了,恭喜啊!

高工
2013-07-22 12:39:00     打赏
50楼

军爷,这货硬件研究有啥心得,分享一下啊。

功能越多,寄存器越复杂,我算是眼花了


共69条 5/7 |‹ 2 3 4 5 6 7 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]