我来给提供一个 换算程序 。值需要修改 myclks为你自己的频率
#include <stdio.h>
//16 MHz / 16 = 1 000 000 Hz
//*2/16=/8
#define myclks 1000000 // 修改这里,为你的定时器输入频率
//比如cpu16m,分频16,定时器频率就是1m
int table[]=
{
32000,27352,21959,17755,14987,13241,12003,11065,10321, 9711,/*10*/
9200, 8762, 8383, 8049, 7753, 7488, 7248, 7031, 6832, 6649,/*20*/
6480, 6324, 6179, 6043, 5917, 5798, 5686, 5580, 5480, 5386,/*30*/
5296, 5211, 5129, 5052, 4978, 4907, 4840, 4775, 4712, 4653,/*40*/
4595, 4540, 4486, 4435, 4385, 4337, 4291, 4246, 4203, 4161,/*50*/
4120, 4080, 4042, 4005, 3969, 3933, 3899, 3866, 3834, 3802,/*60*/
3771, 3741, 3712, 3684, 3656, 3629, 3602, 3576, 3551, 3526,/*70*/
3502, 3478, 3455, 3432, 3410, 3388, 3367, 3346, 3326, 3306,/*80*/
3286, 3267, 3248, 3229, 3211, 3193, 3176, 3159, 3142, 3125,/*90*/
3109, 3093, 3077, 3061, 3046, 3031, 3016, 3002, 2988, 2974,/*100*/
2960, 2946, 2933, 2919, 2906, 2894, 2881, 2869, 2856, 2844,/*110*/
2832, 2821, 2809, 2798, 2786, 2775, 2764, 2754, 2743, 2733,/*120*/
2722, 2712, 2702, 2692, 2682, 2672, 2663, 2653, 2644, 2635,/*130*/
2626, 2617, 2608, 2599, 2591, 2582, 2574, 2565, 2557, 2549,/*140*/
2541, 2533, 2525, 2517, 2509, 2502, 2494, 2487, 2479, 2472,/*150*/
2465, 2458, 2451, 2444, 2437, 2430, 2423, 2417, 2410, 2403,/*160*/
2397, 2391, 2384, 2378, 2372, 2366, 2360, 2354, 2348, 2342,/*170*/
2336, 2330, 2324, 2319, 2313, 2307, 2302, 2296, 2291, 2286,/*180*/
} ;
int table_new[180];
int main(int argc, char *argv[])
{
int length,a,b,div;
int in,i,j;
a=sizeof(table);
b=sizeof(table[0]);
length=sizeof(table) / sizeof(table[0]);
printf("table is %d,int is %d,length is %d",a,b,length);
div=8000000/myclks;
for( in=0;in<180;in++)
{
table_new[in]=table[in]/div;
printf("\n");
}
for(i=0;i<18;i++)
{
for( j=0;j<10;j++)
{
printf("%d ,",table_new[i*10+j]);
}
printf("// line %d",i );
printf("\n");
}
}
|