'ez430-RF2500'에 해당되는 글 1건

  1. 2010.08.16 [CC2500] ez430-RF2500 가지고 놀기1 - LED, Switch 제어 (2)
[INTERFACE]/ZIGBEE2010. 8. 16. 14:51

[CC2500] ez430-RF2500 가지고 놀기1 - LED, Switch 제어

[CC2500] ez430-RF2500 가지고 놀기1 - LED, Switch 제어
ez430-RF2500 키트를 이용하여 몇가지 테스트를 진행해 보았다.
TI에서 제공되는 예제는 코드 스타일이 나하고 맞지 않고 뭔가 수정하려고 해도 너무 복잡하게 되어 있어 전체적인 해도하고 원하는 형태로 쉽게 변경하기 위해 새롭게 작성해 보았다.




LED
먼저 LED를 깜박이는 예제를 작성해 보자.
LED는 P1.0에 Red, P1.1에 Green LED가 연결되어 있다.
ez430-RF2500 예제는 8Mhz에서 돌아 가므로 SystemInit()함수에서 8Mhz로 돌아 가도록 설정하고(SYS_CLK_8MHZ),  LED Driver 은 간단히 아래와 같이 작성하면 된다.
[config.h]

#define __SYS_CLK__     SYS_CLK_8MHZ
//-----------------------------------------------------------------------------
// On board LED Driver
//Red
#define LED1_BIT     BIT0
#define Led1Init()     Sbi(P1DIR, LED1_BIT)
#define Led1Off()     Cbi(P1OUT, LED1_BIT)
#define Led1On()     Sbi(P1OUT, LED1_BIT)
#define Led1Toggle()    Tbi(P1OUT, LED1_BIT)
//Green
#define LED2_BIT     BIT1
#define Led2Init()     Sbi(P1DIR, LED2_BIT)
#define Led2Off()     Cbi(P1OUT, LED2_BIT)
#define Led2On()     Sbi(P1OUT, LED2_BIT)
#define Led2Toggle()    Tbi(P1OUT, LED2_BIT)
//-----------------------------------------------------------------------------


아주 심플하다...
#include "system.h"

//-----------------------------------------------------------------------------
void main(void)
{
    SystemInit();
   
    Led1Init();
    Led1On();
 
    Led2Init();
    Led2Off(); 

    while(1)
    {
  //Led Toggle..
        Led1Toggle();
        Led2Toggle();  
        Delay(300);  
    }
}
//-----------------------------------------------------------------------------



스위치
디버깅용으로 스위치 누를때 마다 CC2500을 이용하여 RF로 데이터를 전송하도록 하기 위해서 스위치를 사용하면 좋다. 스위치는 P2.2에 연결되어 있고 내부 풀업을 사용해야 한다. 아래와 같이 스위치 드라이버를 작성하면 되겠다.
[config.h]

//-----------------------------------------------------------------------------
//Switch Driver
#define SW1_BIT      BIT2
#define SW1_PORT     P1IN
#define Sw1Init()     Sbi(P1REN, SW1_BIT);Cbi(P1DIR, SW1_BIT);
#define GetSw1()     (!(SW1_PORT&SW1_BIT))
#define WaitForSw1()    while(GetSw1())
//-----------------------------------------------------------------------------



간단히 스위치를 누르면 LED를 깜박이도록 했다.
#include "system.h"

//-----------------------------------------------------------------------------
void main(void)
{
    SystemInit();
   
    Led1Init();
    Led1On();
 
 Sw1Init();
 
    while(1)
    {
        if(GetSw1())Led1On();
        else Led1Off();
    }
}
//-----------------------------------------------------------------------------



Posted by nexp

댓글을 달아 주세요

  1. nazzoo

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.06.16 17:17 [ ADDR : EDIT/ DEL : REPLY ]
  2. pia

    관리자의 승인을 기다리고 있는 댓글입니다

    2012.01.11 10:18 [ ADDR : EDIT/ DEL : REPLY ]