共2条
1/1 1 跳转至页
EASYARM2200 EASYARM2200+计数器1的操作


问
void Timer1Init(void)
{
PINSEL0=(PINSEL0&0xf8ffffff)|(1<<27);
//配置P0.13功能为MAT1.1
//IO0DIR=0xffffffff;这个代码好象是不需要的吧
T1IR=0xffffffff; //写入1复位中断寄存器
T1PR=1; //预分频寄存器
T1TC=0; //定时计数器
T1MCR=0X10; //匹配控制寄存器,设置MR1匹配时TC复位
T1MR1=Fpclk/200; //匹配寄存器1 MAT1.1 P0.13
T1EMR=0XC2; //外部匹配寄存器,翻转
}
我用计数器来发脉冲,在主程序中 T1TCR=1;//使能计数器1,和关闭计数器来控制。寄存器的设置如上面的代码,我对照教材反复的查了寄存器都没有问题,可是就是没有在p0.13口得到脉冲的输出。
请教高手指点一下 ,是不是有什么地方我没有考虑到?????
另外设置了p0.13为MAT1.1,还要不要再设置p0.13为输出?? 答 1: re:您启动定时器了吗?
T1TCR = 0x03; // 启动并复位T1TC
T1TCR = 0x01;
还有,您可以在存储器观察窗口观察TIEMR的地址0xE000803C处,看有没有翻转
另外,设置为MAT1.0的管脚不需要再设置为输出(没有意义),因为只有选择GPIO,设置IODIR才有意义。
{
PINSEL0=(PINSEL0&0xf8ffffff)|(1<<27);
//配置P0.13功能为MAT1.1
//IO0DIR=0xffffffff;这个代码好象是不需要的吧
T1IR=0xffffffff; //写入1复位中断寄存器
T1PR=1; //预分频寄存器
T1TC=0; //定时计数器
T1MCR=0X10; //匹配控制寄存器,设置MR1匹配时TC复位
T1MR1=Fpclk/200; //匹配寄存器1 MAT1.1 P0.13
T1EMR=0XC2; //外部匹配寄存器,翻转
}
我用计数器来发脉冲,在主程序中 T1TCR=1;//使能计数器1,和关闭计数器来控制。寄存器的设置如上面的代码,我对照教材反复的查了寄存器都没有问题,可是就是没有在p0.13口得到脉冲的输出。
请教高手指点一下 ,是不是有什么地方我没有考虑到?????
另外设置了p0.13为MAT1.1,还要不要再设置p0.13为输出?? 答 1: re:您启动定时器了吗?
T1TCR = 0x03; // 启动并复位T1TC
T1TCR = 0x01;
还有,您可以在存储器观察窗口观察TIEMR的地址0xE000803C处,看有没有翻转
另外,设置为MAT1.0的管脚不需要再设置为输出(没有意义),因为只有选择GPIO,设置IODIR才有意义。
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
C语言函数宏的三种封装方式被打赏50分 | |
嵌入式LinuxC语言程序调试和宏使用技巧被打赏50分 | |
让代码中包含最新的编译时间信息被打赏50分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769LVGL优化显示被打赏26分 | |
rtthread硬件加密--2crc加密分析被打赏10分 | |
【分享开发笔记,赚取电动螺丝刀】STM32F769驱动ST7789以及显示优化被打赏36分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 PAL模拟I2C驱动适配被打赏23分 | |
我想要一部加热台+电源硬件设计规范被打赏16分 | |
我想要一部加热台+LED背光驱动芯片RT9293知识被打赏18分 | |
【分享开发笔记,赚取电动螺丝刀】S32K146 ADC 模块配置使用被打赏24分 |