회원가입 ID/PW 찾기
AA

밑에 소스 보시면 led가 좌 ==> 우 ,  우 =>좌 로 이동해야 되는데

좌 ===> 우 로 밖에 되지 않네요..

이것때문에 벌써 몇 시간째 하고 있는데...       왕복으로 할려면 소스를 어떻게 짜야 될까요 ㅠ.ㅠ

#include<avr/io.h>
#include<avr/iom128.h>
#include<avr/interrupt.h>
#include<compat/deprecated.h>

unsigned char data=0x01;

 

int main(void)
{
    DDRB=0xFF; // 포트 B 출력
    PORTB=data;       
   DDRD = 0x00;   // PD0 입력  
 
     
    EIMSK|=0x01;   // INT0 개별 인터럽트 인에이블  
    EICRA|=0x03;   // INT0 상승 에지   
    EIFR|=0x01;     // INTF0 클리어   
     
    sei();       
                             
           
    while(1);  
      

ISR(INT0_vect)  
{  
  
  data <<= 1;  // led 변수의 좌 쉬프트
 
 if(data == 0x00)
 {
  data ==0x01;  
 }

 PORTB = data;  // 포트 B에 LED 값 출력함

-----------------------------------------------------------------------------------------------

요건 제가 생각해 본 소스인데.. 계속 안되네용 ㅠ.ㅠ

#include<avr/io.h>
#include<avr/iom128.h>
#include<avr/interrupt.h>
#include<compat/deprecated.h>
#include<util/delay.h>
unsigned char led=0x00;

int main(void)
{
 
            
 DDRB=0xFF; // 포트 B 출력
 PORTB=0x00;     
 
    DDRD = 0x00;   // PD0 입력  
 
    EIMSK|=0x01;   // INT0 개별 인터럽트 인에이블  
    EICRA|=0x03;   // INT0 상승 에지   
    EIFR|=0x01;        
     
    sei();     
   
 return 0; 

ISR(INT0_vect)  
{  
    unsigned char led=0;
 while(1)
 {
        for(led=0; led< 8; led++)
   {
   PORTB=~(1<<led);
   _delay_ms(1500);
   }
     // PORTB = led;
        for(led=7; led>=0; led--)
   {
   PORTB=~(1<<led);
    _delay_ms(1500);
   }
      //PORTB = led;
    }
}

댓글 5
  • No Profile
    저..위에코드말인데요 ISR함수 들어올때마다  data <<= 1; 이거때문에 그런거 아닌가욤?
  • No Profile
    글쓴이 강희 11.01.12 16:06 댓글 좋아요 0 싫어요 0

    위에 코드는 한칸씩 옆으로 가는거고요..

    밑에 코드가 스위치 누를때마다 좌==>우 , 우===>좌로 가야 되는데..

    for문은 바로 스위치 누르면 같다가 바로 오네요.

    스위치 눌렀을때 옆으로 한 칸씩 갔다가 다시 와야 되는데..

    어떻게 짜야 되는지 모르겠네요.ㅠ.

  • 강희님께
    No Profile

    지금 아래쪽코드를 보면 스위치를 눌러서 인터럽트 발생시마다 ISR함수가 실행되는데 이렇게 될때마다 led라는 변수가 계속 0으로 초기화 되네요 하나씩 차근차근 보면서 다시 해보시면 쉬우실텐데..

  • No Profile

    winavr에서 compile한 거라면

    인터럽트에서 전역변수를 사용하려면 "volatile"을 써주어야 합니다.

    volatile unsigned char data;

    라고 선언해야 합니다.

     

  • No Profile

    서비스 루틴안에 코드를 짜신건가요?

     

    이런 방식의 코딩은 좋지 않은것 같습니다.

     

     ISR 내부에는 간략한 변수 바꿈이나 if문 정도만 써주시고  좌-> 우  , 우-> 좌  따로따로 함수를 만들어서

     

     서비스 루틴에서 함수를 바꾸어주는 방식을 쓰시는 편이 제어하기 편합니다.

     

    메인문에서 함수 돌리고 인터럽트 발생시에 함수를 왔다갔다 하는 방법이죠

     

     ISR 내부에 무한 반복문은 충격적이군요

     

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

search
번호 분류 제목 글쓴이 조회 수 날짜
86 펌웨어 & 코딩언어 HOT수치해석 by Matlab or C++ ?2 hoony184 2175 2011.03.02
85 펌웨어 & 코딩언어 HOT모델심 에대한 질문입니다.. 라인걸어서 1975 2011.02.17
84 펌웨어 & 코딩언어 HOTmatlab에 관하여..질문하겠습니다..2 깐돌이01 1795 2011.01.31
83 펌웨어 & 코딩언어 HOTC언어 : GCC에 대하여2 다시 1708 2011.01.14
82 펌웨어 & 코딩언어 HOTinline assembler 삽입 제한 피해가는 법 요청 쿨맨 1628 2011.01.01
81 펌웨어 & 코딩언어 HOTscanf 입력에 대해 질문이요~4 띵킹~ 1986 2010.12.21
80 펌웨어 & 코딩언어 HOTC 언어 기초중 다음 사항에 대하여 질문이여.2 hihihohaha 1628 2010.12.15
79 펌웨어 & 코딩언어 HOTrs232 통신프로그램.. 예딩 2353 2010.12.06
78 펌웨어 & 코딩언어 HOTc언어 능력자님을 찾아요 ㅠ 도와주세요12 진쓰 2302 2010.11.26
77 펌웨어 & 코딩언어 HOT초보에게 좋은 C언어 책 추천 부탁드립니다.7 등나무 2480 2010.11.11
76 펌웨어 & 코딩언어 HOT아스키코드질문2 k231 1216 2010.11.03
75 펌웨어 & 코딩언어 HOT펌웨어란6 k231 2250 2010.11.03
74 펌웨어 & 코딩언어 HOTc언어 초보입니다 조언좀..2 hshyo 1017 2010.10.28
73 펌웨어 & 코딩언어 HOTGPS 데이터를 받아서 지도로 맵핑을 하고자 합니다. 더그라스 1078 2010.10.13
72 펌웨어 & 코딩언어 HOT간단한 어셈블리어 분석 좀 도와 주세요~ ^^; 케루시아 1152 2010.09.08
71 펌웨어 & 코딩언어 HOT학부생인데요 가장 자신있는 프로그램이 어떤거 있으신가요? c언어인분도 계세요?4 온니무 871 2010.08.25
70 펌웨어 & 코딩언어 HOTC/C++로 영상처리를 하고 싶습니다.5 Glory 2976 2010.08.22
69 펌웨어 & 코딩언어 HOTC 언어2 연희야 1097 2010.08.10
68 펌웨어 & 코딩언어 HOT프리스케일 mcu 쓰시는 분은 없나요?1 스즈루 957 2010.06.28
67 펌웨어 & 코딩언어 HOTc언어 관련3 수환 849 2010.06.25
  • 우리의 인내가 우리의 힘보다 더 많은 것을 성취할 것이다.
    - 버크
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.