共2条
1/1 1 跳转至页
LPC2210,IO LPC2210的捕获计数IO口要接什么上拉电阻之类的外围吗?
问
小弟初学ARM,这几天要用LPC的P0.27口的定时器捕获来计数外部脉冲,可是总是不能进入中断服务程序。
我用信号发生器产生方波后接P0.27,今天用示波器看P0.27口的输入,发现总是低电平,也就是说根本就没有脉冲输入了。下午接了一个上拉电阻还是没用。所以想请教各位达人这个LPC芯片的输入和51单片机的输入还不一样吗?
用51计数没见过这种问题啊。
我这两天把lpc2210的资料翻烂了也没见着有详细说明的,还望知道的网友交流一下:) 答 1: 如果你确认你的信号发生器有输出的话,那么就是IO没配置好了 答 2: 我的程序,IO配置要做什么修改吗?下面是我的程序,哪里有问题吗?
/********************************************************************
* 名称:IRQ_Timer0(void)
* 功能:定时器0中断服务程序
* 入口参数:
* 出口参数:无
********************************************************************/
void __irq IRQ_Timer0(void)
{
T0IR = 0x20;
T0TC=0;
counter++;
VICVectAddr = 0x00000000;
}
/********************************************************************
* 名称:Timer0_Init()
* 功能:定时器0初始化
* 入口参数:
* 出口参数:无
********************************************************************/
void Timer0_Init (void)
{
//捕获通道设置
PINSEL1 = PINSEL1 | 0x00800000; //设P0.27为CAP0.1
T0CCR = T0CCR | 0x0030; //设置cap0.1为下降沿捕获/引发中断
T0PR = 99;
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00; // 所有中断通道设置为IRQ中断
VICVectCntl0 = 0x24; // 定时器0中断通道分配优先级0
VICVectAddr0 = (uint32)IRQ_Timer0; // 设置中断服务程序地址向量
VICIntEnable = 0x00000010; // 使能定时器0中断
}
/*******************************************************************
* 名称:main()
* 功能:主程序
********************************************************************/
int main(void)
{
Timer0_Init();
T0TCR=0x01; //启动定时器0
while(1);
return(0);
} 答 3: 定时器初始化改一下试试: //捕获通道设置
PINSEL1 = PINSEL1 | 0x00800000; //设P0.27为CAP0.1
PINSEL1 &= (~0x00400000); //增加这句 答 4: 添加中断句柄 在IRQ文件中添加,Timer0的中断句柄
再查看startup文件中总中断允许开了没有 答 5: 谢谢圈圈,解决了加了那句后就好了
有点明白了,我原来的设置有bug
不过(~0x00400000)的用法是有其他意思,还是个人习惯呢?用0xffbfffff一样吧 答 6: 一样。个人习惯而已。计算0xFFBFFFFF有点麻烦写成~0x00400000更快。
另外有个稍微不一样的地方在于,~0,表示的意思却可能不一样。
例如8位的时候,它是0xFF,而16位时,就变成了0xFFFF了。如果直接写0xFF,那么它始终是这个。
所以在不同的MCU之间移植时,用~可能会省掉一些事。看具体场合了。 答 7: 是个好习惯,学习了:)谢谢圈圈指点。
看似简单的东西也是有深意滴
最近我做的程序要求可移植性好,看来可以用上啦,哈哈
我用信号发生器产生方波后接P0.27,今天用示波器看P0.27口的输入,发现总是低电平,也就是说根本就没有脉冲输入了。下午接了一个上拉电阻还是没用。所以想请教各位达人这个LPC芯片的输入和51单片机的输入还不一样吗?
用51计数没见过这种问题啊。
我这两天把lpc2210的资料翻烂了也没见着有详细说明的,还望知道的网友交流一下:) 答 1: 如果你确认你的信号发生器有输出的话,那么就是IO没配置好了 答 2: 我的程序,IO配置要做什么修改吗?下面是我的程序,哪里有问题吗?
/********************************************************************
* 名称:IRQ_Timer0(void)
* 功能:定时器0中断服务程序
* 入口参数:
* 出口参数:无
********************************************************************/
void __irq IRQ_Timer0(void)
{
T0IR = 0x20;
T0TC=0;
counter++;
VICVectAddr = 0x00000000;
}
/********************************************************************
* 名称:Timer0_Init()
* 功能:定时器0初始化
* 入口参数:
* 出口参数:无
********************************************************************/
void Timer0_Init (void)
{
//捕获通道设置
PINSEL1 = PINSEL1 | 0x00800000; //设P0.27为CAP0.1
T0CCR = T0CCR | 0x0030; //设置cap0.1为下降沿捕获/引发中断
T0PR = 99;
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00; // 所有中断通道设置为IRQ中断
VICVectCntl0 = 0x24; // 定时器0中断通道分配优先级0
VICVectAddr0 = (uint32)IRQ_Timer0; // 设置中断服务程序地址向量
VICIntEnable = 0x00000010; // 使能定时器0中断
}
/*******************************************************************
* 名称:main()
* 功能:主程序
********************************************************************/
int main(void)
{
Timer0_Init();
T0TCR=0x01; //启动定时器0
while(1);
return(0);
} 答 3: 定时器初始化改一下试试: //捕获通道设置
PINSEL1 = PINSEL1 | 0x00800000; //设P0.27为CAP0.1
PINSEL1 &= (~0x00400000); //增加这句 答 4: 添加中断句柄 在IRQ文件中添加,Timer0的中断句柄
再查看startup文件中总中断允许开了没有 答 5: 谢谢圈圈,解决了加了那句后就好了
有点明白了,我原来的设置有bug
不过(~0x00400000)的用法是有其他意思,还是个人习惯呢?用0xffbfffff一样吧 答 6: 一样。个人习惯而已。计算0xFFBFFFFF有点麻烦写成~0x00400000更快。
另外有个稍微不一样的地方在于,~0,表示的意思却可能不一样。
例如8位的时候,它是0xFF,而16位时,就变成了0xFFFF了。如果直接写0xFF,那么它始终是这个。
所以在不同的MCU之间移植时,用~可能会省掉一些事。看具体场合了。 答 7: 是个好习惯,学习了:)谢谢圈圈指点。
看似简单的东西也是有深意滴
最近我做的程序要求可移植性好,看来可以用上啦,哈哈
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |