MSP430 클럭은 ACLK, MCLK, SMCLK로 구분된다.
ACLK는 외부클럭을(32.768KHz) 사용하고 있다.
MCLK, SMCLK는 내부 DCO를 사용하고 있으며 기본 4MHz 동작하며
최대 8MHz까지 설정이 가능하다.
TinyOS를 사용하는 경우 클럭 설정은
/opt/tinyos-1.x/tos/platform/msp430/MSP430ClockM.nc
에서 확인 및 설정할 수 있다.
2009년 7월 27일 월요일
강의에 대한 10가지 이야기.
1. 처음부터 강의를 하지 않는다.
먼저 강의자와 청강자는 처음 보는 사람이다.(처음 보는 사람이 아니라도 그 강의를 시작하는데 있어서는 항상 처음이라 할 수 있다.) 무턱대고 강의를 시작하자면 둘다 준비된 상태가 아니기 때문에 강의의 내용이 바로 귀에서 머리로 전달되는데는 시간이 필요하다. 당신의 목소리가 청강자의 귀에 익숙해질 시간이 필요하다. 기기를 작동할때도 30분간 미리 작동을 시키고 실험을 할때도 예비가열을 하듯이 당신의 목소리에 익숙하질 시간이 필요하다. 간단한 자기소개로 우선 말을 꺼내고 (갑자기 봄이 와서 옷입기가 난감하다는지. 오는데 전철에서 이상한 변태를 보았다는지 등의 흔히 접하고 누구나 공감하지만 재미있는 화재) 언급한후 강의를 시작한다.
2.목차와 중요성 언급
강의를 하는데 어떠한 순서에 의해 이야기를 할것인지 이야기하고, 이 강의의 중요성에 대해 언급한다.
3. 산을 본후 나무를 보자.
내용은 전반적인 흐름을 먼저 이야기한 다음 세부사항으로 들어가도록 한다. 하나하나 세부사항을 먼저 언급하다보면 머리에 개념을 잡기 어려우니 포괄적인 면을 먼저 설명후 세부사항으로 들어가도록 한다. 세부사항을 설명할 때는 적절한 예를 제시하여 이해가 쉽게 되도록 한다.
4. 단락이 나누어지는 지점에서 확인 절차
1단계에서 2단계로 설명이 들어가기 전 지금까지 어떠한 부분에 대해 설명을 하였고, 여기서 잊어서는 안될 부분에 대해 한번씩 집고 넘어간다. 전체를 다 설명한 후에는 다시 한번 목차에 대해 언급을 하며, 오늘 강의 내용에 대해 청강자와 함께 정리하는 순서를 가진다. 설명한 내용에 대해 단락이 끝날때 요점을 정리하라 말했었는데, 청강자의 답변을 기다려서 강의에 참여할 수 있게 한다.
5. 질문을 받는다.
당신의 능력을 보여줄 차례이다. 그런데 혹시 난감한 질문이 들어온다면 아주 좋은 질문이라고 말한후 대략적 설명만 한 후 내용이 너무 길고 할당된 시간으로 인해 메일로 보내주시면 답변을 드리겠다는 식으로 위기를 모면해라.
6. 시간을 잘쪼개자.
명강의자의 경우에는 단락별 시간을 딱딱 나누어 설명한다. 그러나 흐름이 깨지지 않도록 하기 위해 세심한 부분도 유념하기도 한다.
7. 말로 전부 강의를 하려고 하지마라.
시각적 효과도 필요하다. 빈공간을 채우기도 힘들고 빈공간에 다 채우자면 너무 지루하고 괴롭다. 공감각적이면 더욱 좋겠다. 만질 수 있고 볼 수 있는것 말이다. 시각적인 표현은 슬라이드나, OHP를 사용하는데 OHP를 사용할 경우 너무 문자가 많고 디테일하기보다 계략적인 부분만 보여주고 나머지는 말로 설명한다. 결론적으로 말하자면 OHP는 키워드 중심으로 만든다. 공감각적 표현은 설명하는 내용에 관련된 제품을 보여주고 돌아가면서 자세히 볼 수 있도록 하는 방법 인데 자칫 잘못하면 강의가 어수선해질수 있으니 조심해야한다.
8. 강의자의 목소리 톤도 중요하다.
솔음이 가장 좋다고 하지만 그렇다고 억지로 올려서 서비스 직원이 된듯하게 될 경우라면 그냥 원래대로 해라. 하지만 목소리는 커야 한다. 부가적으로 의상과 인상도 추가된다.
9. 멘트를 작성한 다음 혼자 강의를 해봐라.
멘트만 보고 강의하는 자는 정말 매력없다. 강의의 흐름과 지식은 이미 알고 있는 상태이니청강자와 눈을 마주치며 강의 하도록 하자. 어떤 사람은 혼자 빈강의실에서 강의를 했다는 사람도 있다. 글로 작성한 것과 말로 표현하는 것은 조금 다르다. 작성후 혼자 꼭 !!! 강의해봐라.
10. 예시
안녕하세요. 저는 오늘 어려분에게 알파벳에 대해 강의를 하게된 파직스입니다. 오늘 날씨 너무 좋죠? 이런 날 벗꽃 구경이라도 가야 하는데 여러분들도 마음이 싱숭생숭하시겠지만 놀러가지 못하고 강의 준비하느라 노력한 착하고 불쌍한 저를 위해 경청해 주실거라 믿고 강의 시작하겠습니다. (이보다 길게 맨트를 준비한다. 약 5~10분정도로 이 작업이 목풀기 작업)아까 말씀 드렸던 바와 같이 오늘 저는 알파벳이라는 것에 대해 강의를 하겠습니다. 알파벳은 영어를 하려는 최소의 단위로 영어의 구성원이라 할수 있겠지요. 조금 말이 어렵지요? 예를 들어 ...
먼저 강의자와 청강자는 처음 보는 사람이다.(처음 보는 사람이 아니라도 그 강의를 시작하는데 있어서는 항상 처음이라 할 수 있다.) 무턱대고 강의를 시작하자면 둘다 준비된 상태가 아니기 때문에 강의의 내용이 바로 귀에서 머리로 전달되는데는 시간이 필요하다. 당신의 목소리가 청강자의 귀에 익숙해질 시간이 필요하다. 기기를 작동할때도 30분간 미리 작동을 시키고 실험을 할때도 예비가열을 하듯이 당신의 목소리에 익숙하질 시간이 필요하다. 간단한 자기소개로 우선 말을 꺼내고 (갑자기 봄이 와서 옷입기가 난감하다는지. 오는데 전철에서 이상한 변태를 보았다는지 등의 흔히 접하고 누구나 공감하지만 재미있는 화재) 언급한후 강의를 시작한다.
2.목차와 중요성 언급
강의를 하는데 어떠한 순서에 의해 이야기를 할것인지 이야기하고, 이 강의의 중요성에 대해 언급한다.
3. 산을 본후 나무를 보자.
내용은 전반적인 흐름을 먼저 이야기한 다음 세부사항으로 들어가도록 한다. 하나하나 세부사항을 먼저 언급하다보면 머리에 개념을 잡기 어려우니 포괄적인 면을 먼저 설명후 세부사항으로 들어가도록 한다. 세부사항을 설명할 때는 적절한 예를 제시하여 이해가 쉽게 되도록 한다.
4. 단락이 나누어지는 지점에서 확인 절차
1단계에서 2단계로 설명이 들어가기 전 지금까지 어떠한 부분에 대해 설명을 하였고, 여기서 잊어서는 안될 부분에 대해 한번씩 집고 넘어간다. 전체를 다 설명한 후에는 다시 한번 목차에 대해 언급을 하며, 오늘 강의 내용에 대해 청강자와 함께 정리하는 순서를 가진다. 설명한 내용에 대해 단락이 끝날때 요점을 정리하라 말했었는데, 청강자의 답변을 기다려서 강의에 참여할 수 있게 한다.
5. 질문을 받는다.
당신의 능력을 보여줄 차례이다. 그런데 혹시 난감한 질문이 들어온다면 아주 좋은 질문이라고 말한후 대략적 설명만 한 후 내용이 너무 길고 할당된 시간으로 인해 메일로 보내주시면 답변을 드리겠다는 식으로 위기를 모면해라.
6. 시간을 잘쪼개자.
명강의자의 경우에는 단락별 시간을 딱딱 나누어 설명한다. 그러나 흐름이 깨지지 않도록 하기 위해 세심한 부분도 유념하기도 한다.
7. 말로 전부 강의를 하려고 하지마라.
시각적 효과도 필요하다. 빈공간을 채우기도 힘들고 빈공간에 다 채우자면 너무 지루하고 괴롭다. 공감각적이면 더욱 좋겠다. 만질 수 있고 볼 수 있는것 말이다. 시각적인 표현은 슬라이드나, OHP를 사용하는데 OHP를 사용할 경우 너무 문자가 많고 디테일하기보다 계략적인 부분만 보여주고 나머지는 말로 설명한다. 결론적으로 말하자면 OHP는 키워드 중심으로 만든다. 공감각적 표현은 설명하는 내용에 관련된 제품을 보여주고 돌아가면서 자세히 볼 수 있도록 하는 방법 인데 자칫 잘못하면 강의가 어수선해질수 있으니 조심해야한다.
8. 강의자의 목소리 톤도 중요하다.
솔음이 가장 좋다고 하지만 그렇다고 억지로 올려서 서비스 직원이 된듯하게 될 경우라면 그냥 원래대로 해라. 하지만 목소리는 커야 한다. 부가적으로 의상과 인상도 추가된다.
9. 멘트를 작성한 다음 혼자 강의를 해봐라.
멘트만 보고 강의하는 자는 정말 매력없다. 강의의 흐름과 지식은 이미 알고 있는 상태이니청강자와 눈을 마주치며 강의 하도록 하자. 어떤 사람은 혼자 빈강의실에서 강의를 했다는 사람도 있다. 글로 작성한 것과 말로 표현하는 것은 조금 다르다. 작성후 혼자 꼭 !!! 강의해봐라.
10. 예시
안녕하세요. 저는 오늘 어려분에게 알파벳에 대해 강의를 하게된 파직스입니다. 오늘 날씨 너무 좋죠? 이런 날 벗꽃 구경이라도 가야 하는데 여러분들도 마음이 싱숭생숭하시겠지만 놀러가지 못하고 강의 준비하느라 노력한 착하고 불쌍한 저를 위해 경청해 주실거라 믿고 강의 시작하겠습니다. (이보다 길게 맨트를 준비한다. 약 5~10분정도로 이 작업이 목풀기 작업)아까 말씀 드렸던 바와 같이 오늘 저는 알파벳이라는 것에 대해 강의를 하겠습니다. 알파벳은 영어를 하려는 최소의 단위로 영어의 구성원이라 할수 있겠지요. 조금 말이 어렵지요? 예를 들어 ...
2009년 7월 22일 수요일
enum으로 선언한 변수의 값
enum은 상수 열거형 지시어다.
그 안에 상수정의가 특별한 값에 대입되어 있지 않다면 0부터 차례대로 자연수의 값을 갖는다.
또한, enum{}으로 선언한 변수는 컴파일러에서 16비트로 기억된다. 즉, int16_t로 선언된다.
enum {TIME = 61440}; 으로 하고 컴파일을 하게 되면 "warning: decimal constant is so large that it is unsigned" 라는 주의 메시지가 뜬다. 해당 값이 int16_t 에 담기에는 너무 크다고...
컴파일러는 똑똑해서 자기가 알아서 unsigned로 바꿔준다.
하지만 이게 보기 싫다면 해당 값의 끝에 "U"를 붙여 주면된다.
enum {TIME = 61440U};
이렇게 하면 unsigned라고 미리 알려주므로 warning은 뜨지 않는다. 보다 큰 숫자를 입력하고 싶다면 마찬가지로 해당 값의 끝에 "L"을 붙여 사용하도록 한다.
enum {TIME = 6144000L};
그 안에 상수정의가 특별한 값에 대입되어 있지 않다면 0부터 차례대로 자연수의 값을 갖는다.
또한, enum{}으로 선언한 변수는 컴파일러에서 16비트로 기억된다. 즉, int16_t로 선언된다.
enum {TIME = 61440}; 으로 하고 컴파일을 하게 되면 "warning: decimal constant is so large that it is unsigned" 라는 주의 메시지가 뜬다. 해당 값이 int16_t 에 담기에는 너무 크다고...
컴파일러는 똑똑해서 자기가 알아서 unsigned로 바꿔준다.
하지만 이게 보기 싫다면 해당 값의 끝에 "U"를 붙여 주면된다.
enum {TIME = 61440U};
이렇게 하면 unsigned라고 미리 알려주므로 warning은 뜨지 않는다. 보다 큰 숫자를 입력하고 싶다면 마찬가지로 해당 값의 끝에 "L"을 붙여 사용하도록 한다.
enum {TIME = 6144000L};
2009년 7월 18일 토요일
moteiv's boomerang
http://docs.tinyos.net/index.php/Boomerang
boomerang 2.0.1은 2006년 3월 처음 릴리즈되었으며, 현재 boomerang 2.0.4까지 다양한 버그를 수정하여 릴리즈되었다.
boomerang 의 핵심은 간단하게 구현된 저전력 메시 네트워크의 형태인 Delta 어플리케이션으로 소규모 네트워크에서 빠른 응답을 한다.
내부적으로 큐를 사용하여 이웃 노드의 테이블을 관리하고, 이웃 노드들의 LQI 및 재 전송과 같은 형태의 알고리즘(?)을 사용하여 네트워크의 신뢰성을 보장하고, 에너지 효율적인 동작을 하도록 구현되어있다.
boomerang 2.0.1은 2006년 3월 처음 릴리즈되었으며, 현재 boomerang 2.0.4까지 다양한 버그를 수정하여 릴리즈되었다.
boomerang 의 핵심은 간단하게 구현된 저전력 메시 네트워크의 형태인 Delta 어플리케이션으로 소규모 네트워크에서 빠른 응답을 한다.
내부적으로 큐를 사용하여 이웃 노드의 테이블을 관리하고, 이웃 노드들의 LQI 및 재 전송과 같은 형태의 알고리즘(?)을 사용하여 네트워크의 신뢰성을 보장하고, 에너지 효율적인 동작을 하도록 구현되어있다.
2009년 7월 13일 월요일
Output Power Configuration for the CC2420
▶ Output Power Configuration for the CC2420
Power Level Current Consumption(mA) Output Power(dBm)
0x1f(31) = 17.4mA = 0dBm
0x1b(27) = 16.5mA = -1dBm
0x17(23) = 15.2 mA = -3dBm
0x13(19) = 13.9mA = -5dBm
0x0f(15) = 12.5mA = -7dBm
0x0b(11) = 11.2mA = -10dBm
0x07(7) = 9.9mA = -15dBm
0x03(3) = 8.5mA = -25dBm
**거리가 멀수록 값이 작아지며, 가까울 수록 값이 커지지만 환경에 따라 크게 달라질 수 있다.
Power Level Current Consumption(mA) Output Power(dBm)
0x1f(31) = 17.4mA = 0dBm
0x1b(27) = 16.5mA = -1dBm
0x17(23) = 15.2 mA = -3dBm
0x13(19) = 13.9mA = -5dBm
0x0f(15) = 12.5mA = -7dBm
0x0b(11) = 11.2mA = -10dBm
0x07(7) = 9.9mA = -15dBm
0x03(3) = 8.5mA = -25dBm
**거리가 멀수록 값이 작아지며, 가까울 수록 값이 커지지만 환경에 따라 크게 달라질 수 있다.
센서 노드에 업로드 된 프로그램의 삭제
보통 센서 노드에 업로드 된 기존의 프로그램은 새로운 어플리케이션을 올림으로써 덮어쓰는 방식으로 사용한다. 이유는 귀찮기 때문이다. -.-
다음과 같은 방법을 사용해 보도록 하자.
--------------------------------------------------------------
센서 노드가 USB로 연결되었다는 가정하에
$>tos-bsl --telosb -c /dev/ttyUSB0 -r -e 명령으로 실행하면
MSP430 Bootstrap Loader Version: 1.39-telos-8
Use -h for help
Mass Erase...
Transmit default password...
Reset device...
--------------------------------------------------------------
끝.
다음과 같은 방법을 사용해 보도록 하자.
--------------------------------------------------------------
센서 노드가 USB로 연결되었다는 가정하에
$>tos-bsl --telosb -c /dev/ttyUSB0 -r -e 명령으로 실행하면
MSP430 Bootstrap Loader Version: 1.39-telos-8
Use -h for help
Mass Erase...
Transmit default password...
Reset device...
--------------------------------------------------------------
끝.
2009년 7월 12일 일요일
리눅스에서 특정 파일 삭제
swp 파일이나 tmp 파일이 남아있게 된 경우 다음과 같은 방법으로 날릴 수 있다.
ex) vim의 swp 파일 삭제
$>find . -name *.swp -exec rm -f {} \;
경로 설정시 주의...
ex) vim의 swp 파일 삭제
$>find . -name *.swp -exec rm -f {} \;
경로 설정시 주의...
2009년 7월 6일 월요일
use the Listen java program to record the output stream.
Listen command on Terminal:
$ export MOTECOM=serial@/dev/ttyUSB0:platform name
$ java net.tinyos.tools.Listen > TestOutput.txt or
$ java net.tinyos.tools.Listen | TestOutput.txt
$ export MOTECOM=serial@/dev/ttyUSB0:platform name
$ java net.tinyos.tools.Listen > TestOutput.txt or
$ java net.tinyos.tools.Listen | TestOutput.txt
피드 구독하기:
글 (Atom)