Page 41 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 41

(MODE7)
                                            case  0x7f:    mode  =  8;      timer  =  65535;      break;            //  SW8  ON
            (MODE8)
                                    }

                            (2) 설명
            switch  case 문은  문과는  다른  선택문입니다if            .  if 문과는  다르게  조건식을  일일이  검사하지  않고
            정수값을  비교하여  일치하는  문장만  실행하게  됩니다.  switch  case                     문의  특징으로는
                -case 에  구분  가능한  값이  들어가  있어야한다
                -break 가  없다면  다음  선언된  case      문도  실행된다.

                -  if  else 문법에서  의  조건이  거짓일  경우  바로 if            else 로  이동되듯이  switch  case        에서도
            switch() 안에  내용이  어떠한  case       에도  속하지  않을  경우엔  default         로  이동을  한다.
            따라서  스위치를  개를  사용하는  저희  조에서는  일일이  문을  사용하기  보다는 8        if                       switch  case
            문을  이용해서  한번에  프로그램을  실행할  수  있도록  했습니다.
                        나)  for  문

                            (1) 예제
                    for  (z=0;z<8;z++)
                            for  (y=0;y<8;y++)
                                    cube[z][y]  =  pattern;
                            (2) 설명

            반복문은  의미  그대로  어떠한  동작을  반복수행할  때  사용하는  문법입니다 반복문의  종류에는 .
            for 문  /  while 문  /  do  while   문  세  가지  종류가  있으며  저희  조에서는  for          문을  사용해서  cube
            라는  배열  안에  패턴을  집어넣을  때나  74HC595               의  데이터  입력  핀에  데이터를  입력할  때  for             문
            을  사용했습니다.



                    4) 포트의  사용
                        가)PORTB
            PORTB   는  74hc595   의  11 번,12  번,13 번,14 번  핀과  연결되어있습니다.PB0              에는  데이터  입력핀
            PB1 에는  레치클록  PB2       에는  데이터클록  PB3        에는  Output  enable   이  연결되어  있습니다 포트.            b
            에서는  를  제어하여 ic       led 를  켜주는  역할을  하고  있습니다.

                         나)PORTC
            PORTC   는  led 의  층부터  층까지의  공통단자를  제어하는  트렌지스터와  연결되어있습니다 트1  8                             .
            렌지스터는  active  high     로  동작하며  PC0     은  층 1  PC7 은  층을  제어합니다8         .
                        다)PORTD
            PORTD   는  스위치와  연결되어있습니다.

            #define  SW  PIND              //   스위치  모드  변환(  )
            switch  case 문을  통해서  각각의  스위치를  누를때마다  다른  애니메이션이  펼쳐질  수  있도록  했
            습니다.
                    5)  오류  및  오류  수정  방법
                         가)  led 의  점멸속도가  느려  애니매이션과  그림이  제대로  보이지  않는  오류

              타이머  카운터의  분주와  TCNT1           의  값의  설정이  잘못되어  있어  타이머  카운터의  인터럽트  호
            출주기를  더  빨리  설정할수  있도록TCNT1                의  값을  조정하여  오류를  해결할  수  있었습니다.


                                                         -  40  -
   36   37   38   39   40   41   42   43   44   45   46