|
天嵌科技的 "PWM-Test" 驱动
//prescaler = 50
tcfg0 &= ~S3C2410_TCFG_PRESCALER0_MASK;
tcfg0 |= (50 - 1);
//mux = 1/16
tcfg1 &= ~S3C2410_TCFG1_MUX0_MASK;
tcfg1 |= S3C2410_TCFG1_MUX0_DIV16;
__raw_writel(tcfg1, S3C2410_TCFG1);
__raw_writel(tcfg0, S3C2410_TCFG0);
clk_p = clk_get(NULL, "pclk");
pclk = clk_get_rate(clk_p);
tcntb = (pclk/128)/arg;
tcmpb = tcntb>>1;
__raw_writel(tcntb, S3C2410_TCNTB(0));
__raw_writel(tcmpb, S3C2410_TCMPB(0));
我感觉不是 128 啊 我看了mini2440的代码 它是tcnt = (pclk/50/16)/freq; 这是一个问题.
再就是 PWM输出设置,tcmpb 比较值是周期的一半,单单改变周期,能调节蜂鸣器的响度变化,我有点想不通,
不是高低电平所占的时间都是一半吗,怎么会改变蜂鸣器的响度呢?
|
|