① 使用STM32CubeIDE編寫EC11 定時器中斷方式
原貼地址 使用STM32CubeIDE編寫EC11
從上圖可以看出旋轉EC11時,A相上升沿時,B相高電平為順時針轉動,B相低電平則為逆時針轉動。燃殲所以我們利用這一特性,使用STM32的定時器捕獲功能對A相進行電平捕獲,然後與B相電平進行比較從而判斷旋轉方向。
首先要開啟定時器TIM3,我們使用這個皮純沖 HAL_TIM_IC_Start_IT(htim, Channel); 啟動定時器。
使用定時器回調函數
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
在裡面編寫上面的程序,因為我們將B相接在PA7引腳,所以我們使用switch case語句進行判斷引腳電平,如果單片機檢測到A相為高電平就會進入這個中斷判斷B相電平,低電平為反轉,高電平極為正轉(程序中的cnt為計數作用)。
經測試通過串口列印數據,EC11非常穩定,也沒有出現丟步和亂褲戚跳的情況。
② k8s-日誌落地
#容器方便的同時帶來的挑戰
1. 如果日誌還放在容器內部,會隨著容器刪除而刪除
2. 容器多按照傳統的倉庫日誌方式 顯然不現實
#本身特性
1. 容器日誌輸出到控制台 本身docker提供了一種日誌採集能力 如衫彎果落地到了本地文件 目前還沒有一種比較好的動態採集或慶悶方式
2. 新擴容的pod屬性信息(日誌文件路徑 日誌源 可能發生的變化)
#需要收集那些日誌
1. k8s 系統組件日誌 部署在k8s應用的日誌
#當我們執行docker logs查看日誌的時候是調用了docker守護進程去查看他接管的這個日誌 在本地的文件系統中去讀這個日誌
#cd /var/lib/docker/找到容器ID進入裡面 有一個已json文件已容器id命名的裡面就是日誌
#/var/lib/kubelet/pods/08ec113c8abdf4544
方案一:Node上部署一個日誌收集程序
• DaemonSet方式部署日誌收集程序
• 對本節點/var/log/kubelet/pods和
/var/lib/docker/containers/兩個目錄下的日誌進
行採集
• Pod中容器日誌目錄掛載到宿主機統一目錄上
方案二:Pod中附加專用日誌收集的容器
• 每個運行應用程序的Pod中增加一個日誌
收集容器,使用emtyDir共享日誌目錄讓
日誌收集程序讀取到。
方案一:Node上部署一個日誌收集程序 每個Node僅需部署一個日誌收集程序,
資源消耗少,對應用無侵入 應用程序日誌如果寫到標准輸出和標准錯誤輸出,
那就不支持多行日誌。
方案二:Pod中附加專用日誌收集的容器 低耦合
每個Pod啟動一個日誌收集代理,增加資源消耗,
並增加運維維護成本
#匹配目錄收集規則
方案(1):DaemonSet方式部署日誌收集程序
/var/lib/docker/containers/*/*-json.log
/var/lib/kubelet/pods/*/volumes/kubermetes.io~emtpdir/
/var/lib/kubelet/pods/*/
方式2: 掛載到統一的目錄 解決日誌覆蓋的方法 推薦差桐方法讓開發根據容器名稱命名日誌文件
保持唯一性就可以了 這種方法維護起來比較好 也比較簡單 但是缺點可能消耗資源多一點
data:
kubernetes.yml: |-
- type: docker
containers.ids:
- "*"
https://www.cnblogs.com/Dev0ps/p/10778962.html
#傳統日誌配置採集工具重要設置什麼
1. 日誌路徑
2. 寫正則 格式化日誌
3. 日誌源(命名空間 容器 service 項目)
阿里雲日誌採集工具:log-pilot
③ linux中10le11等於多少
linux中10le11等於多少
/linux 文件系統根目錄
/bin存放系統中最常用 的可以執行文件(二進制)
/boot存放LINUX內核和系統的啟動文件
/dev存放所有設備文件,如硬碟,分區,鍵盤,滑鼠。。。
/home用戶主目錄的默認位置
/lib存放共享的庫文件
/media ubuntu系統自動掛載CD-ROM,軟碟機,USB在存儲器後,存放讀入的文件
/mnt該目錄通常用於作為被掛載的文件系統的掛載點
/opt作為可選文件和程序的存放目錄,主要被第三方開發者用來簡易地安裝和卸載他們的軟體包
/proc作為存放所有標志文件的進程,它們是通過進程號或其他的系統動態信息進行標識
/root根用戶(超級用戶)的主目錄
/sbin存放更多的可執行文件(二進制),包括系統管理,目錄查詢等關鍵命令文件
/tmp存放用戶和程序的臨時文件,所有用戶對該目錄都有讀寫許可權
/usr用於存放與系統用戶直有關的文件和目錄
/var 通常用於存放長度可變的文件,例如日誌文件。。。
LINUX的文件系統主要有:ext2,ext3,rerserfs,iso9660,vfat...
windows的文件系統:fat16,fat32,ntfs
.png
進制:是人們規定答鄭的一種進位方法
X進制是代表某一位置上的數運算時 逢X進一位我們日常生活中常用的進制為十進制。
由於數字計算機只能識別與處理01的符號串組合的代碼其運算模式為二進制,計算機里的每個位元組分成8段0與1每段可以用來記錄一個0或1。
二進制(binary)
二進制每個數位上只有0和1兩種可能 逢二進一。
數碼:0 1;(數制中告殲表示基本數據大小的不同數字元號)
基數:2 ;(數制所使用數碼的個數)
位權:010中1的位權為4(數制中某一位上的1所表示的數值的大小)
0101 0101
每位的位權是多少?(最右數位為次冪):對應數位的值 *基數^0123 1 *2^0
3: 1*2^2任何一個數字都可以用十進制來表示也可以用二進制來表示
4 二進制的十進製表示方法 :二進制其位權是以2為底的冪
如:0101.01= 1*2^2+0*2^1+1*2^0+ 0*(2^-1)+1*(2^-2)
1010 =1*2^3 + 0*2^2 + 1*2^1 +0*2^0
規律:相鄰的數位中右邊數位中1的值是左邊數位中1的數襪舉沖值的2倍,數碼為0的數位為零 轉換時可以當成0來處理
1010 1101 =?1*2^7+1*2*5+1*2^3+4+1 0110 0010
十進制轉換成二進制的方法
1、把十進制拆分成多個2的整數次方之和,然後把拆分結果單獨轉換成二進制,然後所結果合並。