회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
14 구인구직 HOT사람인 - 월급 1000만원 프로젝트, 프로그래머 모집 쭈니닷 5046 2012.06.18
13 구인구직 HOT(주)엑스큐어넷 - 소프트웨어 개발자(프로그래머) 채용 쭈니닷 4916 2012.06.12
12 구인구직 HOT(주)시뮬라인 - 기술개발본부 소프트웨어 팀 신입/경력사원 채용공고 쭈니닷 5476 2012.06.11
11 구인구직 HOT㈜엔써즈 - 시스템엔지니어 신입사원 모집 쭈니닷 6351 2012.06.08
10 구인구직 HOT㈜고우넷 - unix 엔지니어 채용 콘마개마 3833 2012.06.05
9 구인구직 HOT전액무료 자바(java)기반 하이브리드 프레임웍개발 안드로이드 개발교육과정 cocoa13 3387 2012.05.14
8 구인구직 HOT[교육부담 0%] 이공계 전액무료 하이브리드 앱 개발자 취업확정자 교육연수과정 cocoa13 4064 2012.05.01
7 구인구직 HOT[전액무료교육] 구로디지털 단지 자바개발 업체 채용확정자 취업교육” 안드로이드 개발 및 프로젝트 과정 cocoa13 3626 2012.04.30
6 구인구직 HOT[전액무료과정] 웹디자이너 양성교육 비주얼 컨텐츠 디자인 과정 안내 cocoa13 4623 2012.04.26
5 구인구직 HOTPOWER설계 및 하드웨어 경력자 찾아요. 박우종 4997 2012.03.07
4 구인구직 HOT회로수리 및 수땜, ECO작업등 필요하시면 연락주세요. 세윤파파 8654 2012.01.27
3 구인구직 HOT실력있는 펌웨어 엔지니어를 모집합니다. JamesHan 8114 2011.12.27
2 구인구직 HOT(주)로벤 연구소에서 연구원을 모집합니다. maddog 6493 2011.11.10
1 구인구직 HOT[급구] PCB 설계 경력자 & H/W 및 펌웨어 엔지니어 모집 용가리3 13447 2010.12.23
Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
  • 우리는 마음을 염려해야 하며 외모를 염려해서는 안 된다.
    - 이솝
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.