문제(?)의 종목코드
일단.. 2013년 1월 이후 개정된걸로는
자비부담이 50% / 30% / 0%(면제) 인데

[링크 : http://www.hrd.go.kr/jsp/HRDP/HRDP100/HRDP150/guide/HRDP150_guide.jsp?dept_code=01]


일단 autocad 같은 경우 제품 디자인 쪽으로 속하는 바람에 50% 정도 자비 부담을 해야 한다고 한다.
그런 이유로.. 굳이 내가 하고 싶어 하는 것 중에 하나인 프로그래밍 쪽이라면..
200만원 한도를 채워서 게임 프로그래밍으로 70% 지원 받는게 나을지도..

[링크 : http://www.hrd.go.kr/jsp/HRDP/HRDP100/common/tra_1Detail.jsp?tra_gbn=7&trpr_id=AVA20112000041012...]
Posted by 구차니
하드웨어/Display 장비2013. 12. 29. 10:35
과거처럼 해상도 자체를 합쳐서 쓰는게 아니라
그냥 머랄까.. 윈도우 시스템을 조작해서 두개 화면에 걸쳐 크게 윈도우 크기를 설정해주는 수준?
과거의 dual view를 돌려줘!!! ㅠㅠ




위에서 창으로 디스플레이를 스팬한다고 하여도
nview 아이콘을 통해서만 창으로 디스플레이가 가능하지
윈도우 자체 "최대화"는 모니터 하나만 가득 차게 된다.


Posted by 구차니
2013.12.28 집회가 끝난 오후 5시 광화문에 도착해서
















'개소리 왈왈 > 사진과 수다' 카테고리의 다른 글

여호와의 증인교가 업그레이드!  (2) 2014.01.05
먼가 찜찜했던 유기...견?  (0) 2013.12.31
여의도 불꽃축제 2013  (0) 2013.10.05
가을 하늘  (0) 2013.10.05
고양이의 죽음, 그리고 사체처리  (0) 2013.08.03
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 27. 20:59
학원 알아보러 가는 김에 겸사겸사
세운상가에 가서 개당 1000원에 구매!
16MHz 짜리를 사려고 했으나 없다고 하셔서 이거라도 일단 get!


동일한 모델이 없어서 고민때리다
대충 오실레이터 잡아서 데이터시트 보고 연결!

[링크 : http://devicemart.co.kr/goods/view.php?seq=5679]

ATtiny 3개중에 2개는 살리고
거상인 ATmega8도 살리고 아싸 조으다 조으다 ㅋㅋㅋ

2013/12/20 - [embeded/ATmega/ATtiny (AVR)] - Atmega8 으앙 쥬금!!! ㅠㅠ


+ 이거 전에 다른 ATmega128에서
 while(1) { PORTA = 0xFF; PORTA=0x00; } 

이런 간략한 소스로 8MHz 정도 나오지 않을까.. 라는 소스를 작성해서 해보았느나
접점의 문제인지 클럭이 깔끔하지 않아서 인지.. 인공호흡 실패 ㅠㅠ 
Posted by 구차니
오늘의 퀘스트
  1. 동부고용센터 방문
  2. 컴퓨터 학원(계좌제) 문의
일단 둘다 완료를 했지만 먼가 찜찜한 결론..


계좌제
1. 구직급여 받지 않아도 상관없음
2. 계좌제 선택시 공부할 분야 코드를 하나만 선택 가능(프로그램/디자인/제빵 등등등..)
3. 퇴직처리 되고 내일배움카드 받는데 까지 2달 가량 걸림

그런데 2번은 듣고 보도 못한거라.. 
급 머리가 복잡해졌다. ㅠㅠ


최선을 경우를 쓰려면
비싼 종목을 계좌제로 듣고
취미로 들을건 사비로 듣는게 최고.. (다른 분야일 경우)


암튼.. 여럽다 ㅠㅠ
그리고 회사도 전화해보니
퇴직금은 퇴사 3달 이내에만 주면 된다고 하고
아직까지 퇴사신고 안해놔서 오늘 이야기 하니
어머니께서 병원갔다 약국가신 그 시간에 의료보험 상실크리 -_-


먼가.. 우울하고 우울하다 하.... 

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

임베디드 기사 자격증... 야!!  (0) 2014.01.02
내일배움카드(실업자) 통칭 계좌제  (0) 2013.12.29
공식적으로 백수  (0) 2013.12.06
가슴이 아프구나  (0) 2013.11.27
뇌 과부하  (0) 2013.11.15
Posted by 구차니



잉여 백수라 할일도 없어서 전화를 받는데
전화 내용이 뻔하다랄까.. 


나이
성별
박근혜 정부가 정책운영을 잘하는지
신용카드 선호 브랜드
사용 카드에 대한 만족도
선호 자동차 브랜드 
주유소 연상 브랜드
가장 많이 사용하는 주유소
선호 편의점
선호 화장품 브랜드
해당 화장품 브랜드 만족도
선호 대기업 회장
직업
가족 월 평균 소득
이념적 성향 - 보수/중도/진보
지지 정당 - 새누리/민주당/통진당/정의당/기타
성별 

머.. 이런거 물어는데..
왜 뜬금없이 박근혜와 신용 카드 그리고 소비성향에 대한 걸 물어 보니 싶긴한데


결론!
02-303-4878 번호는 오면 받지 말고 끊어버려!! 돈 아까워!!

검색을 해보니 원링전화!!
끄아아!!! 통화료 나오겠네!! ㅆㅂ!! 5분 30초나 걸리던데!!!!
Posted by 구차니
헐.. 언제부터 이런게 생겼지 ㅋㅋㅋ
현재 테스트에 사용한 버전은 글쓰는 시점 최신버전인
1.8.4 64bit 버전이다.


E 드라이브에 폴더 하나 만들어서
저장소 하나 생성하니 저장소가 생성되었다고 뜨고
아래의 "Create folder strcuture"를 누르고 저장소를 보니


헐?!?! ㅋㅋㅋ
촘 짱인듯?


'프로그램 사용 > Version Control' 카테고리의 다른 글

mercurial SCM  (0) 2014.05.02
git 간편 설명서  (0) 2014.03.06
svn relocate 사용하기  (0) 2013.08.27
svn + apache on ubuntu  (0) 2013.08.27
TortoiseSVN 1.16 과 1.17의 호환성  (0) 2012.09.16
Posted by 구차니
게임/마비노기2013. 12. 26. 11:05
불쌍한 나과장 ㅠㅠ
그런다고 돌아가진 않아 흥!


 
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 25. 00:41


사용부품
[링크 : http://www.us-technology.co.kr/product/product_main.asp?mode=101&smode=9] v3.0 보드
[링크 : http://devicemart.co.kr/goods/view.php?seq=1075057 ] LC1628 (동일 부품 아닐수도 있음)

참고소스
[링크 : http://www.avrprojects.net/attachments/lcdinterface.c]

참고 데이터시트
[링크 : http://www.ganasys.co.kr/kor/support_board2/pds_file/LC1628-BMDWH6Rev1.0.pdf]



lc1628.h
/*******************************************************
	LC1628 definition
*******************************************************/

/***************** position *****************/
#define	CLCD_RS	0x01
#define	CLCD_RW	0x02
#define	CLCD_E	0x04
#define	CLCD_DA	0xF0

/***************** command *****************/
/* RS R/W = 0x00 */
#define CMD_CLS 0x01	// Clear Display
#define CMD_RTH 0x02	// Return HOME
#define CMD_MOD 0x04	// Entry Mode Set
	#define MOD_INC 0x02
	#define MOD_DEC 0x00
	#define MOD_SHL 0x01
	#define MOD_SHR 0x00
#define CMD_DIS 0x08	// Display on/off
	#define DIS_ON  0x04
	#define DIS_CUR 0x02
	#define DIS_BLK	0x01
#define CMD_CUR 0x10	// Cursor or Display Shift
	#define CUR_CUR 0x08
	#define CUR_ALL	0x00
	#define CUR_LEF 0x04
	#define CUR_RIG 0x00
#define CMD_FNC 0x20	// Function Set
	#define FNC_DL8 0x10
	#define FNC_DL4 0x00
	#define FNC_DN2 0x08
	#define FNC_DN1 0x00
	#define FNC_H10	0x04
	#define FNC_H07	0x00
#define CMD_CGA 0x40	// Set CGRAM Address
	#define CRA_ADR 0x3F
#define CMD_DDA 0x80	// Set DDRAM Address

lc1628.c
#include < stdio.h >
#include < avr/io.h >
#include < util/delay.h >
#include "lc1628.h"

#define DEFAULT_DLY	20

static int uart_putchar(char c, FILE *stream)
{
	if (c == '\n') uart_putchar('\r', stream);
	loop_until_bit_is_set(UCSR0A, UDRE);
	UDR0 = c;

  return 0;
}

static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE);


/*************************************************/
void ls1628_write_cmd(char cmd)
{
	/**************************************/
	// set RS & R/W
	PORTC = 0x00;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - high nibble
	PORTC |= (cmd & 0xF0);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);


	/**************************************/
	// set RS & R/W
	PORTC = 0x00;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - low nibble
	PORTC |= ((cmd & 0x0F) << 4);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);
}

void ls1628_write_char(char data)
{
	/**************************************/
	// set RS & R/W
	PORTC = CLCD_RS;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - high nibble
	PORTC |= (data & 0xF0);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);


	/**************************************/
	// set RS & R/W
	PORTC = CLCD_RS;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - low nibble
	PORTC |= ((data & 0x0F) << 4);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);
}

/*************************************************/
void ls1628_cmd_clear()
{
	ls1628_write_cmd(CMD_CLS);
}

void li1628_cmd_setpos(char y, char x)
{
	// y must 0(1st line) or 1(2nd line)
	ls1628_write_cmd(CMD_DDA | (y * 0x40 + x));
}

void ls1628_write_string(char *data)
{
	int idx = 0;

	while(data[idx] != 0x00)
		ls1628_write_char(data[idx++]);
}

/*************************************************/
void init_clcd(void)
{
	_delay_ms(50);
	ls1628_write_cmd(CMD_FNC | FNC_DL4 | FNC_DN2 | FNC_H07);	// fuction set
	PORTC = CLCD_E; // unknown

	_delay_us(80);	 											// 39 us wait
	ls1628_write_cmd(CMD_DIS | DIS_ON | DIS_CUR | DIS_BLK);		// disp on/off control
	_delay_us(80);	 											// 39 us wait
	ls1628_write_cmd(CMD_CLS);									// disp clear
	_delay_ms(2);												// 1.53ms wait
	ls1628_write_cmd(CMD_MOD | MOD_INC | MOD_SHR);				// entry mode set CMD_MOD
	_delay_us(80);
	ls1628_write_cmd(CMD_DDA);
	_delay_us(80);
}

void init_uart0(void)
{
	/* UART0 115200-N-8-1 */
	UBRR0H = 0;
	UBRR0L = 8; // 115k with U2X = 0
	UCSR0A = 0x00; // U2X = 0;
	UCSR0B = 0xD8;
	UCSR0C = 0x06; //Asyncronous - no parity - 1bits(stop) - 8bits(data)

    stdout = &mystdout;

	printf("\n\n\n\n\n");
}

void init_atmega(void)
{
	DDRC = 0xFF;
	PORTC = 0xFF;

	SFIOR = SFIOR | 0x04;

	init_uart0();
}

int main(void)
{
	init_atmega();
	init_clcd();

	li1628_cmd_setpos(0,3);
	ls1628_write_string("Hello World");
	li1628_cmd_setpos(1,0);
	ls1628_write_string("ATmega128 CLCD");

	return 0;
}

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

ATmega8 로 ES-311(HS-311) 서보 제어하기  (2) 2013.12.29
ATtiny2313 / ATmega8 인공호흡!  (0) 2013.12.27
ATmega128 + LC1628 제어하기 2  (0) 2013.12.24
ATmega128 + LC1628 제어하기 1  (0) 2013.12.24
lc1628 예제 소스  (0) 2013.12.20
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 24. 23:54
명령어와 데이터 관련 GPIO 제어루틴

귀찮으니 대충 정리해서
명령어는
Step 1. RS/RW가 동시에 Low로 이동 (40ns delay)
Step 2. E가 High로 이동 / Data 설정(상위 4비트)
Step 3. E가 Low로 이동 (10ns delay)
Step 4. RW 해제
 

Step 5. RS/RW가 동시에 Low로 이동
Step 6. E가 High로 이동 / Data 설정 (하위 4비트) - Step 2 반복
Step 7. E가 Low로 이동 (10ns delay) - Step 3 반복
Step 8. RS/RW가 동시에 High로 이동

DDRAM/CGRAM 데이터는
Step 1. RS는 High RW는 Low로 이동 (40ns delay)
Step 2. E가 High로 이동 / Data 설정(상위 4비트)
Step 3. E가 Low로 이동 (10ns delay)
Step 4. RW 해제
 

Step 5. RS는 High RW는 Low로 이동
Step 6. E가 High로 이동 / Data 설정 (하위 4비트) - Step 2 반복
Step 7. E가 Low로 이동 (10ns delay) - Step 3 반복
Step 8. RS/RW가 동시에 High로 이동


#define	CLCD_RS	0x01
#define	CLCD_RW	0x02
#define	CLCD_E	0x04

#define DEFAULT_DLY	20

void ls1628_write_cmd(char cmd)
{
	/**************************************/
	// set RS & R/W
	PORTC = 0x00;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - high nibble
	PORTC |= (cmd & 0xF0);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);


	/**************************************/
	// set RS & R/W
	PORTC = 0x00;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - low nibble
	PORTC |= ((cmd & 0x0F) << 4);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);
}

