打印
[STM32F1]

求问,STM32f103在不带系统的情况下如何实现多个任务?

[复制链接]
2279|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 liuzhongkai123 于 2014-3-24 19:31 编辑

实现功能是这样的,16路I/O采集、两路AD采集、串口采集、网口输出,如果不采用系统是否可以实现,我想的是采用中断,串口与I/O采集不是连续数据,如果有数据时就中断处理,而ad采集作为主循环。网口输出外接ENC28J60,SPI通讯,当有数据(包括IO、AD、串口)需要上传时调用LWIP协议栈。我的应用背景是数控机床的状态数据采集,就是用stm32将开关信息、NC程序、外接传感器数据上传,不过这里是多任务的,而我没弄过系统,所以问问可不可以实现裸机的。如果中断可实现,这么多的中断源,其优先级如何设定呢?大体结构如图。


QQ截图20140324182714.png (31.83 KB )

大体结构

大体结构
沙发
pattywu| | 2014-3-24 18:36 | 只看该作者
多任务,也是分时系统。
你用一个定时器来调度各个功能,可以不需要系统的。

照你的要求,不用RTOS的话,实现起来比较难,出了问题也不好查原因。
用RTOS,其目的就是为了简化编程的,逻辑关系清楚。

建议LZ还是学学RTOS.

使用特权

评论回复
板凳
liuzhongkai123|  楼主 | 2014-3-24 19:06 | 只看该作者
pattywu 发表于 2014-3-24 18:36
多任务,也是分时系统。
你用一个定时器来调度各个功能,可以不需要系统的。

是使用ucos吗,还是别的系统比较好。不知这种多长时间能搞定,我还有一个月答辩了,时间还是挺紧的。

使用特权

评论回复
地板
若如初见100| | 2014-4-1 13:11 | 只看该作者
建议学学uC/OS-II,如果仅仅是为了完成项目,不去深入研究的话,很容易上手的。我当年也就花了1个多星期吧,先把任务跑起来,然后慢慢深入研究学习,同时优化改进你的项目。等你用了之后,就再也不想用以前没带系统的方式编程了,你会尝到甜头的,相信我。

使用特权

评论回复
5
liuzhongkai123|  楼主 | 2014-4-1 18:48 | 只看该作者
若如初见100 发表于 2014-4-1 13:11
建议学学uC/OS-II,如果仅仅是为了完成项目,不去深入研究的话,很容易上手的。我当年也就花了1个多星期吧 ...

谢谢建议,嵌入式系统我一定会去学的,目前先把论文写完。

使用特权

评论回复
6
airwill| | 2014-4-1 22:11 | 只看该作者
本帖最后由 airwill 于 2014-4-1 22:13 编辑

合理安排, 裸机, 应该也能够实现.
不排除, 局部数据忙碌的时候会有点 "卡"

使用特权

评论回复
7
mcuatmel| | 2014-4-2 08:17 | 只看该作者
这样的需求完全可以裸奔。

使用特权

评论回复
8
liuzhongkai123|  楼主 | 2014-4-2 15:03 | 只看该作者
airwill 发表于 2014-4-1 22:11
合理安排, 裸机, 应该也能够实现.
不排除, 局部数据忙碌的时候会有点 "卡"

有大神来啦。那要是裸机的话,程序循环的时间怎么计算呢,16路扫描+4路AD转换时间大概有多少?

使用特权

评论回复
9
liuzhongkai123|  楼主 | 2014-4-2 15:04 | 只看该作者
mcuatmel 发表于 2014-4-2 08:17
这样的需求完全可以裸奔。

嗯,我现在写的就是按照裸奔来的。裸机是轮询16路IO与4路ADC,然后串口采用中断的方式,不知这样逻辑行不行,时间会耗多少。

使用特权

评论回复
10
airwill| | 2014-4-2 15:24 | 只看该作者
16路扫描+4路AD转换时间大概有多少?
完全看你的处理, 应该可以在 10uS 量级

使用特权

评论回复
11
liuzhongkai123|  楼主 | 2014-4-3 12:30 | 只看该作者
airwill 发表于 2014-4-2 15:24
16路扫描+4路AD转换时间大概有多少?
完全看你的处理, 应该可以在 10uS 量级 ...

一般要想知道程序运行时间,只能通过编译器计算吗,如何获得精确的时间呢

使用特权

评论回复
12
yzzly| | 2014-4-3 14:15 | 只看该作者
太简单了!

使用特权

评论回复
13
Rain_King| | 2014-4-3 14:32 | 只看该作者
你这个简单的要死啊....我都是需要扫描6路AD,还包括一系列的屏幕显示,捕捉2个,等等都是裸机运行的,一点问题都没有.............

使用特权

评论回复
14
liuzhongkai123|  楼主 | 2014-4-3 18:48 | 只看该作者
airwill 发表于 2014-4-2 15:24
16路扫描+4路AD转换时间大概有多少?
完全看你的处理, 应该可以在 10uS 量级 ...

大侠,现在有个问题。我一直LWIP协议,实现TCP/IP通讯没问题,但是上位机我用C++编程,上位机用的是SOCKET编程的,LWIP怎么连接到上位机啊,如果用LWIP的socket是不是一定要系统。如果不用socket的话,下位机怎么与上位机TCP通讯呢?求指导!!!

使用特权

评论回复
15
runningwzf| | 2014-4-3 19:01 | 只看该作者
DMA结合中断的方式估计也行
不过加上系统的话会更顺,你的开发周期会更短

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

113

帖子

2

粉丝