본문 바로가기

[BSP]업무일지-2010/05/26

반응형

DK128 두 개를 연결해서 LED순차적으로 켜보기.

   

   

보내는

   

   

#define PORTF (* (volatile unsigned char *) 0x62)  //출력 설정.

#define DDRF (* (volatile unsigned char *) 0x61)  //입출력 설정

   

#define PORTD (* (volatile unsigned char *) 0x32)  //출력 설정.

#define DDRD (* (volatile unsigned char *) 0x31)   //입출력 설정

#define PIND (* (volatile unsigned char *) 0x30)   //입출력 설정

   

   

   

   

int main(void)

{

unsigned char led; //led라는 변수를 설정.

   

   

    //포트 초기화.

DDRF = 0x00;  //LED 연결

PORTF = 0x00;

DDRD = 0x00;       //스위치 연결.   

PORTD = 0x00;     /* 회로도상 원래 스위치에 전원이 들어오고 스위치를 누르면 

    GND 빠짐 그래서 LED 회로가 연결되어 있으면 불이 들어옴.*/

   

   

   

   

while(1)  /* while문을 사용해서 switch문을 반복시키고 있는 상태*/

{

   

  led = PIND;    //아무것도 안눌렀으면 출력을 하고 있는 상테., fe

  led = 0xff -led;   //01

   

  switch(led){

  case 0x01:  //2진수 표현 0000 0001

    DDRF = 0x01;  //2진수 표현 0000 0001

    break;

  case 0x02:  //2진수 표현 0000 0010

    DDRF = 0x03;  //2진수 표현 0000 0011

    break;

  case 0x04:  //2진수 표현 0000 0100

    DDRF = 0x07;  //2진수 표현 0000 0111

    break;

  case 0x08:  //2진수 표현 0000 1000

    DDRF = 0x0f;   //2진수 표현 0000 1111

    break;

  case 0x10:  //2진수 표현 0001 0000

    DDRF = 0x1f;  //2진수 표현 0001 1111

    break;

  case 0x20:  //2진수 표현 0010 0000

    DDRF = 0x3f;  //2진수 표현 0011 1111

    break;

  case 0x40:  //2진수 표현 0100 0000

    DDRF = 0x7f;  //2진수 표현 0111 1111

    break;

  case 0x80:  //2진수 표현 1000 0000

    DDRF = 0xff;   //2진수 표현 1111 1111

    break;

  default:

    break;

   

   

   

  }

}

   

return 0;

   

}

   

받는 곳

   

#define DDRF (*(volatile unsigned char *) 0x61)   // 입출력 설정

#define PORTF (*(volatile unsigned char *) 0x62 ) // 출력 설정

   

#define DDRC (*(volatile unsigned char *) 0x34)   // 입출력 설정

#define PORTC (*(volatile unsigned char *) 0x35 ) // 출력 설정

#define PINC (*(volatile unsigned char *) 0x33 ) // 출력 설정

   

int main(void)

   

{

   

   

   

   

    //포트 초기화.

  DDRF = 0xff;  

  PORTF = 0x00;

  DDRC = 0x00;      

  PORTC = 0xff;     

    

   

  while(1)

  {

  PORTF = PINC;

    

  }

    

  return 0;

    

    

    

    

}

   

   

<오후>

   

   

화면 캡처: 2010-05-26, 오후 2:04

   

   

   

화면 캡처: 2010-05-26, 오후 2:04

   

' ' - 글자 한 개만 입력

Case자리는 변수 입력하면 안 된다.

Case ' 0' = case 48(아스키코드)

   

'y' - y의 아스키코드를 의미.

   

Switch (정수 변수)

Case '정수 상수'

   

Break를 사용하면 괄호를 탈출한다. 아니면 디폴트로 간다.

   

   

<반복문>

조건:

1)초기조건.

2)반복되는 일.

3)종료조건.

   

   

   

   

   

   

   

   

반응형
-->