목 차1. Bitmap Raster for Text 비트맵 텍스트 문자 변형2. alpha3D, alpha, model 실행 결과 확인3. 각각의 프로그램 소스 분석4. 각각의 결과를 변형5. 참 조1. Bitmap Raster for Text 비트맵 텍스트 문자 변형#include #include GLubyte rasters[24] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,0x00, 0xc0, 0x00, 0xff, 0x00, 0xff, 값 변형 < 변형 결과 >0x00, 0xc0, 0x00, 0xc0, 0x00, 0xc0,0x00, 0xff, 0xff, 0xff, 0xff};void init(void){glPixelStorei (GL_UNPACK_ALIGNMENT, 1);glClearColor (0.0, 0.0, 0.0, 0.0);}void display(void){glClear(GL_COLOR_BUFFER_BIT);glColor3f (1.0, 1.0, 1.0);glRasterPos2i (20, 20);glBitmap (10, 12, 0.0, 0.0, 11.0, 0.0, rasters);glBitmap (10, 12, 0.0, 0.0, 11.0, 0.0, rasters);glBitmap (10, 12, 0.0, 0.0, 11.0, 0.0, rasters);glFlush();}void reshape(int w, int h){glViewport(0, 0, (GLsizei) w, (GLsizei) h);glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho (0, w, 0, h, -1.0, 1.0);glMatrixMode(GL_MODELVIEW);}void keyboard(unsigned char key, int x, int y){switch (key) {case 27:exit(0);}}int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutInitWindowSize(100, 100);glutInitWindowPosition(100, 100);glutCreateWindow(argv[0]);init();glutReshapeFunc(reshape);glutKeyboardFunc(keyboard);glutDisplayFunc(display);glutMainLoop();return 0;}2. alpha3D, alpha, model 실행 결과 확인① alpha3D 결과< 초기 실행 > < A키 입력 > < R키 입력 >② alpha 결과< 초기실행 > < T키 입력 >③ model 결과< 초기 실행 >3. 각각의 프로그램 소스 분석① alpha 프로그래밍 소스 분석#include // glut 헤더 파일 첨부#include // stdlib 헤더 파일 첨부static int leftFirst = GL_TRUE; // 키를 눌러 삼각형의 위아래를 바꿀때 쓰이는 전역변수 초기값으로 GL_TRUE을 가진다static void init(void) // 전달인자가 없는 init라는 전역함수로써 리턴값이 없음{glEnable(GL_BLEND); // 블렌딩 효과를 사용함glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // 객체의 투명도를 조절하기 위한 함수glShadeModel (GL_FLAT); // Flat Shading으로 설정한다glClearColor (0.0, 0.0, 0.0, 0.0); // 창을 만들때 사용되는 색을 지정(검정색)}static void drawLeftTriangle(void) // 왼쪽 삼각형을 그리기 위한 함수{glBegin (GL_TRIANGLES); // 삼각형을 그리기 위한 정점 그룹의 시작을 표시glColor4f(1.0, 1.0, 0.0, 0.75); // 삼각형의 노란색과 투명정도(0.75)를 정함glVertex3f(0.1, 0.9, 0.0); // x좌표 0.1, y좌표가 0.9인 점glVertex3f(0.1, 0.1, 0.0); // x좌표 0.1, y좌표가 0.1인 점glVertex3f(0.7, 0.5, 0.0); // x좌표 0.7, y좌표가 0.5인 점glEnd(); // 정점 목록의 종료를 표시}static void drawRightTriangle(void) // 오른쪽 삼각형을 그리기 위한 함수{glBegin (GL_TRIANGLES); // 삼각형을 그리기 위한 정점 그룹의 시작을 표시glColor4f(0.0, 1.0, 1.0, 0.75); // 삼각형의 청녹색과 투명정도(0.75)를 정함glVertex3f(0.9, 0.9, 0.0); // x좌표 0.9, y좌표가 0.9인 점glVertex3f(0.3, 0.5, 0.0); // x좌표 0.3, y좌표가 0.5인 점glVertex3f(0.9, 0.1, 0.0); // x좌표 0.9, y좌표가 0.1인 점glEnd(); // 정점 목록의 종료를 표시}void display(void) // 전체적인 화면표시를 위한 함수{glClear(GL_COLOR_BUFFER_BIT); // 컬러버퍼를 지우기 위한 함수if (leftFirst) { // t키를 입력하지 않았을 때 실행되는 루프drawLeftTriangle(); // 왼쪽 삼각형을 먼저 그리고drawRightTriangle(); // 오른쪽 삼각형을 그림, 처음에는 오른쪽 청록색 삼각형이 위에 올라와 있음}else { // t키를 입력하면 실행되는 루프drawRightTriangle(); // 오른쪽 삼각형을 먼저 그리고drawLeftTriangle(); // 왼쪽 삼각형을 표시, 처음과 반대로 왼쪽 노란 삼각형이 위에 올라와 있음}glFlush(); // 화면을 갱신함}void reshape(int w, int h) //윈도우 창의 크기를 변화시키면 그 크기에 맞추어 표시대상의 크기를 변화시키는 함수{glViewport(0, 0, (GLsizei) w, (GLsizei) h); // 전체 윈도우의 뷰포트를 정함glMatrixMode(GL_PROJECTION); // 현재 형렬을 PROJECTION로 지정함glLoadIdentity(); // 지정된 행렬로 다시 맞춤if (w
마이크로프로세서 ARM7회로도 분석● POWERVDDIN(Voltage Regulator Power Supply Input) - 전압입력VDDIO - I/O Lines Power Supply - 라인 파워 입력VDDCORE - Core Power Supply - 코어파워 입력VDDOUT(Voltage Regulator Output) - 전압출력VDDFLASH - Flash Power Supply - 전압입력GND - Ground● Flash MemoryFlash Memory - 지속적으로 전원이 공급되는 비 휘발성 메모리이다. 블록단위로 내용을지울 수도 있고, 다시 프로그램 할 수도 있어서 EEPROM보다 속도가 빠르다. PC의 바이어스와 같은 제어코드를 저장하는데 사용한다. 일반 RAM처럼 유용하지 못한 이유는, RAM 은 블록이 아닌 바이트 단위의 주소지정이 가능하기 때문이다.ERASE - Flash 와 NVM의 구성비트들의 삭제 요청, 입력값이 High 일 경우 레지스터 의 값을 PULL-DOWN 시킴Reset/Test1. 세부 핀들의 기능NRST - Microcontroller Reset, 입출력 가능, 입력값이 LOW일 경우 레지스터를 Pull-up 시킨다.TST - 테스트 모델을 선택하는 입력신오. 레지스터를 Pull-Down 시킨다.Debug Unit2. 세부 핀들의 기능DRXD - 디버그 데이터를 입력받는다.DTXD - 디버그 데이터를 출력한다.AIC1. ACI - Adjacent Channel Interference, 인접한 채널들 간의 간섭 현상을 말한다.2. 세부 핀들의 기능IRQ0, IRQ1 - 외부 인터럽트 입력 신호FIQ - 빠른 인터럽트 입력 신호PIO1. PIO - Parallel Input Output, 데이터 전송에서, 각각의 비트들이 고유의 전선을사용하여 동시에 입출력이 수행되는 방식.2. 세부 핀들의 기능PA0~PA31 - 평행 IO 컨트롤러 A, 입출력 모두 수행, 리셋 시 입력 신호를 Pull-UpUSB Device Port1. 세부 핀들의 기능DDM - USB 데이터 연결 선DDP - USB 데이터 연결 선USART1. USART - Universal Synchronous Asynchronous Receiver Transmitter범용 동기 송수신기로, 이들은 동기 및 비동기 전송 모드에서 전이중 통신이가능하고, 높은 정밀도의 보레이트 발생기(Baud Rate Generator)를 내장하고 있다.2. 세부 핀들의 기능SCK0,SCK1 - 시리얼 클락의 입출력TXD0,TXD1 - 비동기식 직렬 통신 장치가 외부 장치로 정보를 보낼때 직렬 통신 데이 터가 나오는 신호선이다RXD0,RXD1 - 외부 장치에서 들어오는 직렬 통신 데이터를 입력받는 신호선이다.RTS0,RTS1 - 컴퓨터와 같은 DTE 장치가 모뎀 또는 프린터와 같은 DCE장치에게데이터를 받을 준비가 됐음을 나타내는 신호선이다.CTS0,CTS1 - Clear To Send, 데이터를 수신할 준비가 되면 작동하는 회선DCD1 - 데이터 캐리를 감지하는 입력신호DTR1 - Data Terminal Ready, DTE가 데이터를 보내거나 받을 준비가 되면 그 상태 를 전달DSR1 - Data Set Ready, DCE에 전원이 공급돼 사용할 수 있는 상태가 되면 작동이되는 인터페이스 회선.RI1 - 상대편 모뎀이 통신을 하기위해서 먼저 전화를 걸어 오면 전화 벨이 울리게 된다.이때 이 신호를 모뎀이 인식하여 컴퓨터 또는 터미널에 알려주는 신호이며 일반적으로 컴퓨터가 이 신호를 받게 되면 전화벨 신호에 응답하는 프로그램을 인터럽터 등을 통해서 호출하게 된다.Synchronous Serial Controller1. 세부 핀들의 기능TD - Transmit Data, 데이터 전송RD - Receive Data, 데이터 수신TK - 클락 전송RK - 클락 수신TF - 전송 프레임 동기화RF - 수신 프레임 동기화Timer/Counter1. 세부 핀들의 기능TCLK0~TCLK2 - 외부 클락 신호 입력TIOA0~TIOA2 - 입. 출력 라인TIOB0~TIOB2 - 입, 출력 라인PWM Controller1. PWM - Pulse Width Modulation, 입력 전압의 진폭정보를 일정한 전압의 펄스폭으로변조 해 준다.2. 세부 핀들의 기능PWM0~PWM3 - 주파수 대역 폭을 제어 하는 채널SPI1. SPI - Serial Peripheral Interface, 직렬 주변 장치 인터페이스ATmega163과 주변장치 또는 여러 개의 ATmega163 간의 고속의 동기적데이터 전송을 할 수 있게 한다.2. 세부 핀들의 기능MISO - 주장치 입력/종속 장치 출력MOSI - 주장치 출력/종속 장치 입력SPCK - SPI Clock, SPI 통신을 사용하기 위해 사용하는 클럭 신호NPCS0 - SPI Peripheral Chip Select 0, SPI 통신시 다른 주변장치와 연결시키는 핀NPCS1~3 - SPI의 동작을 허가 하는 선택 핀Two-Wire Interface1. Two-Wire Interface - 보드내의 칩과 칩사이의 통신 프로토콜로 2라인 시리얼 통신 규격이다.2. 세부 핀들의 기능TWD - Two-Wire에서 데이터의 입출력을 담당하는 핀TWCK - Two-Wire에서 클럭의 입출력을 담당Analog-to-Digital Converter1. ADC - Analog-to-Digital Converter 아날로그 신호를 디지털 신호로 바꾸어 주는 변환장치로, 연속적인 값을 표현하는 아날로그 형태로 구성된 신호를 입력 받아서 이산적인 양의 값을 표현하는 디지털 형태의 신호로 변환하여 주는 장치이다.2. 세부 핀들의 기능AD0~AD3 - 아날로그 신호를 입력받아 디지털 신호로 Pulled-upAD4~AD7 - 아날로그 신호를 입력 받는 핀ADTRG - ADC Trigger, 변환기의 트리거 신호를 입력받아 상태를 변환ADVREF - ADC Reference, Reference값을 지정해두어 아날로그 입력 값을 그 값에맞는 비율로 조정Fast Flash Programming Interface1. 세부 핀들의 기능PGMEN0,PGMEN1 - Flash Programming 이 가능하도록 권한을 부여PGMM0~PGMN3 - Programming 모드를 선택PGMD0~PGMD15 - Programming에 이용할 데이터 입출력PGMRDY - Programming 준비 신호 출력PGMNVALID - 데이터의 명령 등을 출력PGMNOE - 입력 데이터를 읽음PGMCK - Programming 클럭 신호 입력PGMNCMD - Programming의 권한을 관리Clocks, Oscillators and PLLs1. Oscillators - 발진기, 주기를 가지는 어떤 신호를 발생시키는 장치2. PLL - Phase Locked Loop, 위상동기루프로 위상을 동기시켜 언제나 발진주파수가일정하게 되도록 한다.3. 세부 핀 들의 기능XIN - Main Oscillator InputXOUT - Main Oscillator OutputPLLRC - PLL FilterPCK0 ~ PCK 2 - Programmable Clock OutputICE and JTAG1. ICE - in-circuit emulator, 마이크로 프로세서를 모니터링 할 수 있게 해 주는 장치2. JTAG - Joint Test Action Group, 연결 된 장치가 제대로 동작하는지 확인 해주는 하드웨어