⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc1110 sleep.txt

📁 讲述了CC1110sleep的设置
💻 TXT
📖 第 1 页 / 共 4 页
字号:
void main(void)   
{   
    unsigned int i,j;   
       
    SET_MAIN_CLOCK_SOURCE(CRYSTAL);   
       
    INT_GLOBAL_ENABLE(FALSE);   
       
    INIT_LED();   
       
    for (i=5; i!=0; i--)   
    {   
        GLED ^= 1;   
        RLED ^= 1;    
        for (j=50000; j!=0; j--);   
    }      
            
    // Powermode 1    
    GLED = LED_ON;   
    //SET_POWER_MODE(1);    
    GLED = LED_OFF;   
     
       
    // Powermode 2    
    RLED = LED_ON;   
    //SET_POWER_MODE(2);    
    RLED = LED_OFF;   
       
    INT_GLOBAL_ENABLE(TRUE);    
    P0DIR &= ~0x02;   
    P0IFG &= ~0x02; // clear interrupt flag P0_1    
    PICTL |= 0x09;  // enable interrupt P0, port 0 to 3    
    INT_SETFLAG(INUM_P0INT, INT_CLR);   
    INT_ENABLE(INUM_P0INT, INT_ON);   
   
   
    SET_MAIN_CLOCK_SOURCE(RC);   
    while (!HIGH_FREQUENCY_RC_OSC_STABLE);   
   
    SET_POWER_MODE(3);   
   
       
        
    while(1)   
    {   
       /*  
        for (i=5; i!=0; i--)  
        {  
            GLED ^= 1;  
            RLED ^= 1;   
            for (j=50000; j!=0; j--);  
        }   */   
   }   
   
}   
   
/******************************************************************************  
* @fn  powermodes_P0_IRQ  
*  
* @brief  
*     Interrupt handler for P0.  
*  
* Parameters:  
*  
* @param  void  
*  
* @return void  
*  
******************************************************************************/   
#pragma vector=P0INT_VECTOR    
__interrupt void powermodes_P0_IRQ(void){   
   
   // waiting until the button is released...    
   while(!P0_1);   
   //halWait(0x50);    
   
   P0IFG &= ~0x02; // clear interrupt flag P0_1    
   INT_SETFLAG(INUM_P0INT, INT_CLR);   
}   
*        **********                                                           *  
*       ************                                                          *  
*      ***        ***                                                         *  
*     ***    ++    ***                                                        *  
*     ***   +  +   ***                      CHIPCON                           *  
*     ***   +                                                                 *  
*     ***   +  +   ***                                                        *  
*     ***    ++    ***                                                        *  
*      ***        ***                                                         *  
*       ************                                                          *  
*        **********                                                           *  
*                                                                             *  
*******************************************************************************  
  
Filename:     hal.h  
Target:       cc1110  
Author:       EFU/ KJA  
Revised:      2/3-2006  
Revision:     1.0  
  
Description:  
Hardware Abstraction Layer, Utility Library.  
  
******************************************************************************/   
   
#ifndef HAL_H    
#define HAL_H    
   
#include "ioCC1110.h"    
#include <STDBOOL.H>    
   
/******************************************************************************  
*******************              Commonly used types        *******************  
******************************************************************************/   
// Data    
typedef unsigned char       byte;   
typedef unsigned short      word;   
typedef unsigned long       dword;   
   
// Unsigned numbers    
typedef unsigned char       uint8;   
typedef unsigned short      uint16;   
typedef unsigned long       uint32;   
   
// Signed numbers    
typedef signed char         int18;   
typedef signed short        int16;   
typedef signed long         int32;   
   
//-----------------------------------------------------------------------------    
// Common values    
#ifndef FALSE    
   #define FALSE 0    
#endif    
   
#ifndef TRUE    
   #define TRUE 1    
#endif    
   
#ifndef NULL    
   #define NULL 0    
#endif    
   
#ifndef HIGH    
   #define HIGH 1    
