회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
296 전기전자 아무거나 HOTRC 서브모터 HS-311 제어질문입니다~!3 으갸갸 2734 2010.05.08
295 전기전자 아무거나 HOT펌웨어.. 커널.. 정확히 무슨뜻인지요3 피빛눈물 2063 2010.05.07
294 전기전자 아무거나 HOTrms관련3 kime 835 2010.05.06
293 전기전자 아무거나 HOTsmps4 김준영입니다~ㅜ 1110 2010.05.06
292 전기전자 아무거나 HOTmosfet 증폭기 회로를 구현해야 하는데1 냥냥 1922 2010.05.05
291 전기전자 아무거나 HOT경관용 LED BAR 제작에 관하여...6 쓰나미 1088 2010.05.03
290 전기전자 아무거나 HOTAVR을 배워 보려 하는데요 ㅜ5 저탱 1009 2010.05.03
289 전기전자 아무거나 HOTAVR을 어떻하면 빨리 배울 수 있을가요?8 쓰나미 897 2010.05.03
288 전기전자 아무거나 HOT산업공학 쪽에서 일하려면 어떤분야를 미리 좀 배우는게 좋을까요 ?1 조민제조민제 795 2010.05.02
287 전기전자 아무거나 HOTatmega128 UART 통신 공부를 하다가....1 blurlink 1775 2010.04.28
286 전기전자 아무거나 HOTdatasheet 보는 방법을 알고 싶습니다.3 우기우기 3176 2010.04.27
285 전기전자 아무거나 HOT전기/전자 기초부터 다시 하려면 어떤방법이 좋을까요?14 붉은하늘악마 1256 2010.04.26
284 전기전자 아무거나 HOT여러분의 도움이 절실히 필요합니다. 간단한자동점멸기회로에요4 딘재 2380 2010.04.26
283 전기전자 아무거나 HOT[논리회로] 브레드보드로 만들수 있는것좀 알려주세요1 ㅇ1ㅇ 1540 2010.04.26
282 전기전자 아무거나 HOT트랜지스터에 관하여 질문드릴게요4 딘재 1093 2010.04.22
281 전기전자 아무거나 HOT안녕하세요 다이액과 트라이액 관련해서 회로도 질문좀할게요1 딘재 2344 2010.04.22
280 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(5)8 tiantian 1039 2010.04.21
279 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(4)1 tiantian 838 2010.04.21
278 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(3)1 tiantian 1041 2010.04.21
277 전기전자 아무거나 HOT초보자를 위한 프린트 배선판 기술(2)1 tiantian 952 2010.04.21
Prev 1 ... 20 21 22 23 24 25 26 27 28 29 ... 39 Next
  • 가족이란 선택하는 것이 아니다. 그들은 당신에게 주어진 신의 선물이다. 당신이 그들에게 그러하듯이.
    - 투투
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.