我正在構建一個小型嵌入式設備。我正在使用復位開關,當按下此按鈕超過5秒鐘時,整個設備應復位並清除所有數據並進入出廠復位狀態。 我知道該事件發生時要清除什麼。我想知道的是如何提出這個事件?我的意思是,當按下開關時,我如何設計系統才能知道5秒鐘過去了,現在我必須重置。我需要任何定時器和中斷的高級設計。有人可以幫幫我嗎?如何在小型嵌入式設備中編程工廠復位開關
0
A
回答
0
取決於設備。但很少有粗略的想法:
可能的設備手冊可能會提到「按住開關」(關閉)產生的每秒中斷次數。如果你有這個值,你可以很容易地計算出5秒。
如果沒有,您也需要使用計時器。當您收到「開關關閉」的第一個中斷時,啓動定時器並計數5秒鐘。
請注意,您還應該監視「切換」,即「釋放切換」。我希望也會有中斷。 (可能具有不同的狀態值)。 所以當你看到這個中斷時,你應該打破上面的循環(你不應該重置)。
希望這會有所幫助。
0
中斷驅動表示低電平,接近硬件。中斷驅動的解決方案,例如裸金屬微控制器,看起來像這樣:
- 像讀取任何其他開關時,取樣開關Ñ次數和濾除信號彈跳(和潛在的EMI)。
- 啓動硬件計時器。通常片上定時器的速度太快,無法計算整個5秒鐘,即使您將其設置爲儘可能慢地運行。所以你需要設置一個預定標值的計時器,以便一個完整的計時器週期等於一個已知的時間單位(例如10毫秒)。
- 定時器溢出後,觸發中斷。在中斷內部,檢查開關是否仍然按下,然後增加一個計數器。當計數器達到給定值時,執行復位代碼。例如,如果每10毫秒發生一次計時器溢出,則計數器應該計數到5000ms/10ms = 500.
- 如果在時間過去之前釋放開關,請重置計數器並停止計時器中斷。
- 如何重置系統是高度系統特定的。您應該將系統置於安全系統中,然後通過覆蓋存儲設置的NVM來覆蓋當前設置,其中某些默認出廠設置存儲在NVM中的其他位置。一旦完成,您應該強制處理器重置自身並重新啓動新設置。
- 這意味着您必須擁有帶電子擦除NVM的系統。根據數據的大小,這個非易失性存儲器可以是單片機內部的數據閃存,也可以是一些外部存儲器電路。
0
檢測5S或30S超時可以使用中斷上的GPIO來完成。
如果使用rtos, 。中斷會將線程從睡眠中喚醒並禁用自身,
。所有線程都會計算開關按下的時間(您定期掃描開關)
。 如果開關被按下所需的時間在eeprom中設置一個全局變量/設置,這將觸發出廠重置功能
。 Else再次啓用中斷並使線程進入休眠狀態
。此外,使用去跳動電路來避免問題。
另外定義工廠重置是什麼意思?
有兩種在一般情況下,這兩種情況下我會使用EEPROM
- 恢復所有的配置幫助(成本低,更容易)
在這種情況下,你的分區的EEPROM,具有工作配置和工廠配置。您複製的工廠配置到工作分區和執行軟件復位
- 恢復完整的固件(成本高,需要更多的測試) 這是更棘手,但可以幫助完成允許從eeprom/sd卡閃存的引導程序。
在這種情況下,二進制固件blob也將與工廠配置一起存儲在安全分區中,並將用於閃存控制器閃存和配置。
全部取決於大小/內存和成本。可以用更多的方式設計,我只是列出最簡單的例子。
0
相關問題
- 1. 如何在PC上啓動小型嵌入式編程/項目?
- 2. 嵌入式設備C中的小型垃圾回收器
- 3. 在小型嵌入式設備上發佈數據
- 4. 如何在設備中找到tizen嵌入式應用程序?
- 5. 工廠模式 - 如何避免開關建設?
- 6. 如何在android中以編程方式打開移動設備?
- 7. 小型嵌入式設備的EEPROM參數結構
- 8. 嵌入式系統編程與設備驅動程序
- 9. 以編程方式恢復出廠設置的代碼Android設備
- 10. 工廠模式與開放式泛型
- 11. 在Autocad工廠中創建設備3d
- 12. 嵌入式設備系統
- 13. 嵌入式設備驅動程序開發筆記
- 14. 嵌入式Linux和設備驅動程序開發
- 15. 以編程方式關閉設備
- 16. 如何爲具有嵌套屬性的模型編寫工廠?
- 17. 是否可以從另一個嵌入式設備編程Arduino?
- 18. 如何在android studio中以編程方式打開設備語言設置?
- 19. QT SQLite無法在嵌入式設備中工作
- 20. 如何設置嵌入式Linux中USB設備的VID和PID
- 21. 嵌入式編程...剛開始
- 22. 如何加載嵌入模型工廠(Mongoid - Rails)的
- 23. 如何遠程控制嵌入式設備
- 24. 如何在iOS中以編程方式設置設備方向
- 25. 在抽象工廠模式中插入工廠方法的位置?
- 26. 關於工廠設計模式
- 27. 如何以編程方式關閉Android設備
- 28. 如何以編程方式關閉android設備?
- 29. 如何以編程方式關閉Android設備上的WiFi?
- 30. 如何以編程方式關閉Android 4.0植根設備
「高級別設計帶...中斷」Eh? – Lundin
除了所有基於中斷的方法之外,甚至可以通過偶爾輪詢相關引腳來簡單地完成。假設你有一個節奏循環的方法(在許多/ [大多數?]嵌入式系統中很常見),你可以簡單地檢查引腳的狀態,當引腳處於'按鍵'狀態時遞增一個計數器,否則零它。增量後,如果計數器超過5秒的值,則可以調用事件。 (例如,如果您的步調循環設置爲每10ms循環一次,那麼在您調用重置事件之前,您的計數器將達到500)。 – tonypdmtr
如果器件有一個,則將其直接連接到偏置的RESET引腳。如果您需要按重置,則不能保證軟件能夠正常工作。找到開關後面的開關,使用戶5秒鐘打開。如果器件沒有RESET引腳,請中斷其電源。 –