BASIC4MCU | 질문게시판 | 안녕하세요 G포트의 디바이스 겹침현상으로인해서 질문드립니다.
페이지 정보
작성자 27315co 작성일2018-06-12 00:17 조회7,925회 댓글0건본문
제가 LCD와 버저를 이용하여서 프로그램을 작성하려고 합니다.
그런데 키트에 버져가 PORTG.4 에 납땜에 되어있어서
다음과 같은 형식으로 CTC 가 TOP 에 도달하였을때
아래의 OCR1A 에 설정된 주파수에 알맞게 PORTG를 토글 시켜서
G포트로 사운드를 출력시키는데 까지는 성공을 했습니다.
하지만 문제가 무엇이냐면 G포트의 0123 에 LCD 의 RS REN TX RX 가 납땜이 되어있어서
다음과같은 코드로 버져를 구동시키면 LCd에 영향을 끼친다는 점입니다.
따라서 PORTG .4 의 비트 하나만가지고 토글을 시키려고했는데
PORTG 는 비트연산이 불가능하다는것을 키트님의 강의자료를 보고 알게되었습니다.
PORTG.4 만 토글을 시키고싶은데 방법이 없을까요????
#include <mega128.h>
#include <delay.h>
int flag = 0;
interrupt [TIM1_COMPA] void tim1comp(void)
{
// PORTG = ~PORTG;
}
void main(void)
{DDRG = 0xff;
TCCR1A = 1<<COM1A0;
TCCR1B = 1<<WGM12 | 1<<CS10;
SREG = 0x80;
TIMSK = 1<<OCIE1A;
PORTG = 0xff;
while (1)
{
OCR1AH = 0x77;
OCR1AL = 0x70;
delay_ms(500);
OCR1AH = 0x5d;
OCR1AL = 0xd0;
delay_ms(500);
OCR1AH = 0x4f;
OCR1AL = 0xc0;
delay_ms(500);}
}
댓글 0
조회수 7,925등록된 댓글이 없습니다.