회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
마이크로프로세서 HOT(avr stdio) 인터럽트로 led 좌,우 시프트 하기5 강희 3711 2011.01.11
831 마이크로프로세서 HOTATmega128 회로질문이요ㅠ5 rjmans 2941 2011.01.06
830 마이크로프로세서 HOT부트로드 관련 질문입니다.2 데닉시 1488 2011.01.04
829 마이크로프로세서 HOT이제 입문하게된 초보입니다. 어떤식으로 공부해야할까요?2 피어싱 1363 2011.01.04
828 마이크로프로세서 HOTatmega128 교육키트 사는 거 별로 비추천인가요?ㅠ7 rjmans 1591 2011.01.03
827 마이크로프로세서 HOTatmega128 교육키트를 살까하는데요,.. 추천좀 ㅠㅠ2 rjmans 2541 2011.01.02
826 펌웨어 & 코딩언어 HOTinline assembler 삽입 제한 피해가는 법 요청 쿨맨 1642 2011.01.01
825 마이크로프로세서 HOTat90can128관련질문입니다.2 레고 2531 2010.12.31
824 마이크로프로세서 HOTCC2430 만능기판에 꾸며 다운로드 하기 로미옹 1465 2010.12.28
823 마이크로프로세서 HOTRS232 를 이용한 ATmega128통신7 데닉시 2656 2010.12.27
822 마이크로프로세서 HOTSTM32F103R8T6 ADC 입력1 컴맹9506 3600 2010.12.27
821 마이크로프로세서 HOT노트북 전원에 따른 노이즈 발생 문제3 초당당 2490 2010.12.23
820 마이크로프로세서 HOTATmega128 전원공급에 관한 질문입니다.3 데닉시 2803 2010.12.22
819 펌웨어 & 코딩언어 HOTscanf 입력에 대해 질문이요~4 띵킹~ 1995 2010.12.21
818 마이크로프로세서 HOT마이크로마우스 관련 질문좀 드릴께요1 모범생 1096 2010.12.20
817 마이크로프로세서 HOTdot matrix 회로도인데요 ..문제점좀 찾아주세요 ㅠㅠ4 서울서비 2181 2010.12.17
816 펌웨어 & 코딩언어 HOTC 언어 기초중 다음 사항에 대하여 질문이여.2 hihihohaha 1633 2010.12.15
815 마이크로프로세서 HOTAVR Studio 용량 제한 문제좀 해결해주세요..ㅠㅠ2 에류시온 1297 2010.12.15
814 마이크로프로세서 HOTAVR 을 이용한 도트매트릭스,적외선, LCD 회로 설계..ㅜ5 따지긴 3580 2010.12.15
813 마이크로프로세서 HOTor cad 자료에 대해서3 서울서비 1158 2010.12.12
Prev 1 ... 12 13 14 15 16 17 18 19 20 21 ... 58 Next
  • 존경 없이 참된 연애는 성립되지 않는다.
    - 피히테
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.