개소리 왈왈2013. 12. 31. 17:19
효과가 대단했다!!



무슨효과?

지갑이 반토막 나는 효과!!!




으헝헝
수경이랑 뚜껑이랑 팬티랑(!) 지른다음
강습료 내니 빈털털이

+ 2004년도 겨울에 대학 방학당시 수영을 배웠는데 어느덧.. 10년 ㄷㄷ 
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 31. 08:40
역시 눈에 들어 오는게 최고지 ㅋㅋ
ATmega128에는 총 4개
Atmega8에는 총 3개의 timer/counter가 존재한다.

UI상으로는 Timer1/3이 16bit로 사용가능하며
TCNT1/TCNT3은
TCNT1H / TCNT1L 이런식으로 16bit 로 확장되어 있으나
TCNT1이 TCNT1L과 동일 메모리 주소로 설정되어 8bit/16bit로 사용이 가능해진다.
(Atmega8은 Timer3가 없으며 Timer1이 유일한 16bit 타이머이다)





문제는... Timer는 우선순위가 높아야 하는데 Timer3는 UART0 보다 우선순위가 낮으므로
Timer1 번을 이용해서 16bit Timer를 사용하는게 가장 무난한 선택으로 생각된다. (Timer0 8bit를 포기!)

 
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 30. 23:47
메모리나 플래시 용량이 크지 않은 micom 특성상 용량을 줄이기 위해서 발악을 해야하는데
사소한 팁이라고 해야하려나... 

inline void init_timer(void)
{
TCCR0 = 0x04;     // Prescaler 설정
TCNT0 = OVERFLOW - (F_CPU / TICKS_PER_SEC / Prescaler);// 오버플로우에 사용될 초기값
TIMSK = 0x01;     // 오버플로우 인터럽트 허용
}

int main(void)
{
int idx = 0;
int val = 1500;

DDRB = 0xFF;
PORTB = 0x00;

init_timer();
while(1)
{
;
}

return 0;
}

inline 사용시
AVR Memory Usage
----------------
Device: atmega8

Program:     146 bytes (1.8% Full)
(.text + .data + .bootloader)

Data:          2 bytes (0.2% Full)
(.data + .bss + .noinit)
 

inline 사용시
AVR Memory Usage
----------------
Device: atmega8

Program:     160 bytes (2.0% Full)
(.text + .data + .bootloader)

Data:          2 bytes (0.2% Full)
(.data + .bss + .noinit)

정말 사소한 용량 차이이지만 하나하나 쌓이면 은근 커지기에..
나중에 switch 테스트 예정 
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 30. 19:40
아래와 같이 EEMEM 이라는 접두를 이용해서 선언하면 되는데
avr/eeprom.h를 포함해야 한다.
#include <avr/eeprom.h>
EEMEM char test[128]; 

만약 include 하지 않으면 아래와 같은 에러가 발생한다.
 ../servo.c:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'char' 

컴파일 성공시에는 아래와 같이 메시지가 나타나는데
EEPROM 이라는게 추가 되어 나타난다. 
AVR Memory Usage
----------------
Device: atmega8

Program:     392 bytes (4.8% Full)
(.text + .data + .bootloader)

Data:          2 bytes (0.2% Full)
(.data + .bss + .noinit)

EEPROM:      128 bytes (25.0% Full)
(.eeprom) 

[링크 : http://www.nongnu.org/avr-libc/user-manual/group__avr__eeprom.html]
2012/01/03 - [embeded/ATmega/ATtiny (AVR)] - AVR EEPROM / CODE section 관련

Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 30. 17:26
1500us 센터 +-800usec 총 1600usec/180degree
아무래도 타이머를 이용한다고 하여도 16MHz 쓰는 이상
1usec 이상의 해상도는 무리라고 판단된다.

1600usec/180도 = 8usec/1도 
1usec = 0.125도

아무튼.. 계산을 해보니
정수형에 의한 오차가 발생할 수 밖에 없지만
0.1도를 한계(angle resolution)로 주고 0.05도 반올림 하여 사용하는게 전반적인 오차가 적을 것으로 생각된다.

 
Posted by 구차니
스팀은 126개


오리진은 26개


'게임 > 오리진&스팀&유플레이' 카테고리의 다른 글

몰라 걍 질러  (0) 2014.03.10
간만에 지름!! 험블번들 X  (1) 2014.01.16
스팀 연말 할인 시작!!  (0) 2013.12.22
리눅스 스팀 설치!  (0) 2013.12.17
험블번들 점보 번들 언락!  (0) 2013.12.11
Posted by 구차니
embeded/AVR (ATmega,ATtiny)2013. 12. 29. 14:14
걍 귀찮아서.. 날로 먹은 소스코드임
일단 거상인 ATmega8 보드와 엘레파츠에서 이제는 매진되버린(!) 서보 모터를 사용함

[링크 : http://www.eleparts.co.kr/EPX33N6R] ES-311
[링크 : http://www.gersangin.com/shop/goods/goods_view.php?&goodsno=1092&category=] ATmega8

AVR Studio 프로젝트 설정시 ATmega8 과 클럭은 8,000,000 Hz(8MHz)로 설정한다.


퓨즈비트는 귀찮으니.. 내부 RC 8MHz 클럭으로.. 물론 보드에 16MHz 외부 크리스탈 있으니
필요하다면 변경하고 위의 주파수를 설정해주면 된다.


일단.. 가장 중요한건.. 전원이 부족해서 USB 파워로는 안될건 뻔하고..
그렇기에 전원을 분리했더니 그라운드가 달라서 오작동을 한다.(미친듯이 왼쪽으로만 끝까지 가버리는...)
그런 이유로 보드에 인가되는 전원 그라운드와 서보에 인가되는 전원 그라운드를 묶어주어야 한다.
(이러면.. 아날로그노이즈가 타고 오지 않으려나? ㅠㅠ)


일단은 GPIO를 이용해서 간단하게 중앙 - 좌 - 중앙 - 우
왕복시키는 코드이다. 이제 갯수도 늘려봐야 하는데 크앙!
서보 특성상 20ms 주기로 PWM 신호를 보내주고
신호의 길이는 1500usec이 neutral(중앙/센터)
+- 800usec인 700usec / 2300usec 범위에서 제어를 한다.

#include < avr/io.h >
#include < avr/interrupt.h >
#include < util/delay.h >

/******************************************/
int main(void)
{
	int idx = 0;
	int val = 1500;

	DDRB = 0xFF;
	PORTB = 0x00;
	
	while(1)
	{
		for(idx = 0; idx < 50; idx++)
		{
			PORTB = 0xFF;
			_delay_us(1500);

			PORTB = 0x00;
			_delay_us(20000 - 1500);
		}

		for(idx = 0; idx < 50; idx++)
		{
			PORTB = 0xFF;
			_delay_us(700);

			PORTB = 0x00;
			_delay_us(20000 - 700);
		}

		for(idx = 0; idx < 50; idx++)
		{
			PORTB = 0xFF;
			_delay_us(1500);

			PORTB = 0x00;
			_delay_us(20000 - 1500);
		}

		for(idx = 0; idx < 50; idx++)
		{
			PORTB = 0xFF;
			_delay_us(2300);

			PORTB = 0x00;
			_delay_us(20000 - 2300);
		}
	}

	return 0;
}
Posted by 구차니
문제(?)의 종목코드
일단.. 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 구차니