ATmega128질문입니다.
페이지 정보
작성자 코딩초보자 작성일18-12-18 01:07 조회4,198회 댓글1건본문
#define F_CPU 16000000L
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
//
void TX1_char(char c){ while(!(UCSR1A&0x20)); UDR1=c; }
void TX1_STR(char *s){ while(*s)TX1_char(*s++); }
//
int main(void){
int cds; char str[20];
DDRD=0x10;
DDRB=0x20;
UCSR0B=0x18; UBRR0L=103; // 9600
TCCR1A=0x82; TCCR1B=0x1A; ICR1=39999; // fastPWM 20ms주기
ADMUX=0x45; ADCSRA=0xE7;
while(1){
_delay_ms(1000);
cds=ADC;
sprintf(str,"%d\r\n",cds); TX1_STR(str);
//
if (cds<100)OCR1A=1200; // 0도
else if(cds<300)OCR1A=3000; // 90도
else OCR1A=4800; // 180도
//
if(cds<300)PORTD=0x00; // 300미만인 경우는 LED 꺼짐
else PORTD=0x10; // 300 이상이면 LED 켜지고
}
}
이 코드에서 sprintf 함수 말고 printf 함수 또는 scanf 함수를 사용하고 싶은데 코드들을 어떻게 변경해야 하나요??
댓글 : 1
조회수 : 4,198
master님의 댓글
master 작성일
구체적인 내용은 stdio.h 헤더파일안에 나와있고요
AVRstudio UART 예제를 찾아보세요
//
저는 sprintf()를 권장합니다.