智能车制作
标题:
如何用PDB输出脉冲
[打印本页]
作者:
林枫林枫
时间:
2014-2-26 13:40
标题:
如何用PDB输出脉冲
想用PDB结合CMP窗口模式输出脉冲
#include "pdb.h"
#include "common.h"
void pdb_init(void)
{
//使能PDB时钟
SIM_SCGC6 |= SIM_SCGC6_PDB_MASK ;
//PDB_sc设置
//时钟分频频率
//f_PDB = bus / (mult * prescale)
// 48m/16=3m
PDB_SC_REG(PDB0_BASE_PTR) = PDB_SC_DMAEN_MASK //Dma enable
| PDB_SC_CONT_MASK //连续模式
| PDB_SC_TRGSEL(trgsel) //触发模式
| PDB_SC_MULT(mult) //倍频因数
| PDB_SC_PRESCALER(prescale) //分频因数
| PDB_SC_LDMOD(ldmod); //设置加载模式
PDB_MOD_REG(PDB0_BASE_PTR) = PDB_MOD_MOD(30000); // 频率为100hz
//脉冲使能
PDB_POEN_REG(PDB0_BASE_PTR) |= PDB_POEN_POEN_MASK;
//脉冲输出计时值 初始化
PDB_PODLY_REG(PDB0_BASE_PTR) = PDB_PODLY_DLY1(1000) //到值为高电平
|PDB_PODLY_DLY2(16000); //到值为低电平
PDB_SC_REG(PDB0_BASE_PTR) = PDB_SC_PDBEN_MASK //pdb 使能
| PDB_SC_LDOK_MASK //把更新的寄存器值装载到寄存器
| PDB_SC_SWTRIG_MASK ; //使能软件触发,计数器复位
}
pdb.h
#define trgsel (15) //软件触发
#define mult (0)
#define prescale (4)
#define ldmod (0)
#define SET_PWM_SVO_SHAKE(x) \
{PDB_PODLY_REG(PDB0_BASE_PTR) |= PDB_PODLY_DLY1(0)|PDB_PODLY_DLY2(x); \
PDB_SC_REG(PDB0_BASE_PTR) |= PDB_SC_LDOK_MASK|PDB_SC_SWTRIG_MASK ;} //使能软件触发,计数器复位
extern void pdb_init(void);
**-------------------------------------------------------------
** MCU : K60(Freescale)
** Crystal :
** Module Name : CMP.c
Author :
Date : 2013.02.12
** Version : v1.0
** description :
** Notes :
CMP的窗口模式
可以使能PDB的脉冲模式的引脚输出
Pules-Out 产生驱动舵机的100hz的脉冲
**-------------------------------------------------------------
** Reversion :
** Modified By :
** Modified Date:
** Notes :
**************************************************************/
#include "common.h"
#include "cmp.h"
void cmp_init(void)
{
//开时钟
SIM_SCGC4 |= SIM_SCGC4_CMP_MASK ;
//功能复用
// 窗口模式使能
CMP0_CR1 |= CMP_CR1_WE_MASK //窗口使能
|CMP_CR1_EN_MASK //比较模块使能
// |CMP_CR1_PMODE_MASK //快速模式
|CMP_CR1_OPE_MASK ; //ope 输出引脚使能
CMP0_SCR |= CMP_SCR_COUT_MASK; // 引脚输出
/*
//功能复用寄存器
CMP0_MUXCR = CMP_MUXCR_MSEL_MASK
|CMP_MUXCR_PSEL_MASK
|CMP_MUXCR_MSEL(0)
|CMP_MUXCR_PSEL(0);
*/
这是在网上看的别人写的程序,感觉没错,可还是没有输出,,求大神指导
作者:
顾小东
时间:
2014-3-5 18:17
请问搞出来没
欢迎光临 智能车制作 (http://www.znczz.com/)
Powered by Discuz! X3.2