부산IT학원/스마트컨트롤러
-
20140421 (LCD 제어 화면 출력, Single Linked List)부산IT학원/스마트컨트롤러 2014. 4. 21. 10:27
46일차 -------------------------ATMega128 LCD 제어------------------------- - Clear Display화면 지우기 - Excution time명령 실행까지 걸리는 시간이 시간이 흐르기 전에 명령을 보내면 실행이 불가능하다. - Return Home커서를 맨 앞으로 옴김. DB0 자리에 - 는 아무 값이나 상관 없다는 뜻. - Entry ModeI/D (Increase/Decrease) 커서가 움직이는 방향 설정(A_ 글자 오른쪽으로 움직. 1, H, Increase)(_A 글자 왼쪽으로 움직. 0, L, Decrease)S 화면이 움직이는 모드1 set0 no set (기본값으로 할 것) LCD 글자 찍기 실습 화면 소스 - C-------------..
-
20140417 (LCD specification, 연결리스트 치환, 삽입)부산IT학원/스마트컨트롤러 2014. 4. 17. 14:10
44일차 -------------------LCD specification------------------- - LCD의 종류 - LCD를 만지기를 앞서LCD의 설명서를 보고 시작한다.설명서를 보는 방법. 두번째 페이지인데 문서 Revision History는 항상 작성해야 한다고 한다.First issue를 제외한 다음 것부터는 수정내용을 기록함. 기능 및 특성 내부 구조도. 각 핀들 설명인데RS 가 H 일 때와 L 일 때 어떤 기능인지 기억해 둘것. R/W 도 H 일 때와 L 일 때 기능 기억. 프로그래머 기준으로 LCD에 쓰려고 하면 L (Write) 프로그래머 기준으로 LCD에 읽으려 하면 H (Read) 타이밍 그래프라 부른다 (Timing Diagram)현재 Write 모드초기에 RS, R/W..
-
20140416 (LED 실습, #if #ifdef #ifndef #endif #else, 분할 컴파일)부산IT학원/스마트컨트롤러 2014. 4. 16. 14:21
43일차 -------------실 습------------- --- LED 왔다리 갔다리ex) 소스 - main.c#include "smart.h" int main(void) { volatile unsigned int uiCnt; unsigned int uiSign = 0x00; unsigned int uiNum = 0x01; DDRA = 0xFF; while(1) { PORTA = uiNum; DELAY(65000); DELAY(65000); DELAY(65000); DELAY(65000); DELAY(65000); DELAY(65000); PORTA = 0x00; DELAY(65000); if(7 == (uiSign%16) || 15 == (uiSign%16) ) { // 아무기능도 하지 않음. 그..
-
20140415 (define, 연결리스트 링크드리스트)부산IT학원/스마트컨트롤러 2014. 4. 15. 12:46
42일차 ----------------------ATMega128 Memory---------------------- --- ATMega128 메모리 맵어제 보았듯 다시 한 번 더 강조하는 것은 임베디드 프로그래밍을 할때에가장 먼저 봐야 하는 것 중 하나이다.ATMega의 경우 Memory map, register summary 가 따로 있지만다른 것들은 Memory map에 다 같이 나와 있으므로 복잡하다고 한다. - GPIO(General Purpose Register Input Output)32가지 General Purpose Register인 기본적인 LED켜는 등이 Reg를 GPIO라고 부르는데ATMel 사에서 PORT라고 새로운 용어를 만들고GP는 그냥 기억용으로만 사용하고 있다. --- EE..
-
20140414 (ATMega128 내부, 메모리 방식 폰노이만 하바드, 연결리스트, 동적할당)부산IT학원/스마트컨트롤러 2014. 4. 14. 17:53
41일차 --------------------------------- ATMega128 Microcontroller 내부 --------------------------------- - 0 전기가 들어가지 않으면 프로그램 다운로드. 1 전기가 들어가면 내부에 프로그램 실행. - XTAL1, 2 크리스탈(은색 칩), 일정 주파수 발생 - 캐패시터 AC(교류)는 통과 DC(직류)는 막는다. 단위 F - Register Intel 에서는 c로 Reg 조작 불가능 ATMega 에서는 C로 Reg 조작 가능. - 주소는 64Kbyte를 사용하지만 한 주소당 크기는 2byte 이다 그래서 128Kbyte. - 메모리 구조 방식 2가지 폰노이만 단순 느림 하바드 복잡 빠름 - Code 영역은 Flash Memory에..
-
20140411 (용어, Register Summary, volatile, 구조체 복사, 공용체)부산IT학원/스마트컨트롤러 2014. 4. 11. 17:57
40일차 -------------- 용 어 -------------- --- JTAG 디버거 역할. cpu, memory, register등 모니터링 --- Watchdog Timer 스스로 신호를 감지해 시스템에 오류가 났을 시에 시스템을 리셋. --- Brown-out Detection 회로마다 가용전압이 있는데 최고전압을 넘었을 시 회로가 타버리고, 최저전압 밑으로 떨어졌을 시 어떤 장비는 켜있고, 어떤 장비는 깜빡깜빡하고, 어떤 장비는 꺼지는 등으로 오작동을 일으킬 수 있으므로 최저전압 밑으로 떨어질 시 리셋을 시키는 장비. --- RC Oscillator 주파수 발진기. CPU가 동작하도록 일정 주파수를 발생시켜줌 - 수정에 전기를 가하면 수정마다 특정 주파수가 계속 나온다. 딱딱이 : 수정을 ..
-
20140410 (프로그램 실행 구조, AvrStudio4 실행, 구조체 포인터, typedef struct)부산IT학원/스마트컨트롤러 2014. 4. 10. 15:57
39일차 --------------------- 프로그램 실행 구조 --------------------- - PC와 ATMega128의 구조를 보자 우선 PC에서 프로그램이 실행되는 순서를 보자. 소스코드가 실행파일로 바뀌어 HDD에 저장되어 있다가 실행하면 Loader에 의해 Memory로 Loading된다. 그리고 CPU가 그것을 실행한다. H/W와 S/W의 구조는 이렇게 되어있다. H/W 와 같은 자원(키보드, USB, CPU...)들을 제어하는 각각의 Device Driver가 있다. 운영체제에서 Device Driver를 관리한다. 예를 들어 C로 프로그램을 짜는데 키보드에 입력을 받아 그것을 화면에 출력한다는 프로그램을 만들었다면, 운영체제에서 Driver들을 통해 키보드 입력을 제어 하고 ..
-
20140409 (CPU, Microcontroller, RAM, ROM, RISC, CISC, 구조체, #pragma pack)부산IT학원/스마트컨트롤러 2014. 4. 9. 17:34
38일차 ------------ 상 식 ------------ ---------------------------- --- CPU, Microcontroller - CPU는 위의 그림과 같이 core만 있고 RAM, ROM, I/O... 다른 것들은 외부에 있는 개인컴퓨터의 것과 같은 것. - Microcontroller는 칩에 core, SDRAM, EEPRAM,... 등등 다른 것들이 함께 들어 있는 것. ---------------------------- - RAM, ROM 등등 메모리 - RAM (Ramdom Access Memory) 읽기 쓰기가 언제나 가능하다. 휘발성 ( 전기가 끊기면 내용이 다 날아감 ) - ROM (Read Only Memory) 읽기만 가능 비휘발성 ( 전기가 끊겨도 내용..