*******************************************************************************************
* 文件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 初始版本
**********************************************************************************************/