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
수정 아이콘
감사합니다

건승하세요 (=
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
68627 힙합에 관해 질문드립니다 [13] 서진욱3878 09/11/26 3878
68626 주말에 혼자여행다녀오려합니다 (추천좀 !) [1] 권유리2132 09/11/26 2132
68624 영국 문화좀 많이 아시는분? [1] 김쓰랄1488 09/11/26 1488
68623 서울근교 펜션추천 부탁드립니다(커플아님..ㅠ) [8] nomark2246 09/11/26 2246
68621 패키지 게임 구입 고민중입니다 [5] 푸파이터2120 09/11/26 2120
68620 수영 전에 먹을 요깃거리 뭐가 좋을까요? [6] Robbie2290 09/11/26 2290
68618 야구에 관한 질문입니다. [13] 인필드1888 09/11/26 1888
68617 sd카드와 mmd카드는 무슨 차이인가요? wook981649 09/11/26 1649
68615 좀 특이한 교통사고 질문입니다. [12] 하나2104 09/11/26 2104
68614 실업급여에 대해서 궁금한점이 있습니다. [4] 쉬군2006 09/11/26 2006
68613 헬스를 하는데...!!!!! [8] 로랑보두앵2706 09/11/26 2706
68612 실톱으로 철제 책상다리 자를 수 있을까요? [1] tiZtoM2211 09/11/26 2211
68611 광주에서 대학생이 봉사활동을 할 수 있는 단체나 기관 어디 없을까요? 급합니다. [3] 벤카슬러2121 09/11/26 2121
68610 생산재고관리 중 안전재고 산출 기준의 현업 적용 시 궁금한 점이 있습니다. 지후아빠5256 09/11/26 5256
68609 atmega128 질문있습니다 [2] LVMH2247 09/11/26 2247
68608 UDP 방이 안보일때는 어떡해야 하나요? [1] 호랭총각2230 09/11/26 2230
68607 나이 차이가 많은 사람하고 호칭 [10] Disu[Shield]3396 09/11/26 3396
68605 방학때 토플 점수 100점 만들어야합니다. 공부방법 질문좀. [6] WestSide2300 09/11/26 2300
68604 S대와 각종 고시에 대해... [11] 오월2910 09/11/26 2910
68603 현재 사용 폰을 해지하고 신규가입으로.. [4] 홍Yellow2079 09/11/26 2079
68602 CS 대학원 유학 [3] WestSide2261 09/11/26 2261
68601 한글 맞춤법 질문입니다. [3] 세레나데1668 09/11/26 1668
68599 질럿 홀드 관련 질문입니다 [7] MoreThanAir2212 09/11/26 2212
목록 이전 다음
댓글

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