회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
95 중고장터 HOTDEMO9RS08KASP FREESCALE EVALUATE BOARD 아크마 6264 2011.05.22
94 중고장터 HOT산켄 SLA7044M 및 PG001M 구합니다 밝은전기구슬 5028 2011.03.21
93 중고장터 HOT이노룩스 10.2인치 lcd 팝니다...1 스포츠광 6643 2011.03.18
92 중고장터 HOTATMEGA128 2개 팝니다 btnim 6879 2011.03.17
91 중고장터 HOTAT89S8253 24JC 수량24개 있습니다. 필요하신분께 드립니다1 초록 5099 2011.03.10
90 중고장터 HOTSTM32F103ZET 판매 아크마 5246 2011.02.27
89 중고장터 HOT8086 / 8088 어셈블러 관련 책 구해요 상혁짱 5756 2011.01.22
88 중고장터 HOT빵판 구해봅니다.6 상혁짱 4326 2011.01.22
87 중고장터 HOTencoder knob 구하고 있습니다.1 blackpearl 5724 2011.01.20
86 중고장터 HOTAVR, DSP 테스트 보드 제팔 6629 2011.01.18
85 중고장터 HOTKUT-128 KIT와 교재 비닐도 뜯지 않은 새 것입니다.1 짬짜미 6837 2010.12.31
84 중고장터 HOTAVR 테스트키트와 책을 같이 구매하고 싶습니다 orcad 4197 2010.12.02
83 중고장터 HOTavr 카운터 시계 파실분없나여?4 땡가드 4533 2010.11.27
82 중고장터 HOTavr128 교육용키트 싸게파시는분있으신가여?5 seohwan16 3906 2010.11.21
81 중고장터 HOT[서적] [마이크로칩 마이크로컨트롤러 응용] 모터콘트롤, 마이크로 컨트롤러 이해와 응용(마이크로칩 16비트) 삽니다.. 꾼뭉 4868 2010.11.18
80 중고장터 HOTPROVSM 6 정품 시디 구해 봅니다.1 열이 4660 2010.11.10
79 중고장터 HOT3d tv 구동칩 구합니다 Optimist_영 3835 2010.11.10
78 중고장터 HOT불루투스 송수신 모줄 저렴하게 구해봅니다 .1 산수유 3400 2010.11.02
77 중고장터 HOTICD-U40 팝니다. bluewing 4456 2010.10.06
76 중고장터 HOT마이크로 로봇 ATMEGA128 트레이닝킷 판매합니다.6 bluewing 5065 2010.10.06
  • 천재란 인내에 대한 위대한 자질 이외에는 아무것도 아니다.
    - 뷰퐁
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.