久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2912|回復: 15
打印 上一主題 下一主題
收起左側

同個單片機中,程序是否是可以分時執行兩段不同且完全獨立的程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:956872 發表于 2022-10-6 20:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
同一片單片機,程序是否是可以分時執行兩段完全獨立的程序。包括定時器中斷,外部中斷等。
第一段:void main()
{
while(1)
{
;
}
}
void TM0_Isr() interrupt 1
{;}
void INT1_Isr() interrupt 2
{;}



第二段:void main()
{
while(1)
{
;
}
}
void TM0_Isr() interrupt 1
{;}
void INT1_Isr() interrupt 2
{;}




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:883242 發表于 2022-10-6 21:21 | 只看該作者
RTOS就是干這個的,任務雖然可以搶占時間,但是你寫成純時間片分時執行不同任務太輕松了。
回復

使用道具 舉報

板凳
ID:213173 發表于 2022-10-6 22:16 | 只看該作者
MCU可以分時執行兩段完全獨立的子程序,但必須在主函數main內運行。main函數必須有,且是唯一的。
回復

使用道具 舉報

地板
ID:624769 發表于 2022-10-6 22:37 | 只看該作者
bit MODE;

void main()
{
while(1)
{if(MODE)
{
//第一段:
}
else
{
//第二段:
}
}
}
void TM0_Isr() interrupt 1
{
if(MODE)
{
//第一段:
}
else
{
//第二段:
}


}
void INT1_Isr() interrupt 2
{
if(MODE)
{
//第一段:
}
else
{
//第二段:
}


}





回復

使用道具 舉報

5#
ID:8222 發表于 2022-10-6 22:50 | 只看該作者
不能有兩個main()。你可以用兩個while(i==1),while(i==2) 切換。
回復

使用道具 舉報

6#
ID:155507 發表于 2022-10-6 22:50 | 只看該作者
當前的主流單片機,可以分時“執行多個任務”。
但注意的是,它是分時操作,也就是說,在某一時刻它只能做一件事。

執行多個任務肯定沒有問題,主要是它的資源足夠用,嚴格來講普通單片機是單線程的,執行多個任務嚴格意義上來講并不是同時執行多任務,只不過是引因其速度快,在允許有時差的多個任務中,合理安排就會那個都不耽誤,一個單片機實現多任務,如果你的任務要求完全同步可以通過多個單片機完成,或者雖然不要求完全同步,但任務耗用資源較多的也建議多個單片機來構建。

回復

使用道具 舉報

7#
ID:35873 發表于 2022-10-7 04:29 | 只看該作者
這比飛哥的狠活兒還要狠啊    好像只能有一個 main函數  樓主的想法可以實現   但一個程序中有兩個主函數這個寫法估計行不通
回復

使用道具 舉報

8#
ID:401564 發表于 2022-10-7 07:16 | 只看該作者
除了外部增加的資源,比如ADC,定時器之類的,它可以在你主程序一邊執行代碼的時候一邊動作
其它的,隨便你什么多任務系統,它都是一個指令一個指令的去執行,不管是8051還是STM32
所以的多任務系統,只是MCU處理速度快了,讓你感覺上是同步執行的而已
如果是跑系統的話,代碼上是可以,A,B,C,D四個程序同時進行,但是,你"同時"進行的總時間是和ABCD順序執行的時間是一樣的
好處就是有一些優先級別而已
回復

使用道具 舉報

9#
ID:956872 發表于 2022-10-7 08:18 | 只看該作者

我是想完全分開的兩套程序。 就好比我兩套程序先存儲在外部FLSH,如果要執行第一套程序,通過程序自動就把第一套程序下載到單片機中執行,要執行第二套程序就下載第二套程序到單片機中。這樣來回切換
回復

使用道具 舉報

10#
ID:526108 發表于 2022-10-7 08:41 | 只看該作者
可以是可以,比較復雜,比如做可遠程升級功能的產品一般都會把單片機劃分兩個區,升級區和用戶程序區(升級區代碼和用戶程序區代碼是兩個獨立的keil項目)。也就是說一個單片機上跑兩個項目
回復

使用道具 舉報

11#
ID:824490 發表于 2022-10-7 09:08 | 只看該作者
很久以前,在義隆單片機上有個功能貌似能實現樓主的功能,2個程序分別編譯,一起寫入:

●有兩個具有R-Option功能的I/O引腳,通過R-Option功能可在兩個或兩個以上應用程序中放人同一單片機時,用一個輸入腳來判斷選擇哪一個程序。也就是說,R-option功能就是在EM78P447S的某兩個I/0腳上設置可選擇的下拉電阻,從而通過用戶是否外接下拉電阻(一般為510kΩ)來判斷該腳的狀態,進而判斷運行哪一個程序;

回復

使用道具 舉報

12#
ID:624769 發表于 2022-10-7 11:28 來自觸屏版 | 只看該作者
PEB188 發表于 2022-10-7 08:18
我是想完全分開的兩套程序。 就好比我兩套程序先存儲在外部FLSH,如果要執行第一套程序,通過程序自動就 ...

你要這么說的話,stc89c51,ea高電平就是內部存儲啟動 ,ea低電平,外部存儲啟動。
回復

使用道具 舉報

13#
ID:1034262 發表于 2022-10-7 15:36 | 只看該作者
樓主可以了解一下RTOS(實時操作系統),或者用狀態機、時間(信息)觸發的多任務系統,這些都可以實現你想要的。
回復

使用道具 舉報

14#
ID:888148 發表于 2022-10-7 22:42 | 只看該作者
ESP32雙核的,你可以試試把程序執行在不同的核上面.
但是你這中斷應該是共用的,做不到同時運行吧.
回復

使用道具 舉報

15#
ID:390416 發表于 2022-10-9 00:00 | 只看該作者
人人學會單片機,所講解的框架式編程,就是滿足你這個想法而設計的
回復

使用道具 舉報

16#
ID:235438 發表于 2022-10-9 01:10 | 只看該作者
這種最好上操作系統吧,也不是很麻煩,用習慣了比裸奔好用的多。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女福利网站 | 欧美日韩视频在线播放 | 男人天堂免费在线 | 欧美日韩久久 | 视频一区二区三区四区五区 | www.中文字幕 | www.久草| 久久精品国产一区二区电影 | 久久国产一区二区三区 | 免费人成激情视频在线观看冫 | 妹子干综合 | 国产探花在线精品一区二区 | 亚洲一区二区三区福利 | 一区二区三区亚洲 | 在线免费观看成年人视频 | 在线观看涩涩视频 | www.三级 | 麻豆久久精品 | 国产乱码精品1区2区3区 | 日韩成人影院 | 人成在线 | 欧美精品一区在线 | 一区二区国产精品 | 综合激情网 | 国产精品毛片无码 | 久久成人精品视频 | 亚洲一区二区三区免费视频 | 欧美日韩精品区 | 国产69精品久久99不卡免费版 | 国产综合视频 | 99久久国产综合精品麻豆 | 中文字幕综合 | 午夜精品福利视频 | 国产综合在线视频 | 欧美久久免费观看 | 在线精品一区二区 | 免费欧美| 中文字幕一区二区在线观看 | 国产精品夜夜夜一区二区三区尤 | 国产精品夜夜春夜夜爽久久电影 | 日日艹夜夜艹 |