AVR 따라하기 > 026 - [LED-24] 하나씩 채우기

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > AVR 따라하기

2015년 강좌 | 026 - [LED-24] 하나씩 채우기

페이지 정보

작성자 키트 작성일17-08-23 14:40 조회2,573회 댓글2건

본문

3660040649_B8xOG4rd_25C125A625B825F1_25BE25F825C025BD.PNG3Ftype3Dw740
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//--------------------------------------------------------
// CVAVR
// [LED-24] 채우기
//--------------------------------------------------------
#include <mega128.h> 
#include <delay.h> 
//
void main(void){
   int i,k,s;
   DDRA=0xff;
   while(1){
       for(s=0,k=8;k>0;k--){
           for(i=0;i<k;i++){ PORTA=s|(1<<i); delay_ms(300); }
           s=PORTA;
       }
   }
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//--------------------------------------------------------
// AVRStudio
// [LED-24] 채우기
//--------------------------------------------------------
#define F_CPU 16000000UL // 16 MHz
#include <avr/io.h>
#include <util/delay.h>
//
int main(void){
   int i,k,s;
   DDRA=0xff;
   while(1){
       for(s=0,k=8;k>0;k--){
           for(i=0;i<k;i++){ PORTA=s|(1<<i); _delay_ms(300); }
           s=PORTA;
       }
   }
}
cs


 
//--------------------------------------------------------------------------------------
3660040649_gisQHfRz_25C125A625B825F1_25BE25F825C025BD.PNG3Ftype3Dw740


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//--------------------------------------------------------
// CVAVR
// [LED-24] 채우기
//--------------------------------------------------------
#include <mega128.h> 
#include <delay.h> 
//
void main(void){
   int i,k,s;
   DDRA=0xff;
   while(1){
       for(s=0xff,k=8;k>0;k--){
           for(i=0;i<k;i++){ PORTA=s&(~(0x01<<i)); delay_ms(300); }
           s=PORTA;
       }
   }
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//--------------------------------------------------------
// AVRStudio
// [LED-24] 채우기
//--------------------------------------------------------
#define F_CPU 16000000UL // 16 MHz
#include <avr/io.h>
#include <util/delay.h>
//
int main(void){
   int i,k,s;
   DDRA=0xff;
   while(1){
       for(s=0xff,k=8;k>0;k--){
           for(i=0;i<k;i++){ PORTA=s&(~(0x01<<i)); _delay_ms(300); }
           s=PORTA;
       }
   }
}
cs


LED 구동은 GPIO 출력의 기초가 되는 중요한 예제입니다.
잘 숙지해서 내 것으로 만드시기 바랍니다.^^

댓글 : 2

조회수 : 2,573

세계제일초보님의 댓글

세계제일초보 작성일

선생님..많은 생각을 하고..확인하는거랑 질문이랑 같이 있습니다.
1.for(i=0;i<k;i++){ PORTA=s|(1<<i)
이문장에서..  1<<i의값이 4,5값이든 | (or)들어 가있는 문장은 무조건 1씩만 이동하는게 맞습니까?

2.for(i=0;i<k;i++){ PORTA=s|(1<<i); _delay_ms(300); }
          s=PORTA; 
PORTA=0X80의 값을 S넣는데.. 다음 값0X40값은 PORTA에 넣으면 이전의값 0X80이 어떻게...사라지지않고 지속 되는건가요..
S+=PORTA 이게.. 데이터값을 지속적으로 가지고 있는 코팅으로 알고 있습니다...ㅠㅠ 선생님..

master님의 댓글

master 댓글의 댓글 작성일

벌써 전체 예제를 3번씩 돌려보면서 공부하셨나요?
이해가 안간다고 무조건 이해 갈 때까지 버티면서 공부한다면
진도가 안나가고, 지쳐서 포기하게 될 수도 있습니다.
중학교 1학년 과정을 백% 다 모른채로 중학교 2학년에 올라갑니다.
중학교 3학년 올라 갈 때도 중학교 2학년 과정을 다 모른채로 올라갑니다.
이런식으로 다 모른채로 진학하더라도 나중에 다 알게됩니다.
상급과정에서 하급과정을 되 써먹게되고 처음 모르고 지났더라도 나중에 다시 배우게 된다는 뜻이죠
다 알려고 하지말고 정 이해가 안가면 건너 뛰면서 진도를 나가세요
그 것이 덜 힘들고 빨리 습득하는 방법입니다.

게시물 검색

AVR 따라하기 목록

게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전