SlideShare a Scribd company logo
1 of 14
사칙연산 계산기
SUM Project Team
목차
1. 팀원
2. 소개
3. 기간 및 목표
4. 개발 방향
5. 발생한 문제점 및 해결 방안
6. 시연
1. 팀원
SUM Project Team
201001587 서동현
계산기 알고리즘 작성
디바이스 드라이버 총괄 통합
계산기 알고리즘과 디바이스 드라이버 통합
201001637 전지성
CLCD 연구 및 테스트
Key Button 연구 및 테스트
201001647 지강일
Dot Matrix 연구 및 테스트
Button 연구 및 테스트
201001653 최보영
FND 연구 및 테스트
LED 연구 및 테스트
2. 소개
2. 소개
3. 기간 및 목표
2014. 5. 23. ~ 2014. 6. 13. (약 3주)
1주차 설계 및 디바이스 드라이버 코드 분석 5/23, 5/27, 5/28, 5/30
2주차
계산기 알고리즘 작성 및 디바이스 드라이버 코드 수
정
6/2, 6/3, 6/5
3주차 계산기 알고리즘과 디바이스 드라이버 코드를 통합 6/9, 6/10, 6/11
3. 기간 및 목표
clcd
fnd
Key button
Dot
Led
btn
4. 개발 방향
ListBaseStack : 스택의 활용 부분
InfixToPostfix: 후위 표기법의 수식으로 변환
PostCalculator : 후위 표기법의 수식을 계산
InfixCalculaotr: 중위 표기법의 수식을 계산
Calculator : 계산기 알고리즘의 응용 부분
HisOpen, HisSave,
HisNum : 계산기의 히스토리 부분
계산기 알고리즘
Clcd
fnd
Key button
Dot
Led
btn
디바이스 드라이버
5. 발생한 문제점 및 해결 방안
History 기능 struct history{
int id;
char exp[E_MAX_N];
char res[R_MAX_N];
};
if((fread(&record,sizeof(record),1,fp)>0)&&(record.id!=0))
구조체
파일 포인터
History.txt
1 128+(10+28) 166.0
2 30+50/10 35.0
3 99+1-50*10 -400.0
4 4/4*4/4 1
5. 발생한 문제점 및 해결 방안
소수점 + 한 자리 숫자 이상의 계산
double EvalRPNExp(char exp[LEN]){
·
·
else if(flag_d==1&&flag_dot!=1){
Double digit=SPop(&stack);
SPush(&stack,(digit*10)+tok-
'0');
}
else if(flag_d==1&&flag_dot==1){
double digit=SPop(&stack);
double dot=tok-'0';
for(j=0;j<cnt_dot;j++){
dot/=10;
}
SPush(&stack,digit+dot);
}
5. 발생한 문제점 및 해결 방안
CLCD 두 줄 따로 출력하기
static void string_out(char*str){
·
·
if(*s=='n'){
udelay(100);
*((volatileunsignedchar*)(mem_base_wr))=0xC0;
continue;
}
5. 발생한 문제점 및 해결 방안
Button과 Key Button의 충돌
int main(int ac,char *av[]){
·
·
/* Init Thread */
pthread_mutex_init(&mutx,NULL);
pthread_create(&t_id,NULL,handle_btn,
(void*)&btnFd);
·
·
void * handle_btn(void *arg){
switch(buf){
/* Exit Key */
case1:
pthread_mutex_lock(&mutx);
btn_flag[0]=1;
pthread_mutex_unlock(&mutx);
break;
6. 시연
Calculater with pxa - 270

More Related Content

Similar to Calculater with pxa - 270

Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)
Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)
Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)hogyun yu
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법SangIn Choung
 
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2tobeware
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종guest7178884
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션SangIn Choung
 
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)Lab80
 
midas NFX catalog 2014
midas NFX catalog 2014midas NFX catalog 2014
midas NFX catalog 2014midasnfx
 
Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임Lim SungHyun
 
A.I.S팀_산학프로젝트챌린지 (2).pptx
A.I.S팀_산학프로젝트챌린지 (2).pptxA.I.S팀_산학프로젝트챌린지 (2).pptx
A.I.S팀_산학프로젝트챌린지 (2).pptxssuser0e717a
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...Kay Kim
 
테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)KH Park (박경훈)
 
[Web Agency] Project Process Standard Guide
[Web Agency] Project Process Standard Guide[Web Agency] Project Process Standard Guide
[Web Agency] Project Process Standard GuideSang Beom (Chris) Roh
 
캡스톤설계1(강의계획서)2013-1
캡스톤설계1(강의계획서)2013-1캡스톤설계1(강의계획서)2013-1
캡스톤설계1(강의계획서)2013-1Yong Heui Cho
 
Requirements Analysis & its' Faults Prevention
Requirements Analysis & its' Faults PreventionRequirements Analysis & its' Faults Prevention
Requirements Analysis & its' Faults PreventionCHOLHO JONG
 
음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기김 태우
 
발표 Signal lights-정남기
발표 Signal lights-정남기발표 Signal lights-정남기
발표 Signal lights-정남기Namkee Chung
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDDSunghyouk Bae
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답SangIn Choung
 
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)Kay Kim
 

Similar to Calculater with pxa - 270 (20)

Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)
Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)
Futsal Manager 프로젝트(소프트웨어 마에스트로 2차 최종발표)
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
투비웨어 AgitarOne Junit 단위테스트자동화 솔루션소개_201608_v1.2
 
단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종단위테스트자동화지원도구 임성현 최종
단위테스트자동화지원도구 임성현 최종
 
