회원가입 ID/PW 찾기
AA

C언어 기초가 부족해서 소스를 받아서 일단 과제를 했는데 어떻게 돌아가는건지 자세히 알고 싶어서 글남깁니다.

#include <avr/io.h>
#include "OK128.h"

void main(void)
{
 DDRA=0xff;
 int i;
 
 while(1)
 {
 PORTA=0xFE;

 for(i=0;i<8;i++)
 {
  PORTA=PORTA<<1;
  PORTA=PORTA|0x01;
  Delay_ms(1000);
  if(PORTA==0x7F)
  
  {
  for(i=0;i<8;i++)
  
  {
  PORTA=PORTA>>1;
  PORTA=PORTA|0x80;
  Delay_ms(1000);
  
  if(PORTA==0xfe)
  {
  for(i=0;i<8;i++);
  }
 }
}
}
}
}

댓글 3
  • No Profile

    DDRA : 포트 설정 레지스터( 1일경우 출력 , 0 일경우 입력)
    PORTA : 포트 제어 레지스터 ( 1일경우 High 0일경우 Low) 

    X <<  Y : 비트이동 명령 , X를  <<쪽 방향으로 Y 비트만큼 이동

    이거면 분석이 되실듯..

  • No Profile
    그냥 포트 설정 하구 LED 왔다리 갔다리 하는거 같은데요 ^^ 저도 초보라 ㅋㅋ
    PORTA=PORTA<<1;
    왼쪽으루
    PORTA=PORTA>>1;
    오른쪽으루 비트 이동이구요 ~ 비트 이동되면서 불켜지것네요 ㅋㅋ
  • No Profile
    위에 분들 다 잘 설명해놓으셔서 별 필요없겠지만 납이 필요해서 몇자 적어봅니다.
    DDRA=0xff; // A 포트를 출력하는데 사용하겠다는 선언
     int i;  // 일반 변수 선언
     
     while(1) // 실제프로그램(무한루프)의 시작입니다. 비교값이 1, 즉 true이기 때문에 탈출하지 않습니다.
     {
     PORTA=0xFE; // PA0에는 0 V의 전압이 출력되네요 led연결에 따라 0번만 불이 켜지고 꺼져있겠네요led의 다른쪽이 
                                  // 전원이랑 연결 되어 있는 형태가 일반적이니 아마 0번만 불이 켜져 있을거라 생각합니다.
     for(i=0;i<8;i++) // 8번 반복이네요
     {
      PORTA=PORTA<<1; // 오른쪽에서 왼쪽으로 한비트씩 시프트 시킨다는 뜻입니다. 불이 0에서 1,2,3... 의 순으로 옮겨질태죠
      PORTA=PORTA|0x01;// 시프트 되서 팅겨 나온 값이 에러를 일으키지 않도록 방지 하는 안정장치
      Delay_ms(1000); //시간지연이네요 불이 1초마다 옮겨지도록 설정됬네요
      if(PORTA==0x7F)// 불이 7번까지 다 옮겨졌을 경우에 실행됩니다.
      
      {
      for(i=0;i<8;i++) // 반복
      
      {
      PORTA=PORTA>>1; // 이번엔 왼쪽에서 오른쪽으로 한비트씩 옮기네요
      PORTA=PORTA|0x80; // 위와 같은 안전해로 이번에는 시프트 방향 바껴있어 값이 변했네요
      Delay_ms(1000);
      
      if(PORTA==0xfe) // 음 여기부터는 잘못된거 같은데요.. 위에 있는데 왜 또있는건지..
      {
      for(i=0;i<8;i++);
      }// 아래 의 괄호만 제대로 닫으시면 동작하는데 무리는 없을듯..
     }
    }
    }
    }
    }///동작에는 무리가 없을듯한데 제가 보기에는 for는 특별히 없어도 똑같이 동작 할거 같네요 ㅎㅎ

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
65 Allegro & OrCAD HOTpcb설계 초보 질문??1 정상에서 1031 2010.11.12
64 Allegro & OrCAD HOTorcad libraries 질문 입니다.2 아카 1282 2010.11.06
63 Allegro & OrCAD HOT이크 큰일이군 설치를 행하는데.. 어쩌면 ..... tomas 1008 2010.11.01
62 Allegro & OrCAD HOTPCB 레이아웃 질문 드릴게요 ^^2 이주영 1109 2010.10.18
61 Allegro & OrCAD HOT4층 PCB 제작 어렵나요?6 헨슨 2419 2010.10.07
60 Allegro & OrCAD HOTOrcad 16.2 버전에 gerber tool1 TreeOfDream 2483 2010.10.01
59 Allegro & OrCAD HOTpcb 기본용어1 아크마 2317 2010.09.08
58 Allegro & OrCAD HOT4층설계시 그라운드카퍼를 ... ....,3 1815 1899 2010.08.27
57 Allegro & OrCAD HOT좋은 책 소개 부탁그립니다. 미스메이커 1318 2010.08.27
56 Allegro & OrCAD HOTorCAD Capture에서 회사 로고 따위 삽입하기?3 Kaye 4697 2010.08.09
55 Allegro & OrCAD HOT아래 내용과 이어지는 오류입니다. 노뜨라인 1989 2010.08.03
54 Allegro & OrCAD HOTorcad 파형보는데 계속 오류가 나네요..2 노뜨라인 2272 2010.07.08
53 Allegro & OrCAD HOTorcad layout 보드 크기 표시2 TreeOfDream 1431 2010.07.04
52 Allegro & OrCAD HOTlayout 가 없는데요..2 그냥이임 1445 2010.06.16
51 Allegro & OrCAD HOTorcad에 관하여 궁금한점[이론] 케빈네쉬 1450 2010.06.15
50 Allegro & OrCAD HOT코퍼깔고 비아를 넣었는대 작업이 안된선이 있는것으로 나오면? 어떻게 해야 하나요 ?4 우가우가 1701 2010.06.14
49 Allegro & OrCAD HOT전자캐드기능사 준비중2 12몽키 1530 2010.06.07
48 Allegro & OrCAD HOT전원 배선3 MATY 1310 2010.05.31
47 Allegro & OrCAD HOTorcad에서 회로도 그리고요 powerpcb로 import하는부분이요~~2 최강유니 1561 2010.05.29
46 Allegro & OrCAD HOTfootprint만들기 질문입니다. ㅠㅜ4 우가우가 2090 2010.05.24
Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
  • 할수만 있다면 다른 사람들보다 더 현명하게 되라. 그러나 다른 사람들에게 그것을 말하지는 말라.
    - 체스터필드
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.