Hi all,

I am interested in having an interrupt from a pin on the internal extension
header (the one the ECG/Gyro boards etc slot into). Looking at the hardware
guide<http://www.btnode.ethz.ch/pub/uploads/Projects/SHIMMER_HWGuide_REV1P3.pdf>,
it seems that BSL_TX/RX and Serial CTS/RTS can be used as internal
interrupt lines. Which is great! I did some searching around the tos file
structure, and it looks like the Roving Networks Bluetooth implementation
has some good pointers about how I might achieve this, so I used the
ConnectionInterrupt implementation as a starting template and modified
the AccelECG project accordingly.

I decided to use the BSL_RX pin as the external interrupt pin as it was out
of the way, I suppose. It's pin #10 on the header, and pin#22 (port2.2) on
the MSP430. It was an arbitrary choice to be honest, but I don't think it
should matter much.

My test application should toggle the LEDs when an interrupt has been
detected. The code compiles and builds fine. But the interrupt isn't
working yet. I was wondering if someone here could verify that I'm going
about this the right way. Am I missing some configurations?

Thanks.
Niall

....


In AccelECGAppC.nc I added the following to the implementation:

> components HplMsp430InterruptC;
> AccelECGC.interruptTest -> HplMsp430InterruptC.Port22;


In AccelECGC.nc I added the following three snippets:

> uses {
>   // ... as stock
>   interface HplMsp430Interrupt as interruptTest;
> }


void init() {
>   // ... as stock

  call interruptTest.edge( TRUE );
>   call interruptTest.clear();
>   call interruptTest.enable();
> }


async event void interruptTest.fired() {
>   ledsOn ^= 1;
>
>   if ( !ledsOn ) {
>     call Leds.led0On();
>     call Leds.led1On();
>   } else {
>     call Leds.led0Off();
>     call Leds.led1Off();
>   }
>
>   atomic call interruptTest.clear();
> }
_______________________________________________
Shimmer-users mailing list
[email protected]
https://lists.eecs.harvard.edu/mailman/listinfo/shimmer-users

Reply via email to