void ls1628_write_char(char data)
{
	/**************************************/
	// set RS & R/W
	PORTC = CLCD_RS;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - high nibble
	PORTC |= (data & 0xF0);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);


	/**************************************/
	// set RS & R/W
	PORTC = CLCD_RS;

	// set E clock to high
	_delay_us(DEFAULT_DLY); // 40ns delay
	PORTC |= CLCD_E;

	// data set - low nibble
	PORTC |= ((data & 0x0F) << 4);
	_delay_us(DEFAULT_DLY); // 80ns delay

	// set E clock to low
	PORTC &= (~CLCD_E);
	_delay_us(DEFAULT_DLY); // 10ns delay

	// release RW
	PORTC &= (~CLCD_RW);
}

CLCD 초기화는 아래와 같이 수행해 준다.
그런데.. Function set 이후에 왜 E를 High로 해주어야 하는건지... 이유를 모르겠다!!!
#define CMD_CLS 0x01	// Clear Display
#define CMD_RTH 0x02	// Return HOME
#define CMD_MOD 0x04	// Entry Mode Set
	#define MOD_INC 0x02
	#define MOD_DEC 0x00
	#define MOD_SHL 0x01
	#define MOD_SHR 0x00
#define CMD_DIS 0x08	// Display on/off
	#define DIS_ON  0x04
	#define DIS_CUR 0x02
	#define DIS_BLK	0x01
