School Study

[BPS]업무일지-20100526-임종현

룸훼훼 2010. 5. 26. 15:28
반응형

오전수업
어제부터 했던 실습.
----------------------------------------------------------
#define PORTC (*(volatile unsigned char *)0x35) //출력 설정
#define DDRC (*(volatile unsigned char *)0x34) //입출력 설정
#define PINC (*(volatile unsigned char *)0x33)
#define DDRF (*(volatile unsigned char *)0x61)
#define PORTF (*(volatile unsigned char *)0x62) //입출력 설정


int main(void)
{
 
 DDRC = 0x00; //LED연결
 PORTC = 0x00;
 DDRF = 0x00; //스위치 연결
 PORTF = 0x00; //LED초기화
 unsigned char led;
 
 while(1)
 {
  led = PINC;
  led = 0xff-led;
  
  switch(led)
  {
   
   case 0x01:
    DDRF =0x01;
    break;
     
   case 0x02:
    DDRF =0x03;
    break;
     
   case 0x04:
    DDRF =0x07;
    break;
     
   case 0x08:
    DDRF =0x0f;
    break;
     
   case 0x10:
    DDRF =0x1f;
    break;
     
   case 0x20:
    DDRF =0x3f;
    break;
     
   case 0x40:
    DDRF =0x7f;
    break;
     
   case 0x80:
    DDRF = 0xff;
    break;
   default:
    DDRF = 0x00;
    break;
  }
 }
 return 0;
}
------------------------------------------------------------
결과.





오후수업
switch문
siwtch 문의 정수값으로 문자형 변수를 사용한 예제.
------------------------------------------------------------
#include <stdio.h>
int main()
{
 char ch;
 printf("숫자 0~9까지: ");
 scanf("%c", &ch);
 switch (ch)
 {
  case '0' : printf("Zero.\n");
  break;

  case '1' : printf("One.\n");
  break;

  case '2' : printf("한글로 이.\n");
  break;

  case '3' : printf("한글로 삼.\n");
  break;

  case '4' : printf("한글로 사.\n");
  break;

  case '5' : printf("한글로 오.\n");
  break;

  case '6' : printf("한글로 육.\n");
  break;

  case '7' : printf("한글로 칠.\n");
  break;

  case '8' : printf("한글로 팔.\n");
  break;

  case '9' : printf("한글로 구.\n");
  break;
 
  default : printf("잉?아니야.\n");
  
  
 }
 return 0;
}
---------------------------------------
결과


코드중 case '0' 부분에 따옴표를 빼고 아스키코드로 대체하여도
에러없이 출력된다.
무조건 case다음에는 정수형 상수가 와야한다.

break는 흐름을 제어한다고 생각하면된다.
case에서 수행하고 break에서 끊어주어야하는데
없을시에 원하는 출력말고도 다른 값까지도 출력이 된다.

-문자입출력함수
getchar은 입력되는 문자를 하나씩읽는 함수이다.
putchar은 getchar에 대응하여 화면에 출력해주는 함수이다.
둘다 함수지정자를 사용할필요가 없으며 실행속도가 빠르다.
위에 출력되는것은 문자의 갯수와 문자 출력이다.

다음은 약간 응용해서~~
나머진 위에꺼랑 똑같고 나머진 뭐가 좀 잘못된듯...
이거 물어 봐야됨..,ㅠ,.ㅠ

다음은 아스키코드를 putchar을 이용해서 출력함.
9는 숫자가 따로 내려와있다. 만약 10가지 이상 출력을 하려 하면  (;) 찍혀 나온다.
putchar를 한번 보자.

printf >> 함수는 표준 C 라이브러리의 일부로써 프로그램이 데이터를 화면에 나타내도록 하는때 가장 많이 사용된다.
scanf >> printf 함수와 마찬가지로 출력이 아닌 키보드로 부터 값을 입력받아 데이터를 활당하는 역할을 한다.
putchar >> putchar 다음에는 반드시 한 문자만 와야 하며 그 문자가 화면에 출력 된다.
putchar는 printf와는 달리 1문자 밖에는 출력시킬 수가 없다.
따라서 만약A를 출력시키고 다음 줄로 넘어가려면 다음과 같이 두 개의 putchar를 사용하여야 한다.


설명은 그림에..


반복문...어려움..

이건 아직 잘 모르겠음..-_-;;크ㅏ어ㅏ러언ㄹ..

3가지의 조건이 있다. 1번 초기조건 2번 반복되는일의 조건 3번 종료 조건
이 3가지가 맞아야한다.
반응형