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 구차니
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 구차니