회원가입 ID/PW 찾기
AA

제가 아직 걸음마 수준이라...직접 코딩을 하고도 제대로 했는지 모르겠네요...직접 AVR에 다운로드해서 해보는게 가장 정확하겠지만 지금 상황이 안되고 급해서요...제가 짠 프로그램이 에러가 없이 잘 작동될지...궁금해서 올려봅니다....너무 간단한거라 웃으실지 모르겠지만 저에게 한마디라도 부탁드려요...

동작은 포트 C의 pc0~pc4 중 하나에 신호가 들어오면 포트 A의 pa0,pa1에 출력을 바꿔주면서 매 출력을 내보낼때마다 initial_sw()함수(초기화기능)를 실행시켜 주는 겁니다.... 부족하지만 한마디 한마디 새겨듣겠습니다.

Chip type           : ATmega128L
Program type        : Application
Clock frequency     : 16.000000 MHz
Memory model        : Small
External SRAM size  : 0
Data Stack size     : 1024
*****************************************************/

#include <mega128.h>    
#include <delay.h>
#define CBI(x,bit) (x &=~(1<< bit))
#define SBI(x,bit) (x |= (1<< bit))
// Declare your global variables here   


void initial_sw(void)
  {
   CBI(PORTA,4);   //리셋
   delay_ms(500);
   SBI(PORTA,4);
   delay_ms(500);

   CBI(PORTA,5);   //시작
   delay_ms(500);
   SBI(PORTA,5);
   delay_ms(500);
  }
   

void main(void)
{
// Declare your local variables here

 
  DDRA = 0xFF;    //A는 출력
  
 
  DDRC = 0x00;    //C는 입력

  PORTA = 0x00;   //출력초기화

  initial_sw();
 
  while(1)
  {

   if(PINC == 0x01) //입력이 0000001 일때
   {

         SBI(PORTA,1);
         initial_sw();               
       }
      
     else if(PINC == 0x02) //입력 0000010 일때
     {

          CBI(PORTA,1);
          initial_sw();

     }

     else if(PINC == 0x04) // 입력 0000100 이면
     {

         SBI(PORTA,0);
         initial_sw();
         }

     else if (PINC == 0x08) // 0001000 이면      
    {
         CBI(PORTA,0);
         initial_sw();
         }
             
    
    }
   
 
   
}

댓글 4
  • #define CBI(x,bit) (x &=~(1<< bit))
    #define SBI(x,bit) (x |= (1<< bit))

    이거 괜찮은데요. ㅋ 이렇게 쓸 생각은 안해봤네요.

    그나저나 별 이상 없어 보이는 데요. 다만 어떠한 상황인지 모르겠지만 마이컴이 매우 빠르게 돌기 때문에
    신호가 오는 파형이 깨끗한지 아닌지가 중요하겠네요.
     현재 연결되어 있는 하드웨어의 상황에 따라 어떻게 동작할지는 예측이 안되네요.
  • No Profile

    이거 될라나 모르겠는데요~?
    ATMEGA128은 16Mhz까지 지원가능하지만
    ATMEGA128L은 8Mhz까지밖에 안되는걸로 알고있는데...(아닌가? ^^;;)
    퓨즈비트를 어떻게 설정하셨는지.. 또 위에 주석처리된부분을 보면
    16Mhz로 설정하신거 같은데 자동으로 8Mhz로 인식할런지 잘 모르겠네요 ㅎ
    #define SBI, #define CBI << 이렇게 정의한건 어떤이유인지 모르겠는데 좀 이상한데요?(패스~)
    그리고 메인 무한루프에서 initial_sw()함수안에 저렇게 딜레이를 2초씩이나 준다면
    딜레이를 처리 다할동안 스위치 동작은 이뤄질수 없습니다. 소스가 저게 전부라면 상관없겠지만
    이외에도 훨씬 많은명령들을 처리해야할 상황이 다반사기 때문에 저런 딜레이함수는 자제하시는게
    좋다고 생각해요

  • No Profile
    글쓴이 푸후 10.05.21 21:21 댓글 좋아요 0 싫어요 0

    감사합니다

  • No Profile

    감사합니다~

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

search
번호 분류 제목 글쓴이 조회 수 날짜
14 구인구직 HOT사람인 - 월급 1000만원 프로젝트, 프로그래머 모집 쭈니닷 5053 2012.06.18
13 구인구직 HOT(주)엑스큐어넷 - 소프트웨어 개발자(프로그래머) 채용 쭈니닷 4922 2012.06.12
12 구인구직 HOT(주)시뮬라인 - 기술개발본부 소프트웨어 팀 신입/경력사원 채용공고 쭈니닷 5483 2012.06.11
11 구인구직 HOT㈜엔써즈 - 시스템엔지니어 신입사원 모집 쭈니닷 6358 2012.06.08
10 구인구직 HOT㈜고우넷 - unix 엔지니어 채용 콘마개마 3840 2012.06.05
9 구인구직 HOT전액무료 자바(java)기반 하이브리드 프레임웍개발 안드로이드 개발교육과정 cocoa13 3403 2012.05.14
8 구인구직 HOT[교육부담 0%] 이공계 전액무료 하이브리드 앱 개발자 취업확정자 교육연수과정 cocoa13 4070 2012.05.01
7 구인구직 HOT[전액무료교육] 구로디지털 단지 자바개발 업체 채용확정자 취업교육” 안드로이드 개발 및 프로젝트 과정 cocoa13 3634 2012.04.30
6 구인구직 HOT[전액무료과정] 웹디자이너 양성교육 비주얼 컨텐츠 디자인 과정 안내 cocoa13 4625 2012.04.26
5 구인구직 HOTPOWER설계 및 하드웨어 경력자 찾아요. 박우종 4999 2012.03.07
4 구인구직 HOT회로수리 및 수땜, ECO작업등 필요하시면 연락주세요. 세윤파파 8662 2012.01.27
3 구인구직 HOT실력있는 펌웨어 엔지니어를 모집합니다. JamesHan 8119 2011.12.27
2 구인구직 HOT(주)로벤 연구소에서 연구원을 모집합니다. maddog 6499 2011.11.10
1 구인구직 HOT[급구] PCB 설계 경력자 & H/W 및 펌웨어 엔지니어 모집 용가리3 13457 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.