[Tinyos-help] TinyOS MICAz GpioInterrupt

Andres Vahter andres.vahter at gmail.com
Thu Jul 23 04:21:22 PDT 2009


I added following lines to boot.booted():

	call IO.makeInput();
	call IO.set();

	call Interrupt.disable();
	call Interrupt.clear();
	call Interrupt.edge(TRUE);
	call Interrupt.enable();

It seems that problem was that i didn't set the PortE4.
Now it works fine - interrupt is triggered when I connect wire from  
Int4 to Gnd.
Without IO.set() led toggles all the time when loose wire is connected  
to Int4.

I think I actually have to create a "driver" similar to Sensor Driver  
Example 2 (http://tinyos.cvs.sourceforge.net/*checkout*/tinyos/tinyos-2.x/doc/html/tep109.html 
)
I access directly to HplAtm128InterruptC. It seems from that example,  
that I should use GpioInterrupt interface instead.


Andres Vahter



On 22.07.2009, at 23:36, Michael Schippling wrote:

> You'll have to look in the controller specs to see if there are
> pullups on PortE, and that in-fact you're using the right pin.
>
> I just looked at my interrupt code. I did it brute force with
> the TOS defines that are probably also hidden in HplAtm128GeneralIOC
> (which I should try to use this time around in order to increase
> my confusion level). What occurred to me is that you probably
> have to reset the interrupt pin in your service routine or it
> will just keep firing....
>
>> There is code with portE4 made as input:
>> ------------TestAppNodeC.nc------------------------------
>> -----------------------------------------------------------
>> configuration TestAppNodeC {}
>> implementation {
>> components TestNodeC, MainC, LedsC;
>> components HplAtm128InterruptC; //iris doesn't have GpioInterruptC
>> components HplAtm128GeneralIOC;
>> TestNodeC.Boot -> MainC;
>> TestNodeC.Leds -> LedsC;
>> TestNodeC.Interrupt -> HplAtm128InterruptC.Int4;
>> TestNodeC.IO -> HplAtm128GeneralIOC.PortE4;
>> }
>> ------------TestNodeC.nc------------------------------
>> -----------------------------------------------------------
>> module TestNodeC {
>> uses interface Boot;
>> uses interface Leds;
>> uses interface HplAtm128Interrupt as Interrupt;
>> uses interface GeneralIO as IO;
>> }
>> implementation {
>> event void Boot.booted() {
>> call IO.makeInput();
	call IO.set();
	call Interrupt.disable();
	call Interrupt.clear();
	call Interrupt.edge(TRUE);

>> call Interrupt.enable();
>> }
>> async event void Interrupt.fired(){
>> call Leds.led0Toggle();
>> }
>> .....................

-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://www.millennium.berkeley.edu/pipermail/tinyos-help/attachments/20090723/d4cfc207/attachment.htm 


More information about the Tinyos-help mailing list