질문게시판 > fnd 딜레이

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

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

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

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

BASIC4MCU > 질문게시판

fnd 딜레이

페이지 정보

작성자 슬레이브 작성일20-12-08 22:20 조회4,635회 댓글3건

본문

#include <mega128.h>

#include <delay.h>

 

u_char seg_pat[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };

 

void Seg4_out(int);

 

void main(void) {

int num = 0; 

  

DDRB= 0xF0;

DDRD= 0xF0;

DDRG= 0x0F;

 

PORTB= 0x0;

PORTD= 0x0;

 

while(1){

Seg4_out(num);

num++; delay_ms(1000);

if(num>9999) num= 0; }

 

void Seg4_out(int num) {

int I, s1, s10, s100, s1000, buf;

 

s1000= num/1000;

buf= num%1000;

s100= buf/100;

buf= buf%100;

s10= buf/10;

buf= buf%10;

for(i= 0; i<2;i++) {

PORTG = 0b00001000;

 

PORTD = ((seg_pat[s1] &0x0F)<<4) | (PORTD & 0x0F);

 

PORTB = (seg_pat[s1] &0x70) | (PORTB & 0x0F);

 

delay_ms(5);

 

 

PORTG = 0b00000100;

 

PORTD = ((seg_pat[s10] &0x0F)<<4) | (PORTD & 0x0F);

 

PORTB = (seg_pat[s10] &0x70) | (PORTB & 0x0F);

 

delay_ms(5);

 

 

PORTG = 0b00000010;

 

PORTD = ((seg_pat[s100] &0x0F)<<4) | (PORTD & 0x0F);

 

PORTB = (seg_pat[s100] &0x70) | (PORTB & 0x0F);

 

delay_ms(5);

 

PORTG = 0b00000001;

 

PORTD = ((seg_pat[s1000] &0x0F)<<4) | (PORTD & 0x0F);

 

PORTB = (seg_pat[s1000] &0x70) | (PORTB & 0x0F);

 

delay_ms(5);

 

}

}

 fnd 0~9999까지 표시하는 프로그램인데요 

1초마다 1씩 증가하게 하려면 while 문에 delay_ms(1000); 해주면 될까요?

 

추가적으로 for 문은 왜 해주는 건지 알려주실 수 있을까요?

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

댓글 : 3

조회수 : 4,635

master님의 댓글

master 작성일

while(1){
  Seg4_out(num);
  num++;
  if(num>9999) num= 0;
  delay_ms(1000);
}
여기서 딜레이를 사용하면 안됩니다.
마지막(4번째 출력한) 세그먼트가 1초동안 켜져있고, 나머지 3개는 커져있게 됩니다.
딜레이를 제거하고
  Seg4_out(num);
이 함수의 실행 시간이 1초가 되어야 합니다.

master님의 댓글

master 작성일

Seg4_out()함수 안에 for문이 있고
for문 안에는 5ms 딜레이가 4개 있어서 루프 1회는 20ms 딜레이입니다.
for(i=0;i<50;i++){
루프 횟수를 50으로 변경하면 1초동안 루프를 실행하게 됩니다.

master님의 댓글

master 작성일

#include <mega128.h>
#include <delay.h>
//
u_char seg_pat[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f };
//
void Seg4_out(int n){
  int i,s4,s3,s2,s1;
  s1=n/1000%10; s2=n/100%10; s3=n/10%10; s4=n%10;
  for(i=0;i<50;i++){
    PORTG=8; PORTD=(seg_pat[s4]<<4)|(PORTD&0x0F); PORTB=(seg_pat[s4]&0x70)|(PORTB&0x0F); delay_ms(5);
    PORTG=4; PORTD=(seg_pat[s3]<<4)|(PORTD&0x0F); PORTB=(seg_pat[s3]&0x70)|(PORTB&0x0F); delay_ms(5);
    PORTG=2; PORTD=(seg_pat[s2]<<4)|(PORTD&0x0F); PORTB=(seg_pat[s2]&0x70)|(PORTB&0x0F); delay_ms(5);
    PORTG=1; PORTD=(seg_pat[s1]<<4)|(PORTD&0x0F); PORTB=(seg_pat[s1]&0x70)|(PORTB&0x0F); delay_ms(5);
  }
}
//
void main(void) {
  int num=0;
  DDRB=0xF0; DDRD=0xF0; DDRG=0x0F;
  while(1){
    Seg4_out(num);
    if(++num>9999)num=0;
  }
}

게시물 검색

BASIC4MCU > 질문게시판 목록

제목 날짜
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은… 스태프  19-01-15
공지 사이트 이용 안내 댓글[25] master  17-10-29
질문 lcd 1602에 특수문자를 출력하는 방법을 알고싶습니… 댓글[3] dndktn 새글 01:52
질문 stm32 wifi 파일전송 댓글[2] 하리 새글 22-08-11
질문 회로 구성 수정 댓글[2] 첨부파일픽공부 새글 22-08-11
질문 아두이노 와이파이통신 질문 있습니다 댓글[1] 학생 새글 22-08-11
질문 포토다이오드와의 연결 질문합니다. 댓글[7] 첨부파일박윤모  22-08-10
질문 회로 구성 댓글[4] 픽공부  22-08-10
질문 아두이노 센서, 와이파이, 블루투스 연결 댓글[1] pattern  22-08-10
질문 PIC 블루투스 연결 댓글[19] 픽공부  22-08-09
질문 PIC18F452 블루투스 연결 댓글[4] 마이컴  22-08-08
질문 아두이노 코드 해석을 못하겠습니다... 댓글[2] 김가헌  22-08-08
질문 아두이노 코드를 avr로 변환해 주세요 ...ㅠ 댓글[3] 옹냥냥  22-08-08
질문 아두이노 녹음-스피커모듈 관련 질문있습니다 ㅠㅠ 댓글[2] 방귀뿡뿡  22-08-08
질문 Serial EEPROM 실수값 저장.. 댓글[2] 첨부파일광이  22-08-07
질문 STM32 Live Expression 값들이 깜빡이는… 댓글[3] 둠둠  22-08-05
질문 아두이노 ESP32 wifi module 댓글[1] Yoon  22-08-03
질문 atmega128과 dht11, lcd를 연결했는데 0… 댓글[1] 고양이33  22-08-02
질문 ATMEGA 128 코드를 합치려고 하는데 어렵네요 댓글[2] 고양이33  22-08-02
질문 서보모터 제어에 대해 질문있습니다. 댓글[2] 첨부파일뉴비에오  22-07-30
질문 적외선 통신 알려주실분있나요 ㅠㅠ 댓글[1] hkjsj10  22-07-30
질문 아두이노 관련 궁금합니다. 댓글[1] 뱝뱝  22-07-28
질문 아두이노 우노 MCP4725 댓글[3] opqr  22-07-27
질문 레오나르도 인체감지센서 알림 안옴 면지지  22-07-24
답변 답변 : 레오나르도 인체감지센서 알림 안옴 master  22-07-25
질문 Uno에서 엔코더값 놓치는 이유가 뭘까요... 댓글[3] MAKTUB  22-07-24
질문 아두이노 압력센서 연동 질문 댓글[4] dbice  22-07-23
질문 아두이노 버튼 누르기 문의 댓글[1] 김형근  22-07-23
질문 HM10 다중페어링 댓글[1] ㅎㅋㅎㅋㅎ  22-07-22
질문 모터드라이브 선정 댓글[6] 조숩인  22-07-22
게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전