#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。 |