一派护法 十九级              | 
          
            
            
             
              代码: 【MyAppC.nc】 configuration MyAppC { } implementation {     components MyC, MainC;     MyC.Boot -> MainC.Boot; }
  【MyC.nc】 module MyC {     uses interface Boot; } implementation {     #define _BV(n) (1 << (n))     #define SDAT_0 P2OUT &= ~_BV(0)     #define SDAT_1 P2OUT |= _BV(0)     #define STCLK_0 P2OUT &= ~_BV(1)     #define STCLK_1 P2OUT |= _BV(1)     #define SHCLK_0 P2OUT &= ~_BV(3)     #define SHCLK_1 P2OUT |= _BV(3)          // 数字0~9     const unsigned char table[][8] = {         {0x00, 0x00, 0x3E, 0x41, 0x41, 0x3E, 0x00, 0x00},         {0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, 0x00},         {0x00, 0x00, 0x62, 0x51, 0x49, 0x46, 0x00, 0x00},         {0x00, 0x00, 0x22, 0x49, 0x49, 0x36, 0x00, 0x00},         {0x00, 0x00, 0x38, 0x26, 0x7F, 0x20, 0x00, 0x00},         {0x00, 0x00, 0x4F, 0x49, 0x49, 0x31, 0x00, 0x00},         {0x00, 0x00, 0x3E, 0x49, 0x49, 0x32, 0x00, 0x00},         {0x00, 0x00, 0x03, 0x71, 0x09, 0x07, 0x00, 0x00},         {0x00, 0x00, 0x36, 0x49, 0x49, 0x36, 0x00, 0x00},         {0x00, 0x00, 0x26, 0x49, 0x49, 0x3E, 0x00, 0x00}     };          void SerIn(unsigned char dat)     {         unsigned char i;         for (i = 0; i < 8; i++)         {             SHCLK_0;             if (dat & 0x80)                 SDAT_1;             else                 SDAT_0;             dat <<= 1;             SHCLK_1;         }     }          void ParOut(void)     {         STCLK_0;         STCLK_1;     }          void delay(void)     {         unsigned int i;         for (i = 0; i < 600; i++);     }          // 显示数字     void ShowNumber(unsigned char n)     {         unsigned char i;         for (i = 0; i < 8; i++)         {             SerIn(~_BV(i));             SerIn(table[n][i]);             ParOut();             delay();         }     }          event void Boot.booted(void)     {         unsigned char i = 0;         unsigned char cnt = 0;                  P2DIR = 0xff;         P2OUT = 0x00;                  while (1)         {             ShowNumber(i);
              cnt++;             if (cnt > 100)             {                 cnt = 0;                 i++;                 if (i > 9)                     i = 0;             }         }     } } 【Makefile】 COMPONENT = MyAppC include $(MAKERULES) 【run.sh】 make telosb install bsl,/dev/ttyUSB0
  运行./run.sh就可以编译和烧写程序了              
                       |