질문게시판 > 답변 : AVR에서 이렇게 코딩하면....

TODAY310 TOTAL2,531,273
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 답변 : AVR에서 이렇게 코딩하면....

페이지 정보

작성자 master 작성일2018-06-05 03:37 조회6,496회 댓글0건

본문

	

 

#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
//
unsigned char index=0;
unsigned char dir=0;
unsigned char led=0;
//
int main(void){
  DDRA=0xFF;
  while(1){
    if(dir==0)PORTA=0x01<<index;
    else      PORTA=0x20>>index;
    PORTA=PORTA | (led<<7); // 이부분에서 l(?맞나요)이 의미하는게 뭔지 궁금합니다
    _delay_ms(100);
    index++;
    index=index%6;
    if(index==0)dir=dir^0x01;
    led=led^0x01// 이부분도 뭔지도 궁금합니다.
  }
}

 

 

PORTA=PORTA l(led<<7); // 이부분에서 l(?맞나요)이 의미하는게 뭔지 궁금합니다

 

또는 1은 아닙니다.

| 연산자입니다.

비트7을 무조건 1로 만들기 위한 연산이죠

 

led7=led7^0x01// 이부분도 뭔지도 궁금합니다.

 

led 변수의 비트0을 토글 시키기 위한 연산입니다. 

^는 xor 연산자이며

위 연산의 결과는 0 또는 1로서, 비트0만 반전됩니다.

 

    if(dir==0)PORTA=0x01<<index;
    else      PORTA=0x20>>index;

위 연산 결과에서 비트7은 항상 0 입니다.

 

    PORTA=PORTA | (led<<7);

바로 아래에서 비트7을 출력해주는 것인데

led 변수의 비트0 을 포트A의 비트7에 출력해주는 것이죠

 

 

    led^=0x80;
    PORTA|=led;

코드를 좀 더 간단히 하려면 이렇게하면 되겠죠

 

 

// DateTime : 2018-06-05 오전 3:40:10
// by Ok-Hyun Park
//
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
//
char index=0,dir=0,led=0;
//
int main(void){
  DDRA=0xFF;
  while(1){
    if(dir)PORTA=0x20>>index;
    else   PORTA=0x01<<index;
    led^=0x80;
    PORTA|=led;
    if(++index>5){ index=0dir^=1; }
    _delay_ms(100);
  }
}

 

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 0

조회수 6,496

등록된 댓글이 없습니다.

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 아두이노 if millis 질문 도와주세요...댓글[2] 채대원 18-06-10 9677
답변 답변글 답변 : 아두이노 millis 주기 체크 master 18-06-10 7276
질문 swithch문으로 제어하려는데 조언 부탁드립니다댓글[1] 아아어야우유 18-06-10 9068
질문 아두이노 소스 합쳐주세요...댓글[3] 대학생초보 18-06-10 13011
답변 답변글 답변 : 아두이노 Nrf2401 예제1 master 18-06-11 8358
질문 리드스위치 핀번호를 바꾸니 RC카가 동작을 안합니다.댓글[1] 동그라미버스 18-06-10 9317
질문 센서값 합계 구하는 코드 알수있을까요댓글[12] 김동균 18-06-10 74614
질문 결선댓글[5] 이미지첨부파일 비공개 18-06-10 19059
질문 결선 문의댓글[2] 이미지첨부파일 비공개 18-06-10 10628
답변 답변글 답변 : 결선 문의 이미지 master 18-06-10 7309
답변 답변글 답변 2: 결선 문의 이미지 master 18-06-10 7416
질문 아두이노 리모컨댓글[1] 비공개 18-06-10 10385
질문 at mega128 usart에 대해서 질문드립니다.댓글[6] 비공개 18-06-09 22115
질문 kw11마이크로 스위치 질문입니다댓글[2] 이미지첨부파일 아아어야우유 18-06-09 10716
질문 서브모터 방향변환 pwm조절 회로 이미지첨부파일 TestID 18-06-09 7497
답변 답변글 답변 : 서브모터 방향변환 pwm조절 회로댓글[4] 이미지 master 18-06-09 15493
답변 답변글 답변 2: 서브모터 방향변환 pwm조절 회로 이미지 master 18-06-09 7829
질문 아두이노 코딩 질문드립니다.댓글[1] 이니치 18-06-08 9634
질문 아두이노 무선 송수신 모듈선택문의댓글[1] 대학생초보 18-06-08 8672
질문 atmega128 esp8266 질문입니다댓글[1] 찐찐형 18-06-08 10513
질문 서보모터 아두이노 아두이노초보 18-06-08 7172
답변 답변글 답변 : 서보모터 아두이노 master 18-06-09 7410
질문 LCD상으로 주행거리와 장애물과의 거리를 출력하고싶습니다댓글[3] 첨부파일 동그라미버스 18-06-08 12125
답변 답변글 답변 : LCD상으로 주행거리와 장애물과의 거리를 출력하고싶습니다댓글[1] master 18-06-08 9228
답변 답변글 답변 2: LCD상으로 주행거리와 장애물과의 거리를 출력하고싶습니다댓글[4] master 18-06-09 13626
질문 IR GP2Y0A710K0F C33 센서 질문있습니다. 이미지첨부파일 윤스 18-06-08 7041
답변 답변글 답변 : IR GP2Y0A710K0F C33 센서 질문있습니다. 이미지 master 18-06-08 7628
질문 아두이노 초보 질문 드리겠습니다.댓글[9] 폰터진다 18-06-08 34384
답변 답변글 답변 : 아두이노 초보 질문 드리겠습니다.댓글[1] master 18-06-08 9177
질문 아두이노외부전원댓글[1] ddkfjw 18-06-08 11686
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기