#endif    
   
#ifndef LOW    
   #define LOW 0    
#endif    
   
//-----------------------------------------------------------------------------    
   
#define UPPER_BYTE(a) ((byte) (((word)(a)) >> 8))    
#define HIBYTE(a) UPPER_BYTE(a)    
   
#define LOWER_BYTE(a) ((byte) ( (word)(a))      )    
#define LOBYTE(a) LOWER_BYTE(a)    
   
#define SET_WORD(regH, regL, Word) \    
   do{                             \   
      (regH) = UPPER_BYTE((Word)); \   
      (regL) = LOWER_BYTE((Word)); \   
   }while(0)   
   
#define READ_RFR16(reg) ((((word) ##reg##H) << 8) + ##reg##L)    
#define WRITE_RFR16(reg, value) do { ##reg##H = HIBYTE(value); ##reg##L = LOBYTE(value); } while (0)    
   
   
   
   
   
/******************************************************************************  
*******************             Port functions/macros       *******************  
******************************************************************************/   
   
// Macros for simplifying access to I/O pin setup and usage    
   
//*****************************************************************************    
   
   
// Macros for configuring IO peripheral location:    
// Example usage:    
//   IO_PER_LOC_TIMER1_AT_PORT0_PIN234();    
//   IO_PER_LOC_TIMER4_AT_PORT2_PIN03();    
//   IO_PER_LOC_USART1_AT_PORT0_PIN2345();    
   
#define IO_PER_LOC_TIMER1_AT_PORT0_PIN234() do { PERCFG = (PERCFG&~0x40)|0x00; } while (0)    
#define IO_PER_LOC_TIMER1_AT_PORT1_PIN012() do { PERCFG = (PERCFG&~0x40)|0x40; } while (0)    
   
#define IO_PER_LOC_TIMER3_AT_PORT1_PIN34()  do { PERCFG = (PERCFG&~0x20)|0x00; } while (0)    
#define IO_PER_LOC_TIMER3_AT_PORT1_PIN67()  do { PERCFG = (PERCFG&~0x20)|0x20; } while (0)    
   
#define IO_PER_LOC_TIMER4_AT_PORT1_PIN01()  do { PERCFG = (PERCFG&~0x10)|0x00; } while (0)    
#define IO_PER_LOC_TIMER4_AT_PORT2_PIN03()  do { PERCFG = (PERCFG&~0x10)|0x10; } while (0)    
   
#define IO_PER_LOC_SPI1_AT_PORT0_PIN2345()  do { PERCFG = (PERCFG&~0x08)|0x00; } while (0)    
#define IO_PER_LOC_SPI1_AT_PORT1_PIN4567()  do { PERCFG = (PERCFG&~0x08)|0x08; } while (0)    
   
#define IO_PER_LOC_SPI0_AT_PORT0_PIN2345()  do { PERCFG = (PERCFG&~0x04)|0x00; } while (0)    
#define IO_PER_LOC_SPI0_AT_PORT1_PIN2345()  do { PERCFG = (PERCFG&~0x04)|0x04; } while (0)    
   
#define IO_PER_LOC_UART1_AT_PORT0_PIN2345() do { PERCFG = (PERCFG&~0x02)|0x00; } while (0)    
#define IO_PER_LOC_UART1_AT_PORT1_PIN4567() do { PERCFG = (PERCFG&~0x02)|0x02; } while (0)    
   
