본문 바로가기

[Zigbex] 설정 및 LED켜기

반응형

버튼 두 개 다 올리면 프로그램 전송

둘 다 내리면 통신용

   

온습도 센서 , RTC(리얼 타임 클럭) 제어

칩드라이브 프로그래밍을할 예정

   

   

DDRA = 1<<0|1<<1|1<<2; //전체 불 켜기

   

[Zigbex]를 사용하기 위해 설정해 놓은 AVR studio설치

드라이버 잡기.

   

makefile은 F_CPU=7372800으로 설정하기.(1초당 클락발생)

   

[LED 불 깜빡이기]

#define PORTA (*(volatile unsigned int *)0x3B) //입출력설정

#define DDRA (*(volatile unsigned int *)0x3A) //출력설정

#define PINA (*(volatile unsigned int *)0x39)

   

   

void delay_us(unsigned char time_us);

void delay_ms(unsigned int time_ms);

   

   

int main(void)

{

   

  DDRA = 0b11111111;

  PORTA = 0b00000000;

    

  while(1)

  {

    delay_ms(100);

    PORTA = 0b00000110;

    delay_ms(100);

    PORTA = 0b00000101;

    delay_ms(100);

    PORTA = 0b00000011;

  }

    

    

}

   

   

    

void delay_us(unsigned char time_us)

{

  register unsigned char i;

   

  for ( i =0 ; i< time_us ;i++)

  {

    asm volatile (" PUSH R0 ");

    asm volatile (" POP  R0 ");

    asm volatile (" PUSH R0 ");

    asm volatile (" POP  R0 ");

    asm volatile (" PUSH R0 ");

    asm volatile (" POP  R0 ");

    asm volatile (" PUSH R0 ");

    asm volatile (" POP  R0 ");

  }

}

void delay_ms(unsigned int time_ms)

{

  register unsigned int i;

    

  for ( i=0 ; i < time_ms ; i++)

  {

    delay_us(250);

    delay_us(250);

    delay_us(250);

    delay_us(250);

  }

}

   

   

   

   

   

반응형
-->