回覆列表
-
1 # 使用者3861248109081
-
2 # 使用者7101088742487
可以用PWM模式產生方波
也可以用最簡單的延時程式
比如
P1 = 1;
DELAYms(x1); //x1為延時x毫秒,用於調節佔空比和頻率
P1 = 0;
DELAYms(x2);
可以用PWM模式產生方波
也可以用最簡單的延時程式
比如
P1 = 1;
DELAYms(x1); //x1為延時x毫秒,用於調節佔空比和頻率
P1 = 0;
DELAYms(x2);
RT-Thread瞭解一下。
具體的就是透過彙編人為觸發PenSV懸起異常,然後手工操作CPU各功能暫存器,儲存到RAM中,實現上文保護,然後移動PSP暫存器位置,將合理的RAM值呼叫到CPU暫存器中,實現下文切換。
跟你在單核CPU下用windows或者linux的多執行緒高階語言程式設計其實是一個道理。
只不過微控制器的這些活兒都要你手寫,還沒法用C寫,關於上下文保護和切換的大概50行左右的核心程式碼需要用匯編。
其實你思考一下微控制器是怎樣在各個中斷服務函式程式碼段之間隨意進出的,你就應該能夠理解CPU的上下文保護和切換機制了,這是多執行緒的核心思想。
去看看RT-Thread核心程式碼吧,會幫你迅速並深刻地解作業系統和多執行緒。