欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于單片機中使用多個計算公式,并進行數組轉換的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:446775 發表于 2020-10-30 17:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我現在在單片機中的某一個數組的數據需要使用到兩個公式來完成,這一個數組的數據是這兩個公式把其它三個數組的數據代入進去所求出來的,這兩個公式也是較為復雜,涉及到積分運算,在寫程序時,是分別將這兩個公式進行拆分來進行運算的,那么問題來了,在這些復雜的運算中間,需要設置時間間隔嗎?如果需要該怎么設置時間間隔呢?還是說一步緊挨一步的執行?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:451718 發表于 2020-10-31 12:55 | 只看該作者
在運算前后,拿一個端口做翻轉,用示波器看一下就知道了。  你自認為的復雜運算,交給芯片,可能是瞬間的事,反而有些你可以構思的循環運算,交給芯片,卻是耗時較長的運算。  
回復

使用道具 舉報

地板
ID:837937 發表于 2020-11-2 20:22 | 只看該作者
應該可以直接計算,不需要設置間隔,單片機速度很快
回復

使用道具 舉報

5#
ID:446775 發表于 2020-11-6 09:41 | 只看該作者
robinsonlin 發表于 2020-10-31 12:55
在運算前后,拿一個端口做翻轉,用示波器看一下就知道了。  你自認為的復雜運算,交給芯片,可能是瞬間的事 ...

嗯嗯,只是我這里目前沒有示波器可以用,還有就是如果說在計算的過程中,比如我的定時器中斷時間比較短,而這個計算又比較復雜肯定要比這個定時器的時間要長很多的話,那么會有頻繁進入定時器中斷的情況發生,在這種情況下,是不是就可以在計算的時候把中斷關掉,而等計算完成后再打開中斷呢?
回復

使用道具 舉報

6#
ID:451718 發表于 2020-11-6 15:59 | 只看該作者
karolyte 發表于 2020-11-6 09:41
嗯嗯,只是我這里目前沒有示波器可以用,還有就是如果說在計算的過程中,比如我的定時器中斷時間比較短, ...

你如何能夠知道某一次的運算時長會超過 中斷的處理時長?   如果這種情況經常發生,你芯片的運算一直處在中斷中,你的主程序也無法運行的。
我的處理方法是,在中斷中放標志位,在主程序中檢測標志位的變化,然后判斷是否要執行運行。  所有中斷的處理時長,控制在中斷時長的10%以內,是比較理想的
回復

使用道具 舉報

7#
ID:446775 發表于 2020-11-12 22:20 | 只看該作者
robinsonlin 發表于 2020-11-6 15:59
你如何能夠知道某一次的運算時長會超過 中斷的處理時長?   如果這種情況經常發生,你芯片的運算一直處在 ...

嗯,按您這么說的話,我這個好像也不是運算時長超過了中斷的處理時長,因為我的程序還是能夠正常運行的,就是在執行這個運算時并不是這邊按鍵按下,那邊立馬就出結果,而是等個幾十秒鐘才會出結果,另外您上面說的在主程序鐘檢測標志位的變化,然后判斷是否要執行運行,這個運行指的就時這個運算吧?是不是就是說,如果這個標志位的變化滿足條件了,那么就執行這個運算呢?但是我這個運算是放在一個按鍵的動作里了,那么問題就來了,我的按鍵掃描是放在中斷服務函數里的,然后按鍵動作是放在主函數里的,那如果我添加一個判斷標志變化,我執行的運行是不是應該是這個按鍵動作函數呢?
回復

使用道具 舉報

8#
ID:446775 發表于 2020-11-14 14:13 | 只看該作者
robinsonlin 發表于 2020-11-6 15:59
你如何能夠知道某一次的運算時長會超過 中斷的處理時長?   如果這種情況經常發生,你芯片的運算一直處在 ...

這里要執行的運行,你是放在主函數里的while(1)里了嗎?
回復

使用道具 舉報

9#
無效樓層,該帖已經被刪除
10#
ID:446775 發表于 2020-11-14 15:41 | 只看該作者
robinsonlin 發表于 2020-11-6 15:59
你如何能夠知道某一次的運算時長會超過 中斷的處理時長?   如果這種情況經常發生,你芯片的運算一直處在 ...

我不確定這個某一次的運算時長超過了中斷的處理時長,也不知道如何獲取這個運算的時長,只是個人的推斷,就是說這個運算的時間比較長才出來結果,但是我知道我這個推斷不科學,需要驗證之后才能說,所以在這里發個帖子請求您的幫助
回復

使用道具 舉報

11#
ID:451718 發表于 2020-11-14 16:34 | 只看該作者
karolyte 發表于 2020-11-14 15:41
我不確定這個某一次的運算時長超過了中斷的處理時長,也不知道如何獲取這個運算的時長,只是個人的推斷, ...

按鍵檢測可以放在定時器中斷里面判斷,但是要累積判斷。因為按鍵的最短有效時長公認為20ms,你總不能在中斷里面等待20ms吧。所以,定義一個變量,進中斷后判斷按鍵狀態,如果有效就++,如果無效就歸零。直到加到某個值,比如100,才給按鍵標志賦值。      在主循環中,也就是while循環中處理主要的運算就好了。
回復

使用道具 舉報

12#
ID:446775 發表于 2020-11-14 16:49 | 只看該作者
robinsonlin 發表于 2020-11-14 16:34
按鍵檢測可以放在定時器中斷里面判斷,但是要累積判斷。因為按鍵的最短有效時長公認為20ms,你總不能在中 ...

師傅,您說的這個是不是針對與單個鍵盤的操作,像我這個,使用的是矩陣鍵盤,我把矩陣鍵盤的檢測都集成為一個函數了,然后放在定時器中斷里執行,然后矩陣鍵盤的驅動函數我放在主循環中了,就是鍵盤一直在被驅動,而矩陣鍵盤的動作函數又是被驅動函數所調用的,基本上跟你說的while循環中處理主要的運算差不多吧
回復

使用道具 舉報

13#
ID:451718 發表于 2020-11-16 14:59 | 只看該作者
karolyte 發表于 2020-11-14 16:49
師傅,您說的這個是不是針對與單個鍵盤的操作,像我這個,使用的是矩陣鍵盤,我把矩陣鍵盤的檢測都集成為 ...

http://m.raoushi.com/bbs/dpj-161402-1.html
回復

使用道具 舉報

14#
ID:446775 發表于 2020-11-18 16:46 | 只看該作者
robinsonlin 發表于 2020-11-16 14:59
http://m.raoushi.com/bbs/dpj-161402-1.html

你所說的運行效率具體指的是什么?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表