[原创] [LPC54100] 外部中断使用

lyzhangxiang   2015-5-23 21:42 楼主
这是很优秀的设计,以前没见过设计外设这么认真的,文档写的也不错,看起来清晰。 我们先来看关于数字外设的描述 DIGITAL PERIPHERALS.jpg 提到了两种外部中断PINT和GINT,看起来都蛮不错的嘛,接着去细看一下PINT,因为RADIO接收需要中断。 PINT.jpg 这玩意很自由,所谓的match engine,不得不佩服设计者的用心良苦,关键是这么自由的东西配置起来一点也不复杂,主要还是归功于寄存器的设计合理。数字电路一流的,目前我用的IC这些东西要么很简单要么就特别复杂。。 继续看一下match engine的构造,就是这么的自然,第一次使用NXP的东西,确实不错,对于老手来说估计也不是啥新鲜事情了,就是这么见识少。。 MATCH ENGINE.jpg 接着看 detect logic构造,很清晰的看到需要去设置哪个寄存器 DETECT LOGIC.jpg 我的配置代码部分
  1. /* AT86RF212B IRQ引脚--中断功能 */
  2. Chip_PININT_Init (LPC_PININT);
  3. Chip_GPIO_SetPinDIRInput (LPC_GPIO, 0, 4);
  4. Chip_IOCON_PinMuxSet (LPC_IOCON, 0, 4, (IOCON_FUNC0 | IOCON_DIGITAL_EN | IOCON_GPIO_MODE));
  5. Chip_INMUX_PinIntSel (PININTSELECT0, 0, 4);
  6. Chip_PININT_ClearIntStatus (LPC_PININT, PININTCH(PININTSELECT0));
  7. Chip_PININT_SetPinModeEdge (LPC_PININT, PININTCH(PININTSELECT0));
  8. Chip_PININT_EnableIntLow (LPC_PININT, PININTCH(PININTSELECT0));
  9. Chip_PININT_EnableIntHigh (LPC_PININT, PININTCH(PININTSELECT0));
  10. NVIC_EnableIRQ (PIN_INT0_IRQn);
  11. Chip_SYSCON_EnableWakeup (SYSCON_STARTER_PINT0);
很简洁,就这几行全搞定了。 本帖最后由 lyzhangxiang 于 2015-5-23 21:54 编辑
电工

回复评论 (2)

呵呵,看来关注有意思又很方便的功能,上一次活动我也折腾过一下pattern match,印象深刻, https://bbs.eeworld.com.cn/thread-447599-1-1.html ,不仔细看手册基本发现不了这个功能。这么久也只看到楼主关注这种芯片特性。 >>> 精华理由:没有其他同学针对LPC54102芯片的此类特点功能进行解读,大部分还是关注在spi,iic的使用(是的,使用而不是特点解析),这篇文章抛了块砖(虽然时间有点晚) 本帖最后由 freebsder 于 2015-5-23 23:06 编辑
默认摸鱼,再摸鱼。2022、9、28
点赞  2015-5-23 22:58
引用: freebsder 发表于 2015-5-23 22:58
呵呵,看来关注有意思又很方便的功能,上一次活动我也折腾过一下pattern match,印象深刻, https://bbs.eeworld.com.cn/thread-447599-1-1.html  ,不仔细看手册基本发现不了这个功能。这么久也只看到楼主关注这种芯片特性。


>>>

精华理由:没有其他同学针对LPC54102芯片的此类特点功能进行解读,大部分还是关注在spi,iic的使用(是的,使用而不是特点解析),这篇文章抛了块砖(虽然时间有点晚)

专业啊,一年前写的,这么详细



我是在使用过程中一点点发现的,i2c、spi也确实很好,不过好像很少有人分析的很透彻,只是说nxp的i2c好,没有说怎么好。
电工
点赞  2015-5-24 00:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复