2015년6월27일_토요일_흐림

IMG_20150627_051619IMG_20150627_051636
IMG_20150627_070409IMG_20150627_072819IMG_20150627_092430

매일 성경구절을 노트에 옮겨 적으며 글쓰기 연습을 해보기로함. 언제까지 할지 ㅎㅎ;

어머니께서 김치냉장고에 먼지가 쌓이면 화재위험이 있다고 걱정하셔서 냉장고를 분해해서 청소함. (생각보다 간단)
먼지가 없어서 청소하기 쉬웠고 콤프레샤가 작아서 놀람 ㅎㅎ 작아도 큰 김치통들이 냉장보관 되는구나!

편해서 자주 신는 런닝화를 세탁함. 너무 더러워 냄새가 –_-;
날씨가 흐려서 자주 신문지를 갈아서 물기를 제거하느라 힘들었음. 헉헉!
그리고 집안청소와 청바지로 빰.

IMG_20150627_092449
PANO_20150627_114737
IMG_20150627_114820IMG_20150627_141306

IMG_20150627_160322IMG_20150627_181454
IMG_20150627_181520IMG_20150627_185859

다용도타이머Ver2.0 아날로그디지털변환부 레퍼런스전압을 2.048V로 조정하는 모습. 2mV의 분해능 가짐.
프로그래밍하는 동안 형이 범어사에 물 뜨러가자고 자전거를 정비하심.
자전거 타고 범어사까지 올라가니 평소 운동을 게을리한 나는 너무 힘들어서 핸들조정을 휘청휘청거리다 차와 부딪힐까봐 걱정.
운동해야겠다;;; 형은 시속20km속도로 올라감;; 순식간에;;
형이 아는 약수터는 내가 알고 있는 약수터와 다르다! 범어사 안에서 대나무 숲길로 쭉 올라가야 나옴. (물맛은 대웅전 밑 보다 좋음)
내려가는 길은 천국이다~ 그러나 조심해야됨. 빠른 속도니까 다치면 중상 아니면 사망.
다행이 무사히 귀환 ㅎㅎ

범어사 쪽의 공기가 확실히 좋다. 우리집도 번화가 보다 좋지만 나무가 울창한 범어사에 비할바가 아니다.

IMG_20150627_193628IMG_20150627_195452IMG_20150627_200145

배탈나고 식체에도 굴하지 않고 먹고 싶은 것은 먹고 봄.;; 이러니 병이 빨리 안 낫지!

IMG_20150627_210937IMG_20150627_214627
IMG_20150627_220139IMG_20150627_232812

ADC0에 연결된 가변저항이 타길래 테스터로 찍어보니 ATMEGA32 ADC0채널이 항상 VCC전압이 뜨는 것을 확인!
뜯어 보니 납땜이 미세하게 연결되어 있다. 핀셋으로 제거하니 정상!
오늘 하루 거의 3시간 동안 ADC해서 LCD에 표시하는 코드를 짰다. 결과는 실패!
자동으로 입력단에 연결된 저항에 걸리는 전압을 읽어와 LCD에 갱신해야 하는데 한 번만 변환하고 마는것. 너무 피곤해 잘래 ㅠ.ㅠ)
2011년인가 그 때 열심히 프로그래밍하다 지금이 2015년이니까 4년이나 안 하다 하려니 다시 걸음마단계로 돌아갔음;;
인간의 뇌는 쓰면 쓸 수록 발달하고 안 쓰면 그 부분이 퇴화하는게 맞는갑다!

/* 
	UTimer Ver2 ADC 시험
	
	ADC변환이 처음 한 번만 되고 왜 연속해서 되지 않지?
	오랜만에 코딩해서 코드도 완전 엉망! 부끄부끄~

*/
#include <avr/io.h>
#include "CLCD4bit.h"
#include "delay.h"


int main(void)
{
	unsigned int	uiADCresult;	// 정수
	unsigned char	ucADCresult[5];	// 문자
	char	test = 0;

	/*실행 포트 초기화 */
	DDRA = 0x00;
	DDRB = 0xFF;
	PORTB = 0x00;
	// LCD 초기화
	LCD_INIT();
	
	for(;;)
	{	
		// ADC초기화
		ADMUX = (1 << REFS0);								// 외부AREF핀 = 2.048V, ADC0선택
		ADCSRA = 0xE7;										// ADC Enable, 128분주(@16Mhz) = 125kHz
		delay_ms(100);
		while(!(ADCSRA  & (1 << ADIF)));					// 변환이 완료될 때 까지 기다림.
		uiADCresult = (ADCH << 8) + ADCL;					// ADC값 얻음
		
		// 정수를 문자열로 변환시키는 코드
		ucADCresult[0] = uiADCresult / 1000;				// 천 단위
		uiADCresult = uiADCresult - ucADCresult[0] * 1000;
		ucADCresult[1] = uiADCresult / 100;					// 백 단위
		uiADCresult = uiADCresult - ucADCresult[1] * 100;
		ucADCresult[2] = uiADCresult / 10;					// 십 단위
		uiADCresult = uiADCresult - ucADCresult[2] * 10;
		ucADCresult[3] = uiADCresult;						// 일 단위

		ucADCresult[0] = ucADCresult[0] + 0x30;			// 숫자를 문자로 바꿈.
		ucADCresult[1] = ucADCresult[1] + 0x30;			// 숫자를 문자로 바꿈.
		ucADCresult[2] = ucADCresult[2] + 0x30;			// 숫자를 문자로 바꿈.
		ucADCresult[3] = ucADCresult[3] + 0x30;			// 숫자를 문자로 바꿈.
		ucADCresult[4] = 0x00;								// 문자열의 끝

		
		LCD_Inst(CLCD_INST_CD);
		LCD_Inst(CLCD_INST_RH);
		delay_ms(2);	// HOME명령은 수행시간이 길다.
		
		LCD_Print("ADC =");
		
		// LCD가 제대로 갱신되고 있나 확인용 코드
		if(test == 0)
		{
			LCD_Data('/');
			test = 1;
		}
		else
		{
			LCD_Data('\\');
			test = 0;
		}
		
		LCD_Inst(CLCD_INST_L2);
		LCD_Print(ucADCresult);
		
		// 프로그램이 제대로 돌아가나 확인하는 코드
		if(PORTB)
		{
			PORTB = 0x00;
		}
		else
		{
			PORTB = 0xFF;
		}
		
	} 
	
	return 0;
}

오늘은 누나를 만나진 못 해서 ㅠ.ㅠ 더 아픈 하루였다.