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