질문게시판 > 답변 : atmega128 avr usart 질문

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

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

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

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

BASIC4MCU > 질문게시판

답변 : atmega128 avr usart 질문

페이지 정보

작성자 master 작성일22-06-21 07:53 조회321회 댓글5건

본문

//

// usart 에 1,2 입력시 led 좌,우측 순차점등이고 

// atmega128 array Fnd 가 좌,우측 나뉘어서 1,2 입력 한 숫자만큼 증가

//

#include <avr/io.h>

#include <avr/interrupt.h>

#include "1.h"

#define  CPU_CLOCK  7372800UL

#define  BAUD_RATE  19200

#define  BAUD_RATE_L(CPU_CLOCK/(161*BAUD_RATE))-1

#define  BAUD_RATE_H((CPU_CLOCK/(161*BAUD_RATE))-1)>>8

//

volatile unsigned char FND[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F};

volatile unsigned char digit=0,display_num[4]={0.0.0.0}

volatile unsigned int tic_time=0;

//

char U0_rxChar(){ while(!(UCSR0A&0x80)); return UDR0; }

void U0_txChar(char d){ while(!(UCSR0A&(1<<UDRE0))); UDR0=d; }

void U0_txStr(char *s){ while(*s)U0_txChar(*s++); }

//

void delay(unsigned int dsec){ tic_time=0; while(dsec>tic_time); }

//

ISR(TIMER0_COMP_vect){ // 998.2638888888889us

  tic_time++;

  PORTA=FND[display_num[digit]]; PORTG=~(1>>digit);

  if(++digit>3)digit=0;

}

//

int main(void){

  int i,count,count1;

  unsigned char byte;

  unsigned char buf1[]="1.led 좌측부터 순차점등 \r\n";

  unsigned char buf2[]="2.led 우측부터 순차점등 \r\n";

  unsigned char buf3[]="input number(1-2):";

  DDRA=0xFF;   DDRC=0xFF; DDRG=0xFF; PORTG=0xFF;

  UCSR0B=0x18; UBRR0L=23;

  TCCR0=0x0C;  OCR0=114; TIMSK=2; //7372800Hz/64/(1+114)=1001.739130434783Hz,998.2638888888889us

  sei(); 

  for(;;){

    U0_txStr(buf1); U0_txStr(buf2); U0_txStr(buf3);

    byte=U0_rxChar(); U0_txChar(byte); U0_txStr("\r\n");

    if(byte=='1'){

      if(++count>99)count=0;

      display_num[0]=count/10;

      display_num[1]=count%10;

      for(i=0;i<8;i++){ PORTC=0x01<<i; delay(125); } PORTC=0;

    }

    if(byte=='2'){ 

      if(++count1>99)count1=0;

      display_num[2]=count1/10;

      display_num[3]=count1%10;

      for(i=0;i<8;i++){ PORTC=0x80>>i; delay(125); } PORTC=0;

    }

  }  

  return 0;

}

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

댓글 : 5

조회수 : 321

snoflak님의 댓글

snoflak 작성일

timsk 저렇게 설정하면 256분주로 설정되는건가요?
그리고 답변 감사합니다 많은 도움이 됐습니다.

master님의 댓글

master 댓글의 댓글작성일

7372800Hz/256=28800Hz
1ms로 만들기 위해서는 1000Hz가 나와야 하는데 28.8로 나누어야 하므로
근사치인 29로 나누면
7372800Hz/256/29=993.1034482758621Hz
64분주에 비해서 오차가 더 큽니다.

snoflak님의 댓글

snoflak 작성일

그렇군요 감사합니다 그리고 만약 256분주를 쓴다면
TCCR0=0x0E; OCR0=29; TIMSK=2; 로 설정하고
delay 함수는 124로 설정하면 되는 건가요?

master님의 댓글

master 댓글의 댓글작성일

설정은 맞습니다. 약 1ms
delay(125) 하면 대충 125ms가 되는거죠

snoflak님의 댓글

snoflak 댓글의 댓글작성일

감사합니다 delay 는125로 그대로 설정하면 되는군요
 많은 도움이 됐습니다 도와주셔서 감사합니다.

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 아두이노 while문 탈출 질문 yhj2644  22-07-01
답변 답변 : 아두이노 while문 탈출 질문 댓글[6] master 새글 22-07-01
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의… 댓글[3] cansad  22-06-30
질문 ESP32-C3 리튬폴리머 ADC 전압 체크 관련 문의 댓글[3] cansad  22-06-30
질문 빵판없이 디스플레이 넣을 수 있을까요? 댓글[2] 첨부파일오소로롯  22-06-29
질문 라즈베리파이4 신형 선택문제 댓글[1] maximum  22-06-26
질문 음전압 ADC 댓글[2] 412904  22-06-26
질문 아두이노 센서값 출력 질문입니다! 댓글[1] 아궁2  22-06-24
질문 ATmega128, ATmega28 RS232통신 첨부파일Moon4201  22-06-24
답변 답변 : ATmega128, ATmega28 RS232… 댓글[1] master  22-06-25
질문 서보모터, 온습도센서 코드 질문 댓글[2] 첨부파일kshdlfaldfh  22-06-22
답변 답변 : 서보모터, 온습도센서 코드 질문 댓글[15] master  22-06-22
질문 steppermulti5 질문 응애  22-06-21
답변 답변 : steppermulti5 질문 댓글[1] master  22-06-22
질문 atmega128 avr usart 질문 snoflak  22-06-21
답변 답변 : atmega128 avr usart 질문 댓글[5] master  22-06-21
질문 사용자 정의 함수 변환 하는 방법 댓글[2] 첨부파일da0800  22-06-21
질문 atmega128 댓글[1] 양의노래  22-06-20
질문 아두이노 동시동작 재질문 댓글[9] 첨부파일죠르디  22-06-20
질문 초음파센서로 dc모터 제어하기 댓글[1] 첨부파일난쟁2  22-06-20
질문 아두이노 동시동작 댓글[7] 죠르디  22-06-19
질문 ATMEGA128 UART,FND 연동 질문 JMOD  22-06-19
답변 답변 : ATMEGA128 UART,FND 연동 질문 댓글[1] master  22-06-20
질문 atmeg128 질문이요 댓글[1] 첨부파일공대생er  22-06-18
질문 atmega128 초음파 센서로 신호등 시간초 늘리기 서동씨  22-06-18
답변 답변 : atmega128 초음파 센서로 신호등 시간초… 댓글[1] master  22-06-18
질문 atmega128 댓글[2] 망경이  22-06-18
질문 앱인벤터 이용해서 수동 자동 할라고하는데 ..잘안됩니다… 댓글[1] 따랑해영  22-06-18
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전