BASIC4MCU | 질문게시판 | 답변 : atmega128 코딩 질문드립니다.
페이지 정보
작성자 master 작성일2018-06-07 09:41 조회10,844회 댓글2건본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-06-07 오전 9:44:34// by Ok-Hyun Park//#include <avr/io.h>#include <avr/interrupt.h>//unsigned char seg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//unsigned long int b=0,c=0,d=0,b1=0,c1=0,d1=0;//ISR(INT5_vect){ if(++b>3)b=0; PORTC=seg[b]; } // sw1, 1번 세븐세그먼트에 2,8,10,16진수를 선택ISR(INT4_vect){ if(++c>3)c=0; PORTD=seg[c]; } // sw2, 2번 세븐세그먼트에 변환하고자 하는 진수를 선택ISR(INT6_vect){ d++; PORTF=seg[d]; PORTB=seg[d]; } // sw3, 실행//int main(){DDRB=0xff; DDRF=0xff;DDRC=0xff; PORTC=seg[b];DDRD=0xff; PORTD=seg[c];EICRB=0xA; EIMSK=0x70; sei();while(1){PORTF=aaa[d]; PORTB=aaa[d]; if(d==2)d=1;}return(1);}
알고리즘(설명글)이 명확하지 않습니다.
예에서는 8진수를 10진수로 변환 한다고 했는데
8진수의 어떤 값을
10진수로 변환 한다는 것인지도 모르겠고
뭘 어떻게 하려는지 모르겠습니다.
알고리즘을 만들기 어려우면 순서도를 작성해보세요
댓글 2
조회수 10,844오무라이스님의 댓글
비공개 작성일
우선 바쁘신데 답변 달아주셔서 정말 감사합니다.
제가 원하고자 하는것을 다시 설명드리겠습니다.
제가 설명을 잘못해서 ㅠㅠ 죄송합니다.
예를 들어 8진수의 어떤 숫자는 제가 선택하는것이고!
그걸이제 PORTC에 있는값을 배열 a[](0,2,8,10,16) 이걸로 만들었는데
8진수에서-> 10진수로 간다면
PORTC에 있는 배열을 바꿔야 하잖아요 제가만든 8진수배열로 100의자리는 0,1,2 1의자리와 10의자리는 0~7까지있는 배열 그래서 쉽게말씀드리면
스위치 1번은 이제 8진수 백의자리숫자 0~3까지 카운트하고
스위치 2번은 일의자리 숫자부터 카운트해서 8이되면 십의자리숫자가 0이였는데 1로 되게끔 해서 카운트를 할려고했습니다.
순서도는 =1.스위치1로 처음 진수 선택
2.스위치2로 변환하고자하는 진수선택
3.스위치3이 초기화겸 확인버튼
그래서 예를 들어 8->10 진수로 가정하면(스위치1로 8선택, 스위치2로 10선택)
4. ex) 8진수 122를 선택합니다( 스위치1=2번카운트 스위치2= 22번 카운트)
5.스위치3번 누르면 10진수 82가 나옵니다.
6.스위치 1,2,3 동시에 누르면 맨처음으로 초기화
이런식으로 만들려고합니다..
감사합니다
master님의 댓글
master
저는 알고리즘 설명이 이해가 안됩니다.