발표원고
발표원고발표원고
발표원고
 
테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션테스트수행사례 W통합보안솔루션
테스트수행사례 W통합보안솔루션
 
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
학교에서는 배울 수 없는 스타트업 엔지니어링 (연세대 특강)
 
midas NFX catalog 2014
midas NFX catalog 2014midas NFX catalog 2014
midas NFX catalog 2014
 
Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임Tr#3 5) 임성현 책임
Tr#3 5) 임성현 책임
 
A.I.S팀_산학프로젝트챌린지 (2).pptx
A.I.S팀_산학프로젝트챌린지 (2).pptxA.I.S팀_산학프로젝트챌린지 (2).pptx
A.I.S팀_산학프로젝트챌린지 (2).pptx
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
 
테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)테스트 자동화와 TDD(테스트 주도 개발방법론)
테스트 자동화와 TDD(테스트 주도 개발방법론)
 
[Web Agency] Project Process Standard Guide
[Web Agency] Project Process Standard Guide[Web Agency] Project Process Standard Guide
[Web Agency] Project Process Standard Guide
 
캡스톤설계1(강의계획서)2013-1
캡스톤설계1(강의계획서)2013-1캡스톤설계1(강의계획서)2013-1
캡스톤설계1(강의계획서)2013-1
 
Requirements Analysis & its' Faults Prevention
Requirements Analysis & its' Faults PreventionRequirements Analysis & its' Faults Prevention
Requirements Analysis & its' Faults Prevention
 
음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기음성메신저 Hay 개발 후기
음성메신저 Hay 개발 후기
 
발표 Signal lights-정남기
발표 Signal lights-정남기발표 Signal lights-정남기
발표 Signal lights-정남기
 
테스트자동화와 TDD
테스트자동화와 TDD테스트자동화와 TDD
테스트자동화와 TDD
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답
 
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
애자일 게임 개발: 최전선의 이야기(Gamefest 2006)
 

Calculater with pxa - 270

  • 2. 목차 1. 팀원 2. 소개 3. 기간 및 목표 4. 개발 방향 5. 발생한 문제점 및 해결 방안 6. 시연
  • 3. 1. 팀원 SUM Project Team 201001587 서동현 계산기 알고리즘 작성 디바이스 드라이버 총괄 통합 계산기 알고리즘과 디바이스 드라이버 통합 201001637 전지성 CLCD 연구 및 테스트 Key Button 연구 및 테스트 201001647 지강일 Dot Matrix 연구 및 테스트 Button 연구 및 테스트 201001653 최보영 FND 연구 및 테스트 LED 연구 및 테스트
  • 6. 3. 기간 및 목표 2014. 5. 23. ~ 2014. 6. 13. (약 3주) 1주차 설계 및 디바이스 드라이버 코드 분석 5/23, 5/27, 5/28, 5/30 2주차 계산기 알고리즘 작성 및 디바이스 드라이버 코드 수 정 6/2, 6/3, 6/5 3주차 계산기 알고리즘과 디바이스 드라이버 코드를 통합 6/9, 6/10, 6/11
  • 7. 3. 기간 및 목표 clcd fnd Key button Dot Led btn
  • 8. 4. 개발 방향 ListBaseStack : 스택의 활용 부분 InfixToPostfix: 후위 표기법의 수식으로 변환 PostCalculator : 후위 표기법의 수식을 계산 InfixCalculaotr: 중위 표기법의 수식을 계산 Calculator : 계산기 알고리즘의 응용 부분 HisOpen, HisSave, HisNum : 계산기의 히스토리 부분 계산기 알고리즘 Clcd fnd Key button Dot Led btn 디바이스 드라이버
  • 9. 5. 발생한 문제점 및 해결 방안 History 기능 struct history{ int id; char exp[E_MAX_N]; char res[R_MAX_N]; }; if((fread(&record,sizeof(record),1,fp)>0)&&(record.id!=0)) 구조체 파일 포인터 History.txt 1 128+(10+28) 166.0 2 30+50/10 35.0 3 99+1-50*10 -400.0 4 4/4*4/4 1
  • 10. 5. 발생한 문제점 및 해결 방안 소수점 + 한 자리 숫자 이상의 계산 double EvalRPNExp(char exp[LEN]){ · · else if(flag_d==1&&flag_dot!=1){ Double digit=SPop(&stack); SPush(&stack,(digit*10)+tok- '0'); } else if(flag_d==1&&flag_dot==1){ double digit=SPop(&stack); double dot=tok-'0'; for(j=0;j<cnt_dot;j++){ dot/=10; } SPush(&stack,digit+dot); }
  • 11. 5. 발생한 문제점 및 해결 방안 CLCD 두 줄 따로 출력하기 static void string_out(char*str){ · · if(*s=='n'){ udelay(100); *((volatileunsignedchar*)(mem_base_wr))=0xC0; continue; }
  • 12. 5. 발생한 문제점 및 해결 방안 Button과 Key Button의 충돌 int main(int ac,char *av[]){ · · /* Init Thread */ pthread_mutex_init(&mutx,NULL); pthread_create(&t_id,NULL,handle_btn, (void*)&btnFd); · · void * handle_btn(void *arg){ switch(buf){ /* Exit Key */ case1: pthread_mutex_lock(&mutx); btn_flag[0]=1; pthread_mutex_unlock(&mutx); break;

Editor's Notes

  1. PXA – 270을 통하여 사칙연산이 가능한 계산기 제작
  2. 개발환경 (리눅스, 깃허브)
  3. 스택 (연산자 우선순위 구현)