#include <stdio.h>
#include<math.h>
int main()
{
float arr, psc,tclk,fpwm,n;
int choose;
printf("Enter 1 or 2 to choose mode0 or mode1 : ");
scanf("%d", &choose);
if(choose==1)
{
printf("Enter Fpwm (hz): ");
scanf("%f", &fpwm);
printf("Enter tclk (mhz): ");
scanf("%f", &tclk);
printf("Enter psc : ");
scanf("%f", &psc);
arr=(tclk*pow(10,6)/(fpwm*(psc+1)))-1;
printf("%f",arr);
}
else
{
printf("Enter Fpwm (hz): ");
scanf("%f", &fpwm);
printf("Enter tclk (mhz): ");
scanf("%f", &tclk);
for(psc=0;psc<=65535;psc++)
{
for(arr=0;arr<=65535;arr++)
{
n=(tclk*pow(10,6)/((psc+1)*(arr+1)));
if(n==fpwm)
{
printf("psc=%.0f,arr=%.0f\n",psc,arr);
break;
}
}
}
}
}
计算 定时器arr和psc
于 2022-11-08 19:43:00 首次发布