CC2530 ———— T1 타이머 업 / 다운 카운팅 모드는 인터럽트 모드를 사용하여 LED 조명을 제어합니다.

/ ************************************** /
/ * CC2530 루틴 * /
/ * 예제 프로그램 이름 : 타이머 (인터럽트 모드) * /
/ * 설명 : 타이머 T1 인터럽트 모드를 통해 주기적으로 깜박이는 제어 LED1
********************** ***** ********* /
#include <ioCC2530.h>
#define uint unsigned int
#define uchar unsigned char
#define LED1 P1_0 // LED1을 P1_0 포트 제어로 정의

uchar 개수 = 0;

// 함수 선언
void InitLed (void); // P1 포트 초기화
void InitT1 (); // 타이머 T1
초기화 // 프로그램 초기화
/ ** /
void InitLed (void)
{ P1DIR | = 0x01; // P1_0은 다음과 같이 정의됩니다. 출력 LED1 = 0; // LED1 표시등이 초기화되고 꺼짐 } // 타이머 초기화 void InitT1 () // 시스템이 작동 클럭으로 구성되지 않은 경우 기본적으로 내부 RC 오실레이터가 사용됩니다. 즉, 16MHz { T1CTL = 0x0F; // 128 주파수 분할, 포지티브 카운팅 / 카운트 다운 모드, 카운트 값은 T1CC0L 및 T1CC0H T1CC0L = 0x12; T1CC0H = 0x7A; // T1OVFIM = 1; T1IE = 1; EA = 1; // T1STAT = 0x21; // 채널 0, 인터럽트 유효 } /














  • 기능 이름 : 메인

  • 기능 : 주요 기능 입구

  • 입력 매개 변수 : 없음

  • 내보내기 매개 변수 : 없음

  • 반환 값 : None
    ***************************** /
    void main (void)
    { InitLed (); // 초기화 함수 호출 InitT1 (); while (1) {



    }
    }

/ ***************************

  • 기능 이름 : T1_INT
  • 기능 : 타이머 1 인터럽트 처리 기능
  • 입력 매개 변수 : 없음
  • 내보내기 매개 변수 : 없음
  • 반환 값 : 없음
    ***************************** /
    #pragma vector = T1_VECTOR
    __interrupt void T1_INT (void)
    { T1STAT & = ~ 0x21 ; + + count; if (count == 3) // 오버플로 횟수가 3에 도달하면 1.5 초가 지난 것입니다. { LED1 = 1; // LED1 켜기 } if (count == 4) // If 오버플로 횟수가 4에 도달하면 2 초가 경과했음을 의미합니다. { LED1 = 0; // LED1 끄기 카운트 = 0; } }











추천

출처blog.csdn.net/News53231323/article/details/113187025