在线时间0 小时
UID149295
注册时间2008-8-11
NXP金币0
该用户从未签到
新手上路

- 积分
- 48
- 最后登录
- 1970-1-1
|
发表于 2011-12-12 16:09:26
|
显示全部楼层
回复:DZ60定时器问题
回复第 2 楼 于2011-07-24 08:41:33发表:
/*-------------------------------------------------------------*/
/* 该程序由定时器脉冲宽度调节器TPM来完成 */
/* 利用TPM的输出比较功能,产生1mS定时 */
/* 微控制器采用的是MC9S08DZ60 */
/* 晶振频率4MHz */
/* TOF位对应的是定时器溢出中断, */
/* 而CH0F位对应的是定时器通道0匹配中断 */
/*-------------------------------------------------------------*/
#include /* for EnableInterrupts macro */
#include "derivative.h" /* include peripheral declarations */
/////////////////////////////////////////////////////////////////////////////////////////
// MCU单片机初始化程序
/////////////////////////////////////////////////////////////////////////////////////////
void PeriphInit(void)
{
SOPT1 = 0x00;
MCGC1 = 0xBB; // 选择外部参考时钟作为总线的时钟源,使能内部参考时钟
MCGC2 = 0x36; //选择外部1M~16M高频晶振,总线分频率为1
MCGC3 = 0x00; // PLL=0即禁止PLL
//计算一下总线频率:晶振频率是4MHz,BDIV=1,MCGOUT频率为4MHz,总线频率为2MHz
while(!(MCGSC&0x02))
;
//I/O口初始化
PTDDD=0xff; //TPM1CH0设置为输出
PTDD=0x00; //输出初始化为0
//TPM1初始化
TPM1SC=0x48; //TOF中断使能、选择总线速率时钟作为时钟源、预分频器因子为1
TPM1CNT=0x0000;//清计数器值
TPM1MOD=0x07d0;//模数寄存器值
TPM1C0SC=0x14; //通道中断不使能,输出比较为切换比较输出
TPM1C0V=0x03e8; //通道寄存器值
}
/////////////////////////////////////////////////////////////////////////////////////////
//中断处理子函数
/////////////////////////////////////////////////////////////////////////////////////////
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt void TPM1ovf_inter(void)
{
if(TPM1SC_TOF!=0) {
TPM1SC_TOF=0;//清中断标志位
你自己加的中断操作
}
}
/////////////////////////////////////////////////////////////////////////////////////////
//主函数
/////////////////////////////////////////////////////////////////////////////////////////
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void main(void) {
EnableInterrupts; /* enable interrupts */
/* include your code here */
PeriphInit();
for(;;) {
__RESET_WATCHDOG(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
我做了一个程序也跟你这个一样,但发现一个问题,当我改变通道寄存器的值时,输出的PWM的占空比是不变的,还是50%,按理来说改变通道寄存器的值就能改变占空比的,希望能提供帮助,谢谢
|
|