[Tinyos-beta-commits] CVS: tinyos-1.x/beta/platform/pxa27x PXA27XGPIOIntM.nc, 1.1, 1.2

Philip Buonadonna philipb at users.sourceforge.net
Wed Mar 9 14:49:50 PST 2005


Update of /cvsroot/tinyos/tinyos-1.x/beta/platform/pxa27x
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5233

Modified Files:
	PXA27XGPIOIntM.nc 
Log Message:
- Optimized GPIO edge detetion scan routine. 


Index: PXA27XGPIOIntM.nc
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/beta/platform/pxa27x/PXA27XGPIOIntM.nc,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** PXA27XGPIOIntM.nc	13 Nov 2004 01:12:40 -0000	1.1
--- PXA27XGPIOIntM.nc	9 Mar 2005 22:49:48 -0000	1.2
***************
*** 140,179 ****
      uint32_t DetectReg;
      uint8_t pin;
-     uint8_t i;
  
      atomic DetectReg = GEDR0;
  
!     for (i = 0;i < 32; i++) {
!       if (DetectReg & (1 << i)) {
! 	pin = i;
! 	signal PXA27XGPIOInt.fired[pin]();
!       }
      }
  
      atomic DetectReg = GEDR1;
  
!     for (i = 0;i < 32; i++) {
!       if (DetectReg & (1 << i)) {
! 	pin = 32 + i;
! 	signal PXA27XGPIOInt.fired[pin]();
!       }
      }
  
      atomic DetectReg = GEDR2;
  
!     for (i = 0;i < 32; i++) {
!       if (DetectReg & (1 << i)) {
! 	pin = 64 + i;
! 	signal PXA27XGPIOInt.fired[pin]();
!       }
      }
  
      atomic DetectReg = GEDR3;
  
!     for (i = 0;i < 32; i++) {
!       if (DetectReg & (1 << i)) {
! 	pin = 96 + i;
! 	signal PXA27XGPIOInt.fired[pin]();
!       }
      }
  
--- 140,174 ----
      uint32_t DetectReg;
      uint8_t pin;
  
      atomic DetectReg = GEDR0;
  
!     while (DetectReg) {
!       pin = 31 - _pxa27x_clzui(DetectReg);
!       signal PXA27XGPIOInt.fired[pin]();
!       DetectReg &= ~(1 << pin);
      }
  
      atomic DetectReg = GEDR1;
  
!     while (DetectReg) {
!       pin = 31 - _pxa27x_clzui(DetectReg);
!       signal PXA27XGPIOInt.fired[(pin+32)]();
!       DetectReg &= ~(1 << pin);
      }
  
      atomic DetectReg = GEDR2;
  
!     while (DetectReg) {
!       pin = 31 - _pxa27x_clzui(DetectReg);
!       signal PXA27XGPIOInt.fired[(pin+64)]();
!       DetectReg &= ~(1 << pin);
      }
  
      atomic DetectReg = GEDR3;
  
!     while (DetectReg) {
!       pin = 31 - _pxa27x_clzui(DetectReg);
!       signal PXA27XGPIOInt.fired[(pin+96)]();
!       DetectReg &= ~(1 << pin);
      }
  



More information about the Tinyos-beta-commits mailing list