부산IT학원/스마트컨트롤러
-
20140507 (ADCL, ADCH, 광센서 실습, 서적관리 프로그램 구현)부산IT학원/스마트컨트롤러 2014. 5. 7. 12:30
55일차 --------------------ATMega128 ADC-------------------- --- 값이 바뀌지 않은 이유 이전 소스에서 ADCH를 먼저 읽고 ADCL을 읽었다.ADCL을 읽을때, ADC Reg는 ADCH가 읽어질 때까지 업데이트 되지 않는다. 라고 한다.해석이 맞는지 모르겠다;;어쨌든 ADCL 을 먼저 읽고 ADCH를 읽어야 한다고 한다.실습을 해봤는데 잘됐었다.그런데 이전으로 바꿔서 다시 안되게 해봤는데잘된다...;;; 이유를 모르겠지만 다음부터는 ADCL을 먼저 읽고그보다 데이터시트를 잘 봤으면 좋겠다.(영어가 딸려ㅠㅠ) --- 광센서빛의 세기에 따라 저항값이 바뀌는 센서 --- ADLAR RegADLAR Reg 의 값의 크기에 따라 조작하기 편하게 정렬을 하면 좋다. ..
-
20140430 (ADC, 컴파일 -D 옵션, extern, static)부산IT학원/스마트컨트롤러 2014. 4. 30. 15:28
53일차 ----------------------ATMega128 ADC---------------------- --- ADCAnolog to Digital Convert아날로그 신호를 디지털 신호로 변환. - 가청 주파수사람은 보통 16Hz ~ 20,000Hz 사이를 들을 수 있다.전화기가 300Hz ~ 3300Hz 음질을 낸다고 한다. 더 좋은 음질을 내려면 장비 값이 비싸진다. - 아날로그 신호를 디지털 신호로 바꿔지는 과정 - DAC 디지털을 아날로그로 바꾸는 것. - 이제 ATMega128의 ADC를 살펴보러먼저 ATMega128문서의 첫 페이지에서 얻을 수 있는 ADC 정보. - PIN 구성에서 볼 수 있는 정보. - ADC 블럭 조직도 - Prescaler와 변환. - 타이밍도 - ADC 관..
-
20140429 (PC와 시리얼 통신으로 LCD 문자 찍기, 사용자 정의 폰트, fseek, ftell)부산IT학원/스마트컨트롤러 2014. 4. 29. 17:48
51일차 정리 다 했는데.....갑자기 다 날아갔다...... --------------------------------------PC와 시리얼 통신으로 LCD 문자 찍기-------------------------------------- --- PC와 시리얼 통신어제 소스에서 main만 고치면 PC와 시리얼 통신이 되었다.PC에서 키보드를 치면 그대로 LCD에 나왔다. - main.c#include "smart.h" #include "Lcd.h" #include "Usart.h" int main(void) { // Initialization LCD_Init(); Usart_Init(); while(1) { LCD_Data(Usart_Rx()); } return 0; } --- 사용자 정의 폰트 - 소스..
-
20140428 (PC, ATMega128 간 시리얼 통신, fread, fwrite)부산IT학원/스마트컨트롤러 2014. 4. 28. 17:35
51일차 ----------------------------ATMega128 시리얼 통신---------------------------- --- ATMega128 -> PC로 데이터 보내기ex) 소스 - main.c#include "smart.h"#include "Lcd.h" #include "Usart.h" int main(void) { volatile unsigned int uiCnt; // Initialization LCD_Init(); Usart_Init(); LCD_Inst(INST_SET_DDRAM | 0x00); LCD_Str("abcd"); LCD_Inst(INST_SET_DDRAM | 0x40); LCD_Str("1234"); Usart_Str("Hello There~\r\n"); wh..
-
20140425 (UART Reg setting, c언어 파일 입출력, feof)부산IT학원/스마트컨트롤러 2014. 4. 25. 11:17
50일차 ------------------------ATMega128 UART------------------------ ----- UART 통신 UART 통신을 하기 위해 속도데이터 사이즈패리티정지 비트흐름 제어 등을 설정해야 한다. ----- UBRR Reg값으로 속도 설정 속도를 입력하는 방법은 두 가지가 있는데 첫번째로는 표에 명시된 속도를 구하는 공식이 있다. fosc : 동작주파수 (16Mhz) BAUD : 전송 속도 (115200 bps 사용 예정) 우리는 비동기 일반 모드를 사용할 계획이니UBRR = ( fosc / ( 16 * baud ) ) -1 공식을 사용한다. 공식을 사용하지 않고는표를 참고하여 UBRR의 값을 알아낼 수도 있습니다.속도 115200 bps(115.2 kbps)를 사..
-
20140424 (시리얼 통신, USART블럭구조, 파일 입출력)부산IT학원/스마트컨트롤러 2014. 4. 24. 12:46
49일차 -----------------------ATMega128 직렬통신----------------------- - PIN 당 몇 가지 기능을 가지고 있음. 1번 핀은 1가지 기능2, 3번 핀은 3가지 기능 15, 16번 핀은 2가지 기능한가지 기능을 사용 중이면 다른 기능은 사용할 수 없다. - 시리얼 통신 RS-232 (UART 표준)3선 - Tx (Transmitter 송신부) - Rx (Receiver 수신부) - G (Ground) RS-232방식을 사용하는 장비와 통신할 때다른 방식으로 작동하는 장비는 꼭 변환기를 거쳐야장비에 손상을 주지 않고 통신할 수 있다 ATMega128의 경우동기직렬통신(USART)도 가능하게 했다. 동기 통신의 경우 선이 더 추가되니 비용이 비싸지지만속도가 빠르..
-
20140423 (LCD 속도 최적화, 직렬 병렬 통신, USART Reg, 열거형, 파일입출력, read, write)부산IT학원/스마트컨트롤러 2014. 4. 23. 15:47
48일차 ------------------------ATMega128 LCD 제어------------------------ - 소스코드 속도 최적화Timing 그래프에서 각 명령 후 처리시간이 있다.지금 소스에서는 그 시간을 10000, 500 등 충분할 것 같은 시간을넣어 뒀으나, 최적 속도를 맞추는 작업을 한다.LCD마다 속도가 조금씩 다르기에 수치가 다 똑같이 않다. 원본에 블럭친 곳이 수정할 부분.- main.c#include "smart.h" int main(void) { ... } void LCD_Inst(unsigned char ucInst) { volatile unsigned int uiCnt; DDRA = (1
-
20140422 (LCD 코드 최적화, 문자열, 숫자 출력, DDRAM, Cursor or Display option, 링크드리스트 삽입삭제)부산IT학원/스마트컨트롤러 2014. 4. 22. 09:58
47일차 ------------------------ATMega128 LCD 제어------------------------ - 코드 최적화소스 코드에 중복된 부분이 많으니중복된 부분을 지워주는 최적화 - main.c#include "smart.h" int main(void) { LCD_INIT(); Data_a(); while(1); return 0; } void Inst_Clear(void) { volatile unsigned int uiCnt; DDRA = (1