![]() |
#include <stdio.h> int main() { int PWM_numb = 0; int PWM_but = 0; int num = 0;//輸出次數超過10000跳出循環 int i=0;//輸出換行用 while(1) { if(PWM_numb == 0) { PWM_but++; if(PWM_but>1000) PWM_numb = 1; } else if(PWM_numb == 1) { PWM_but--; if(PWM_but<1) PWM_numb = 0; } if(i++< 29) printf("%d ",PWM_but); else { i=0; printf("%d\n",PWM_but); } if(num++ >10000) break; } return 0; } 這是測試結果 |
調試模式,單步跑一下應該就可以找到問題了。 |
本帖最后由 i_could_have 于 2020-11-12 13:54 編輯 不知道你這有沒有在循環里面,如果沒在的話,只會執行一次,如果初始PWM_numb=0,那么PWM_but+1,然后PWM0->CMPA=PWM_but。如果在循環里面,確定循環條件一直滿足,PWM_but從0加到10000,然后再減到0。 |