회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
83 드론/로봇/라인트레이서 HOT라인트레이서 초보용 제작 문의 드립니다.1 효연 1350 2010.11.02
82 드론/로봇/라인트레이서 HOT안녕하세요 ^^ 라인트레이서 모터부 저항에 관련해서 질문이요1 천년동안 1461 2010.09.29
81 드론/로봇/라인트레이서 HOT마이크로프로세서가 아닌 FPGA를 이용한 라인트레이서를 만들려고 합니다. 카리스마진 1598 2010.09.17
80 드론/로봇/라인트레이서 HOT아크마라인트레이서 회로도 풋프린트 및 부품 문의1 common11 1437 2010.09.14
79 드론/로봇/라인트레이서 HOT라인트레이서 footprint 하는중인데 질문..2 천년동안 1665 2010.09.10
78 드론/로봇/라인트레이서 HOT아크마라인트레이서 회로도 질문입니다~2 천년동안 1981 2010.09.03
77 드론/로봇/라인트레이서 HOT아크마 라인트레이서 회로도의 의문점 질문입니다!1 천년동안 1281 2010.08.30
76 드론/로봇/라인트레이서 HOTMB라인마우스 회로도좀 구할수없을까요..2 오고고 1345 2010.08.27
75 드론/로봇/라인트레이서 HOTMB 라인마스우 SENSOR CON20 질문요 ~1 천년동안 1172 2010.08.26
74 드론/로봇/라인트레이서 HOT라인트레이서 여기 올라와 있는 소스 컴파일을 했는데 오류가 떠요..1 vorcot 1391 2010.08.20
73 드론/로봇/라인트레이서 HOT라트소스를 짜는데요 실제 구동은 좀 이상하네요 Mirel 1491 2010.08.16
72 드론/로봇/라인트레이서 HOTAVR초음파 센서 관련입니다... 칠흑광자 2344 2010.08.11
71 드론/로봇/라인트레이서 HOT많은 도움 부탁드립니다!!!1 피터팬 1082 2010.08.09
70 드론/로봇/라인트레이서 HOTCLCD구동에 관해 질문있습니다. Mirel 1208 2010.08.09
69 드론/로봇/라인트레이서 HOT라인트레이서 구동부(모터부) 질문입니다.3 vorcot 2211 2010.07.14
68 드론/로봇/라인트레이서 HOTatmega128 공부방법에 대해서..5 k_minsuda 1782 2010.07.01
67 드론/로봇/라인트레이서 HOTc언어 공부 방법 문제요 ㅠ2 날아라신동 1380 2010.06.29
66 드론/로봇/라인트레이서 HOT라이트라인 조립 킷보단 직접 만드는 것이1 genid 1360 2010.05.14
65 드론/로봇/라인트레이서 HOT실외에서 라인트레이서 동작시에요~4 금오인 1356 2010.04.16
64 드론/로봇/라인트레이서 HOT도와주세요5 키키오오 2350 2010.04.04
  • 군자의 사귐은 담담함이 물과 같고, 소인의 사귐은 달콤함이 단술과 같다.
    - 장자
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.