S12ZVL-TIM-频率测量-V1_0-CW106-TIC-示例 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
******************************************************************************************* * 文件main.c * 所有者 LaMa-TIC-RPR * 版本 1.1 * 日期 2016年6月17日 * 分类一般商业信息 * 使用 TIM 模块在 PT0(IOC0_0)处进行简要的 S12Z 频率测量 * 在输入捕获模式下 ******************************************************************************************* * 详细说明: * 代码测量 PT0 处的频率 * 它表明 * - 它通过 TIM 模块 IOC0_0 测量 PT0 处的频率。 * - 测量对上升沿敏感,因此占空比没有影响 * 测量 *-常量: * 巴士时钟 * 最大溢出 * TIMER_PRESCALLER * 必须定义 * - MAX_OVERFLOWS 确定最小可测量频率。 * 这是最大值。允许的溢出次数。当溢出计数器达到 * 如果设置了标志 FREQUENCY_TOO_LOW,则此值成立。信息 * 然后将两个边之间的周期写入变量“str” * 该值给出了时间间隔: * T = TIMER_PRESCALER * MAX_OVERFLOWS * 65536 / BUSCLOCK * 例如: *-TIMER_PRESCALER = 1 * - 最大溢出 = 1000 * - 总线时钟 = 16,000,000Hz * T = 1 * 1000 * 65536 / 16,000,000 = 4,096 秒 => f=0,244140625Hz * - TIMER_PRESCALER = { 1,2,4,8,16,32,64,128} - 值越小,给出的数值越多 * 精确的值但它会更频繁地产生定时器溢出 * - 测量频率的物理表示存储在 * 字符串“str” * * - 测量精度为 df,可表示为: * * df = BUSCLK / ((n^2 + n) * PRESCALER); n = 测量的 TCNT 周期数 * * 例如:BUSCLK = 16MHz,n = 399,PRESCALER = 1 * * * df = 16,000,000 / ((399^2 + 399) * 1) = 100.25Hz * * 因此,计数 399 意味着 f=BUSCL/399=16,000,000/399 = 40,100.25Hz * 因此,计数 400 意味着 f=BUSCL/400=16,000,000/399 = 40,000.00Hz * * 因此,这种方法不适用于大频率,正如在 * 下表(我们可以得到的百分比误差是 df/f): * n f[赫兹] df[赫兹] n f[赫兹] df[赫兹] * 1 8000000 5333333,3 101 1553,0 30,1 * 2 2666666,6 1333333,3 102 1522,9 29,2 * 3 1333333,3 533333,3 103 1493,6 28,4 * 4 800000 266666,6 104 1465,2 27,6 * 5 533333,3 152380,9 105 1437,5 26,8 * 6 380952,3 95238,0 106 1410,6 26,1 * 7 285714,2 63492,0 107 1384,5 25,4 * 8 222222,2 44444,4 108 1359,1 24,7 * 9 177777,7 32323,2 109 1334,4 24,0 * 10 145454,5 24242,4 110 1310,4 23,4 * 11 121212,1 18648,0 111 1287,0 22,7 * 12 102564,1 14652,0 112 1264,2 22,1 * 13 87912,0 11721,6 113 1242,0 21,6 * 14 76190,4 9523,8 114 1220,4 21,0 * 15 66666,6 7843,1 115 1199,40,502 * 16 58823,5 6535,9 116 1178,8 19,9 * 17 52287,5 5503,9 117 1158,9 19,4 * 18 46783,6 4678,3 118 1139,4 18,9 * 19 42105,2 4010,0 119 1120,4 18,5 * 20 38095,2 3463,2 120 1101,9 18,0 * 21 34632,0 3011,4 121 1083,8 17,6 * 22 31620,5 2635,0 122 1066,2 17,1 * 23 28985,5 2318,8 123 1049,0 16,7 * 24 26666,6 2051,2 124 1032,2 16,3 * 25 24615,3 1823,3 125 1015,8 15,9 * *-PCB设置: * - J35 已断开,因为测量是在 PT0 上进行的 * - 脉冲发生器连接到 J35 引脚 1。(PT0) * * - 参考文档:MC9S12ZVLMR1.pdf Rev. 1.02 * - 在 TRK-S12ZVL 上测试 *-单片机 MC9S12ZVL32 0N22G *-OSCCLK = 4MHz * - BUSCLK = 16MHz(由PLL设置) * * 有关频率和计数的信息通过 SCI0 Tx 传输, * 路由 (MODRR) 至 PS1 引脚 * ******************************************************************************************* 修订历史: 版本 日期 作者 变更说明 1.0 2016年6月17日 LaMa-TIC-RPR 初始版本 **********************************************************************************************/ 概述
查看全文