#define IO_PER_LOC_UART0_AT_PORT0_PIN2345() do { PERCFG = (PERCFG&~0x01)|0x00; } while (0)    
#define IO_PER_LOC_UART0_AT_PORT1_PIN2345() do { PERCFG = (PERCFG&~0x01)|0x01; } while (0)    
   
   
// Actual MCU pin configuration:    
//    
// Peripheral I/O signal     Alt1       Alt2    
// -------------------------------------------    
// Timer1 channel0           P0.2       P1.2    
// Timer1 channel1           P0.3       P1.1    
// Timer1 channel2           P0.4       P1.0    
// Timer3 channel0           P1.3       P1.6    
// Timer3 channel1           P1.4       P1.7    
// Timer4 channel0           P1.0       P2.0    
// Timer4 channel1           P1.1       P2.3    
// USART0 TXD/MOSI           P0.3       P1.5    
// USART0 RXD/MISO           P0.2       P1.4    
// USART0 RTS/SCK            P0.5       P1.3    
// USART0 CTS/SS_N           P0.4       P1.2    
// USART1 TXD/MOSI           P0.4       P1.6    
// USART1 RXD/MISO           P0.5       P1.7    
// USART1 RTS/SCK            P0.3       P1.5    
// USART1 CTS/SS_N           P0.2       P1.4    
   
// Macros for configuring IO direction:    
// Example usage:    
//   IO_DIR_PORT_PIN(0, 3, IO_IN);    // Set P0_3 to input    
//   IO_DIR_PORT_PIN(2, 1, IO_OUT);   // Set P2_1 to output    
   
#define IO_DIR_PORT_PIN(port, pin, dir)  \    
   do {                                  \   
      if (dir == IO_OUT)                 \   
         P##port##DIR |= (0x01<<(pin));  \   
      else                               \   
         P##port##DIR &= ~(0x01<<(pin)); \   
   }while(0)   
   
// Where port={0,1,2}, pin={0,..,7} and dir is one of:    
#define IO_IN   0    
#define IO_OUT  1    
   
// Macros for configuring IO input mode:    
// Example usage:    
//   IO_IMODE_PORT_PIN(0,0,IO_IMODE_PUD);    
//   IO_IMODE_PORT_PIN(2,0,IO_IMODE_TRI);    
//   IO_IMODE_PORT_PIN(1,3,IO_IMODE_PUD);    
   
#define IO_IMODE_PORT_PIN(port, pin, imode) \    
   do {                                     \   
      if (imode == IO_IMODE_TRI)            \   
         P##port##INP |= (0x01<<(pin));     \   
      else                                  \   
         P##port##INP &= ~(0x01<<(pin));    \   
   } while (0)   
   
// where imode is one of:    
#define IO_IMODE_PUD  0 // Pull-up/pull-down    
#define IO_IMODE_TRI  1 // Tristate    
   
// Macro for configuring IO drive mode:    
// Example usage:    
//   IIO_PUD_PORT(0, IO_PULLUP);    
//   IIO_PUD_PORT(1, IO_PULLDOWN);    
//   IIO_PUD_PORT(2, IO_PULLUP);    
   
#define IO_PUD_PORT(port, pud)        \    
   do {                               \   
      if (pud == IO_PULLDOWN)         \   
         P2INP |= (0x01 << (port+5)); \   
      else                            \   
         P2INP &= ~(0x01 << (port+5));\   
   } while (0)   
   
#define IO_PULLUP          0    
#define IO_PULLDOWN        1    
   
// Macros for function select (General purpose I/O / Peripheral function):    
// Example usage:    
//   IO_FUNC_PORT0_PIN0(0, 0, IO_FUNC_PERIPH);    
//   IO_FUNC_PORT0_PIN1(0, 1, IO_FUNC_GIO);    
//   IO_FUNC_PORT2_PIN3(2, 3, IO_FUNC_PERIPH);    
   
#define IO_FUNC_PORT_PIN(port, pin, func)  \    
   do {                                    \   
      if((port == 2) && (pin == 3)){       \   
         if (func) {                       \   
            P2SEL |= 0x02;                 \   
         } else {                          \   
            P2SEL &= ~0x02;                \   
         }                                 \   
      }                                    \   
      else if((port == 2) && (pin == 4)){  \   
         if (func) {                       \   
            P2SEL |= 0x04;                 \   
         } else {                          \   
            P2SEL &= ~0x04;                \   
         }                                 \   
      }                                    \   
      else{                                \   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -