|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


3198, 1/160 |
![]() |
![]() |
![]() |
![]() |
|
oh88kth | ||||||
|
마이크로프로세서에서 avr로 프로그램짜서 LED 순차점등인데요~ | ||||||
|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2939 [복사]
Hit : 10688 Date : 2011/04/06 09:36
|
|||||||
| ![]() |
| |
| 음? 재작년에 avr 갖고놀때 같은거 만들었었는데 ㅋㅋ http://www.youtube.com/blueh4g http://www.youtube.com/blueh4g#p/u/3/CEcf9l774C4 http://blueh4g.tistory.com/17 참고해주세요 ㅋㅅㅋ |
2011/04/07 | |
|
| 음.. 근데 제가 했던거랑 avr 키트가 다른건가보네요a 일단 지금은 제가 키트를 갖고있지 않은 상황이라 = ㅅ=;; 소스를 수정은 해보겠지만, 되는지 안되는지는 확인이 안되네요... 혹시 안되면 또 질문주세요a #include<avr/io.h> #include<avr/interrupt.h> #include<util/delay.h> unsigned char Time_STOP=0; SIGNAL(SIG_INTERRUPT0); int main() { unsigned char LED_DATA=0x01; unsigned char direction_sw=0x01; DDRD=0xFE; DDRE=0xFF; EICRA=0x0f; EICRB=0x00; EIFR=0x01; sei(); while(1) { PORTE=LED_Data; if(Time_STOP==0) { if(LED_Data==0x80) direction_sw=0x00; else if(LED_Data=0x01) direction_sw=0x01; if(direction_sw==0x01) LED_Data<<=1; else LED_Data>>=1; } _delay_ms(100); } return 0; } SIGNAL(SIG_INTERRUPT0) { cli(); if(Time_STOP==0) Time_STOP=1; else Time_STOP=0; sei(); } =============== direction_sw 라는걸로 방향을 셋팅하게 하고 왼쪽 끝에 도달하거나 오른쪽 끝에 도달하면 해당 값만 바꿔주고, 그 밑에서 direction_sw 값에 따라 왼쪽으로 진행할지 오른쪽으로 진행할지를 나눠놓은거에요~ 대충 메모장으로 금방 끄적댄거라 아마 중간에 에러같은거 나면 적당히 고쳐쓰세요;; ㅋㅋ |
2011/04/07 | |
|
| yangseungjin | if - else 에서 else 값을 초기로 돌려줘야죠 그런데 위에서는 <<=1 로해놧네요 | 2011/04/07 | |
| yangseungjin // 음? 제 소스에서 말인가요;? 무슨얘긴지 조금만 더 디테일하게 말씀해주세요 ㅠ_ㅠ 아님 위에 oh88kth 님 소스에서 말씀이시라면 if(LED_Data==0x80) LED_Data=0x01; // 만약 끝까지 가게되면 초기화 else LED_Data<<=1; // 끝까지 안갔으면 끝까지 갈때까지 한칸씩 진행 이라서 한쪽방향으로만 움직이는 소스라면 저 소스가 맞아요a |
2011/04/07 | |
|
|