#define CMD_CUR 0x10	// Cursor or Display Shift
	#define CUR_CUR 0x08
	#define CUR_ALL	0x00
	#define CUR_LEF 0x04
	#define CUR_RIG 0x00
#define CMD_FNC 0x20	// Function Set
	#define FNC_DL8 0x10
	#define FNC_DL4 0x00
	#define FNC_DN2 0x08
	#define FNC_DN1 0x00
	#define FNC_H10	0x04
	#define FNC_H07	0x00
#define CMD_CGA 0x40	// Set CGRAM Address
	#define CRA_ADR 0x3F
#define CMD_DDA 0x80	// Set DDRAM Address

void init_clcd(void)
{
	_delay_ms(50);
	ls1628_write_cmd(CMD_FNC | FNC_DL4 | FNC_DN2 | FNC_H07);	// fuction set
	PORTC = CLCD_E; // unknown

	_delay_us(80);	 											// 39 us wait
	ls1628_write_cmd(CMD_DIS | DIS_ON | DIS_CUR | DIS_BLK);		// disp on/off control
	_delay_us(80);	 											// 39 us wait
	ls1628_write_cmd(CMD_CLS);									// disp clear
	_delay_ms(2);												// 1.53ms wait
	ls1628_write_cmd(CMD_MOD | MOD_INC | MOD_SHR);				// entry mode set CMD_MOD
	_delay_us(80);
	ls1628_write_cmd(CMD_DDA);
	_delay_us(80);
}

'embeded > AVR (ATmega,ATtiny)' 카테고리의 다른 글

ATtiny2313 / ATmega8 인공호흡!  (0) 2013.12.27
ATmega128 + LC1628 제어하기 3  (2) 2013.12.25
ATmega128 + LC1628 제어하기 1  (0) 2013.12.24
lc1628 예제 소스  (0) 2013.12.20
Atmega8 으앙 쥬금!!! ㅠㅠ  (0) 2013.12.20
Posted by 구차니