PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/11/26 14:32:00
Name LVMH
Subject atmega128 질문있습니다
코드비젼으로  9999 카운터를 실행해보았습니다
소스는
#include <mega128.h>
void delay(int a)
{                        
        int i,j;
        for(i=0;i<a;i++)                                        
                for(j=0;j<a;j++);
}
void main()
{
        int LEDNUM[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xd8, 0x80, 0x98};  //0~9
        int m,n,l,y,a;
        DDRA = 0xff;
        DDRB = 0xff;        
        while(1)
        {
                for(m=0;m<10;m++)
                {
                        for(n=0; n<10; n++)
                        {
                                for(l=0; l<10; l++){
                                        for(y=0; y<10; y++){  
                                                for(a=0;a<10;a++){
                                             PORTB=0xfe;                        
                                             PORTA = LEDNUM[y];
                                             delay(40);
                                             PORTB = 0xfd;
                                             PORTA=LEDNUM[l];
                                             delay(40);    
                                             PORTB = 0xfb;
                                             PORTA=LEDNUM[n];
                                             delay(40);
                                             PORTB = 0xf7;
                                             PORTA=LEDNUM[m];
                                             delay(40);           }
                                 }      
                            }
         }  
         }                      
}
}

이런식인데요
여기서 스위치를 추가해
led0000이다가 스위치를 키면
카운터가 다시 되는 소스를 만들어야하는데
저기서 어떻게 수정해야 할까요

도저히 감을 못잡아 올려봅니다

도와주세요

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
shadowtaki
09/11/26 16:11
수정 아이콘
현재 PORTB는 CS_L로 사용하시고 있는 것 같고, PORTA는 7-segment 비슷한 것을 사용중이신 것 같군요..
현재 코드가 스위치 없이 프로그램 시작하자 마자 카운트해서 문제없이 동작하는 중이라면 간단하게 코드를 삽입해서 해결할 수 있을 것 같습니다.
다른 PORT를 사용하시던지 아니면 PORTB의 남는 PIN을 이용하시던지 해서 스위치 입력을 받을 수 있도록 하드웨어 구성을 하십시오.
저는 PORTB7을 스위치 입력(TACT SW로 구성 Push일 때 Low로 가정)으로 사용한다고 생각을 하고 코드를 삽입하겠습니다.

DDRB = 0x7f; //PORTB7을 입력으로 수정
while(1)

while(PINB&0x80); //스위치 입력에 의해서 빠져나감(스위치는 눌렀을 때 LOW)



1줄 수정, 1줄 추가면 예상 동작은 스위치를 누르면 카운트 시작해서 9999까지 카운트가 끝나면 다시 멈춤 입니다.
만약 스위치를 TACT SW가 아닌 Toggle SW를 사용하면 0~9999까지 반복해서 카운트를 할 것 입니다.
(다시 스위치를 누르면 9999까지 카운트 후 멈춤)

하드웨어 구성은 PORTB7이 풀업으로 구성하시고 스위치에 의해서 Low로 떨어지도록 구성하시면 될 것 같습니다.
09/11/26 17:33
수정 아이콘
감사합니다

건승하세요 (=
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
68628 중이염 관련 질문입니다 [6] Cand2098 09/11/26 2098
68627 힙합에 관해 질문드립니다 [13] 서진욱3854 09/11/26 3854
68626 주말에 혼자여행다녀오려합니다 (추천좀 !) [1] 권유리2114 09/11/26 2114
68624 영국 문화좀 많이 아시는분? [1] 김쓰랄1457 09/11/26 1457
68623 서울근교 펜션추천 부탁드립니다(커플아님..ㅠ) [8] nomark2211 09/11/26 2211
68621 패키지 게임 구입 고민중입니다 [5] 푸파이터2099 09/11/26 2099
68620 수영 전에 먹을 요깃거리 뭐가 좋을까요? [6] Robbie2263 09/11/26 2263
68618 야구에 관한 질문입니다. [13] 인필드1866 09/11/26 1866
68617 sd카드와 mmd카드는 무슨 차이인가요? wook981627 09/11/26 1627
68615 좀 특이한 교통사고 질문입니다. [12] 하나2076 09/11/26 2076
68614 실업급여에 대해서 궁금한점이 있습니다. [4] 쉬군1979 09/11/26 1979
68613 헬스를 하는데...!!!!! [8] 로랑보두앵2682 09/11/26 2682
68612 실톱으로 철제 책상다리 자를 수 있을까요? [1] tiZtoM2186 09/11/26 2186
68611 광주에서 대학생이 봉사활동을 할 수 있는 단체나 기관 어디 없을까요? 급합니다. [3] 벤카슬러2091 09/11/26 2091
68610 생산재고관리 중 안전재고 산출 기준의 현업 적용 시 궁금한 점이 있습니다. 지후아빠5234 09/11/26 5234
68609 atmega128 질문있습니다 [2] LVMH2226 09/11/26 2226
68608 UDP 방이 안보일때는 어떡해야 하나요? [1] 호랭총각2209 09/11/26 2209
68607 나이 차이가 많은 사람하고 호칭 [10] Disu[Shield]3354 09/11/26 3354
68605 방학때 토플 점수 100점 만들어야합니다. 공부방법 질문좀. [6] WestSide2270 09/11/26 2270
68604 S대와 각종 고시에 대해... [11] 오월2882 09/11/26 2882
68603 현재 사용 폰을 해지하고 신규가입으로.. [4] 홍Yellow2059 09/11/26 2059
68602 CS 대학원 유학 [3] WestSide2226 09/11/26 2226
68601 한글 맞춤법 질문입니다. [3] 세레나데1638 09/11/26 1638
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로