
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
-
69
-
70
-
71
-
72
-
73
-
74
-
75
-
76
-
77
-
78
-
79
-
80
-
81
-
82
-
83
-
84
-
85
-
86


목차
Ⅰ. 서론 2
Ⅱ. 본론 2
1. 하드웨어 2
1) 블록 다이아그램 2
2) MCU 3
3) SD/MMC 카드 16
4) VS1003 19
5) 그래픽 LCD 23
6) 회로도 26
7) 하드웨어 사진 27
2. 소프트웨어 28
1) 순서도 28
2) code 29
Ⅲ. 결론 86
참고문헌 86
Ⅱ. 본론 2
1. 하드웨어 2
1) 블록 다이아그램 2
2) MCU 3
3) SD/MMC 카드 16
4) VS1003 19
5) 그래픽 LCD 23
6) 회로도 26
7) 하드웨어 사진 27
2. 소프트웨어 28
1) 순서도 28
2) code 29
Ⅲ. 결론 86
참고문헌 86
본문내용
ESCRIPTOR* fat_desc,uint8_t* filename);
int8_tfat32_fclose64(FAT32_FAT_DESCRIPTOR* fat_desc, FAT32_FILE_DESCRIPTOR64* fd);
uint8_tfat32_fgetc64(FAT32_FILE_DESCRIPTOR64* fd);
uint8_tfat32_fputc64(FAT32_FILE_DESCRIPTOR64* fd);
int8_tfat32_fprintf64(FAT32_FILE_DESCRIPTOR64* fd, const uint8_t fmt, ...);
int8_tfat32_fscanf64(FAT32_FILE_DESCRIPTOR64* fd, const uint8_t fmt, ...);
int8_tfat32_fputs64(FAT32_FILE_DESCRIPTOR64* fd);
int8_t fat32_fread64(FAT32_FILE_DESCRIPTOR64* fd, uint8_t* buffer, uint16_t length);
int8_t fat32_fwrite64(FAT32_FILE_DESCRIPTOR64* fd,uint8_t* buffer, uint16_t length);
int8_tfat32_seek64(FAT32_FILE_DESCRIPTOR64* fd, uint64_t position);
/**************************************************************************
* *
* Global Variables *
* *
***************************************************************************/
uint8_t buffer[512];// General purpose buffer
/**************************************************************************
* *
* Inline functions *
* *
***************************************************************************/
// C99를 제대로 지원하지 않는 컴파일러는 인라인 함수가 제대로 컴파일 되지 않는 경우가 있다.
// 그런 경우 아래의 함수들에서 "extern inline"키워드를 제거하고 보통의 함수처럼 변경한다.
// Optimization Level이 0인경우 인라인함수를 사용할 수 없다.
extern inline uint32_t get_dword(uint8_t* buffer)
{
uint32_t temp;
temp = ((uint32_t)buffer[3] << 24);
temp += ((uint32_t)buffer[2] << 16);
temp += ((uint32_t)buffer[1] << 8);
temp +=(uint32_t)buffer[0];
return temp;
}
extern inline uint16_t get_word(uint8_t* buffer)
{
uint16_t temp;
temp = ((uint16_t)buffer[1] << 8);
temp +=(uint16_t)buffer[0];
return temp;
}
#endif
(13) global
#ifndef _GLOBAL_H_
#define _GLOBAL_H_
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "ide.h"
#include "mmc.h"
#include "fat32.h"
#include "utils.h"
#include "gui.h"
#include "vs1002.h"
#defineSTATE_SONG_PREV1
#define STATE_SONG_NEXT2
#define STATE_VOLUME_UP3
#define STATE_VOLUME_DOWN4
#define STATE_PLAY5
#define STATE_PAUSE6
#define STATE_STOP7
#define STATE_CONTINUE8
typedef unsigned intuint16_t;
typedef unsigned charuint8_t;
typedef unsigned longuint32_t;
typedef unsigned long long uint64_t;
typedef signed intint16_t;
typedef signed charint8_t;
typedef signed longint32_t;
typedef signed long long int64_t;
// Global Variables
extern volatile uint32_t global_time_tick;
extern volatile uint8_tkey;
extern uint16_t vs1002_current_volume;
extern volatileuint8_tflag_sd_card_present;
extern volatile GUI_DATAgui_data;
#define USE_ADC
#endif
Ⅲ. 결 론
학부생으로써 마지막 작품이므로 최선을 다해 준비를 하였다. 다소 생소한 부품들을 다루어야 해서 많은 고생을 하였지만 하나씩 스스로 공부하여 알아감으로써 많은 성취감과 지식을 얻을 수 있었다. 특히 c언어에 약해 코딩하는데 많은 어려움이 있었지만, 다른 한편으로는 나의 약점을 알 수 있는 계기이기도 했다. c언어의 중요성을 다시 한번 실감하고 부족한 부분을 공부할 수 있는 좋은 기회였다. 졸업을 앞두고 팀원들간의 좋은 경험과 멘토님께서 주신 값진 지식을 얻을 수 있어 참으로 뜻 깊은 프로젝트였다.
Ⅳ. 참고문헌
1. MP3 Player 제작과 함께하는 ATmega128 마이크로컨트롤러 (이무영/이장식/이상진 공저)
2. 구글, 네이버등 각종 검색 사이트
int8_tfat32_fclose64(FAT32_FAT_DESCRIPTOR* fat_desc, FAT32_FILE_DESCRIPTOR64* fd);
uint8_tfat32_fgetc64(FAT32_FILE_DESCRIPTOR64* fd);
uint8_tfat32_fputc64(FAT32_FILE_DESCRIPTOR64* fd);
int8_tfat32_fprintf64(FAT32_FILE_DESCRIPTOR64* fd, const uint8_t fmt, ...);
int8_tfat32_fscanf64(FAT32_FILE_DESCRIPTOR64* fd, const uint8_t fmt, ...);
int8_tfat32_fputs64(FAT32_FILE_DESCRIPTOR64* fd);
int8_t fat32_fread64(FAT32_FILE_DESCRIPTOR64* fd, uint8_t* buffer, uint16_t length);
int8_t fat32_fwrite64(FAT32_FILE_DESCRIPTOR64* fd,uint8_t* buffer, uint16_t length);
int8_tfat32_seek64(FAT32_FILE_DESCRIPTOR64* fd, uint64_t position);
/**************************************************************************
* *
* Global Variables *
* *
***************************************************************************/
uint8_t buffer[512];// General purpose buffer
/**************************************************************************
* *
* Inline functions *
* *
***************************************************************************/
// C99를 제대로 지원하지 않는 컴파일러는 인라인 함수가 제대로 컴파일 되지 않는 경우가 있다.
// 그런 경우 아래의 함수들에서 "extern inline"키워드를 제거하고 보통의 함수처럼 변경한다.
// Optimization Level이 0인경우 인라인함수를 사용할 수 없다.
extern inline uint32_t get_dword(uint8_t* buffer)
{
uint32_t temp;
temp = ((uint32_t)buffer[3] << 24);
temp += ((uint32_t)buffer[2] << 16);
temp += ((uint32_t)buffer[1] << 8);
temp +=(uint32_t)buffer[0];
return temp;
}
extern inline uint16_t get_word(uint8_t* buffer)
{
uint16_t temp;
temp = ((uint16_t)buffer[1] << 8);
temp +=(uint16_t)buffer[0];
return temp;
}
#endif
(13) global
#ifndef _GLOBAL_H_
#define _GLOBAL_H_
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "ide.h"
#include "mmc.h"
#include "fat32.h"
#include "utils.h"
#include "gui.h"
#include "vs1002.h"
#defineSTATE_SONG_PREV1
#define STATE_SONG_NEXT2
#define STATE_VOLUME_UP3
#define STATE_VOLUME_DOWN4
#define STATE_PLAY5
#define STATE_PAUSE6
#define STATE_STOP7
#define STATE_CONTINUE8
typedef unsigned intuint16_t;
typedef unsigned charuint8_t;
typedef unsigned longuint32_t;
typedef unsigned long long uint64_t;
typedef signed intint16_t;
typedef signed charint8_t;
typedef signed longint32_t;
typedef signed long long int64_t;
// Global Variables
extern volatile uint32_t global_time_tick;
extern volatile uint8_tkey;
extern uint16_t vs1002_current_volume;
extern volatileuint8_tflag_sd_card_present;
extern volatile GUI_DATAgui_data;
#define USE_ADC
#endif
Ⅲ. 결 론
학부생으로써 마지막 작품이므로 최선을 다해 준비를 하였다. 다소 생소한 부품들을 다루어야 해서 많은 고생을 하였지만 하나씩 스스로 공부하여 알아감으로써 많은 성취감과 지식을 얻을 수 있었다. 특히 c언어에 약해 코딩하는데 많은 어려움이 있었지만, 다른 한편으로는 나의 약점을 알 수 있는 계기이기도 했다. c언어의 중요성을 다시 한번 실감하고 부족한 부분을 공부할 수 있는 좋은 기회였다. 졸업을 앞두고 팀원들간의 좋은 경험과 멘토님께서 주신 값진 지식을 얻을 수 있어 참으로 뜻 깊은 프로젝트였다.
Ⅳ. 참고문헌
1. MP3 Player 제작과 함께하는 ATmega128 마이크로컨트롤러 (이무영/이장식/이상진 공저)
2. 구글, 네이버등 각종 검색 사이트
추천자료
제57회 정보통신기술사시험 문제해설4교시
멀티미디어에 관한 자료
사운드 에디터 골드웨이브 활용
[ICANN]국제인터넷주소관리기구(ICANN) 등장배경,구조, 국제인터넷주소관리기구(ICANN) 위상...
대기업(삼성, LG, 현대, 대우)들의 경영철학과 역할
애플 vs 구글
애플에대해서
[마케팅 전략기획서] 아이스테이션 (i-station)
아이리버(iriver) 마케팅, 성공사례, 마케팅전략, 성공전략, 경영전략분석, 기업소개 및 역사...
과학과 생활환경 과제
모바일 멀티미디어 서비스 컨텐츠 발전방향
[A+] [공학윤리사례] 애플 iPod 폭발 사고 윤리경영 아이팟 배터리 리튬이온폴리머 전지 ...
애플의 마케팅
소개글