Linux API/linux2015. 10. 13. 16:09


ITIMER_REAL

decrements in real time, and delivers SIGALRM upon expiration.

실시간으로 감소하고 만료시 SIGALRM을 전송한다.


ITIMER_VIRTUAL

decrements only when the process is executing, and delivers SIGVTALRM upon expiration.

프로세스가 실행중잉 동안만 감소하고 만료시 SIGVTALRM을 전송한다.


ITIMER_PROF

decrements both when the process executes and when the system is executing on behalf of the process. Coupled with ITIMER_VIRTUAL, this timer is usually used to profile the time spent by the application in user and kernel space. SIGPROF is delivered upon expiration.

프로세스가 실행중이거나 시스템이 프로세스 대신 작동하는 동안에도 감소한다. ITIMER_VITUAL과 결합하여 유저 시간과 커널 시간을 프로파일링 하는데 사용된다. SIGPROF가 만료시 전송한다.


Timer values are defined by the following structures:

struct itimerval {

    struct timeval it_interval; /* next value */

    struct timeval it_value;    /* current value */

};


struct timeval {

    time_t      tv_sec;         /* seconds */

    suseconds_t tv_usec;        /* microseconds */

};


The function getitimer() fills the structure pointed to by curr_value with the current setting for the timer specified by which (one of ITIMER_REAL, ITIMER_VIRTUAL, or ITIMER_PROF). The element it_value is set to the amount of time remaining on the timer, or zero if the timer is disabled. Similarly, it_interval is set to the reset value.

it_value 값은 타이머의 남은 값을 설정하거나 타이머를 사용하지 않기 위해 0으로 설정한다. 유사하게 it_interval는 초기화 값을 설정한다.

The function setitimer() sets the specified timer to the value in new_value. If old_value is non-NULL, the old value of the timer is stored there.


Timers decrement from it_value to zero, generate a signal, and reset to it_interval. A timer which is set to zero (it_value is zero or the timer expires and it_interval is zero) stops.

it_value로 부터 0으로 타이머가 감소하고, 시그널을 생성하고, it_interval로 초기화 한다. 타이머가 0으로 설정되면 정지한다(it_value가 0이거나 타이머가 만료되고 it_interval이 0일 경우)


Both tv_sec and tv_usec are significant in determining the duration of a timer.


Timers will never expire before the requested time, but may expire some (short) time afterward, which depends on the system timer resolution and on the system load; see time(7). (But see BUGS below.) Upon expiration, a signal will be generated and the timer reset. If the timer expires while the process is active (always true for ITIMER_VIRTUAL) the signal will be delivered immediately when generated. Otherwise the delivery will be offset by a small time dependent on the system loading.

[링크 : http://linux.die.net/man/2/setitimer]


그래서 둘다 설정하지 않으면 멈추는 거구나..

다만. it_value의 값은 초기 1회에 대한 타이머이고

it_interval의 값은 2회 부터의 값에 대한 타이머가 된다.

timer.it_value.tv_sec = 0;

timer.it_value.tv_usec = 250000;

timer.it_interval.tv_sec = 0;

timer.it_interval.tv_usec = 250000;


[링크 : http://linuxspot.tistory.com/28] 


[링크 : https://kldp.org/node/132754]

[링크 : http://manofpro.tistory.com/290]

[링크 : http://forum.falinux.com/zbxe/index.php?document_srl=413903]


[링크 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/article/Timesr_in_Linux]

'Linux API > linux' 카테고리의 다른 글

select()  (0) 2015.10.26
mmap / ioremap  (0) 2015.10.21
리눅스 모듈 - 세마포어 / 뮤텍스  (0) 2015.10.21
linux kernel module module_init() 매크로  (0) 2015.10.21
clock_gettime  (0) 2015.08.09
Posted by 구차니
embeded/Cortex-M3 Ti2015. 10. 13. 11:47

lm3s617외에 같은 클래스에서도 동일한 녀석으로 쓸수 있으려나?
코드를 보니.. 메인을 장악해버려서 다른 프로그램의 하위 시스템으로 넣기에는 엄청난 수정이 필요 할지도..


[링크 : http://www.ti.com/lit/ug/spmu026a/spmu026a.pdf] Stellaris® Stepper Motor Reference Design Kit

[링크 : http://www.ti.com/lit/ds/symlink/lm3s617.pdf] LM3S617

[링크 : http://www.ti.com/product/LM3S617/description]

    [링크 : http://www.ti.com/tool/sw-rdk-stepper-gui]

    [링크 : http://www.ti.com/tool/sw-rdk-stepper]

'embeded > Cortex-M3 Ti' 카테고리의 다른 글

lm3s1607 / lm3s811 비교  (0) 2015.11.03
bitband 고찰..  (0) 2015.10.23
lm3s spi / ssi  (0) 2015.10.06
lm3s stellarisware SPI  (0) 2015.10.05
cortex-m3 ROM direct call  (0) 2015.09.25
Posted by 구차니
이론 관련/전기 전자2015. 10. 13. 10:55

linux/os의 PID가 아님

 

P: Proportinal(비례) 

I: Integral(적분) 

D: Differential(미분) 

 

 

[링크 : https://ko.wikipedia.org/wiki/PID_제어기]

[링크 : http://www.ktechno.co.kr/pictech/motor05.html]

 

소스구현

[링크 : http://enginius.tistory.com/46]

[링크 : http://magicom9.tistory.com/3]

 

+

2022.04.01

[링크 : https://throwexception.tistory.com/851]

 

'이론 관련 > 전기 전자' 카테고리의 다른 글

디지털 서보(?)  (0) 2015.11.24
DMOS?  (0) 2015.10.20
전류제어  (0) 2015.09.11
디지털 필터 - FIR / IIR  (0) 2015.01.23
역률이 모야?  (2) 2011.08.04
Posted by 구차니
embeded/raspberry pi2015. 10. 12. 16:42

sparkfun의 아두이노용 드라이버를 라즈베리 파이/wiring pi로 포팅한 버전



[링크 : https://github.com/blerchin/dSPIN_raspi]

[링크 : https://github.com/sparkfun/L6470-AutoDriver/]



몰랐는데...

wiringpi가 아두이노를 닮은건가.. 그 반대일려나?

함수가 상당수 호환된다?


아두이노가.. 2005년 wiring 이라는 보드로 시작해서..

거기껄 끌어 온거니.. wiringpi가 더 나중일 것으로 생각된다.

---

void digitalWrite (int pin, int value) ;

[링크 : http://wiringpi.com/reference/core-functions/]


digitalWrite(pin, value)

[링크 : https://www.arduino.cc/en/Reference/DigitalWrite]

Posted by 구차니
Programming/C Win32 MFC2015. 10. 12. 10:45

소스상으로는 "%d "와 "%d\n"으로

1바이트 차이일텐데... 이상하게 cpu 사용률이 다르게 나온다.

$ cat sp.c

#include <stdio.h>

#include <omp.h>


int main(int argc, char **argv)

{

        int a = 0;


        for(;;)

        {

        a++;

//      printf("%d ",a);

        printf("%d\n",a);

        }


        return 0;

}



물론. -fopenmp의 영향은 받지 않는다.

$ gcc -fopenmp -o b.out sp.c 


printf("%d ",a);

를 활성화


printf("%d\n",a);

를 활성화


fflush(stdout);

을 추가해서 해보니 비슷하게 나온다... printf()가 bufferd output인데

\n에서 강제로 fflush하게 하는건가..

[링크 : http://stackoverflow.com/.../why-does-stdout-need-explicit-flushing-when-redirected-to-file]

'Programming > C Win32 MFC' 카테고리의 다른 글

가변 매크로 __VA_ARGS__  (0) 2016.03.18
#import ?  (0) 2015.12.21
rand()와 RAND_MAX  (0) 2015.10.05
Cppcheck  (0) 2015.09.30
void형 포인터 ++  (0) 2015.07.14
Posted by 구차니
Programming/openMP2015. 10. 12. 09:23

흐음..

다음단계에서 확장되나... 소스레벨에서는 차이가 별로 안나네


-E



-S

먼가 우르르 나오는데 어셈이랑 안친해서 ㅠㅠ

아무튼 GOMP 어쩌구가 보이긴 하네..



'Programming > openMP' 카테고리의 다른 글

openMP lock/unlock  (0) 2015.11.10
openmp 관련 정리글(win32)  (0) 2015.10.08
openmp 테스트 on rpi  (0) 2015.10.06
openCV + openMP  (0) 2015.09.30
openMP affinity 관련..  (0) 2015.07.23
Posted by 구차니
Programming/openCV2015. 10. 11. 16:23

흐음... 프레임도 낮도 하나에서 돌리는거 보다

단순하게 두개로 돌리는 것일 뿐(?) 같은데 왜이럴까..

pi@raspberrypi ~/src/cvmp $ DISPLAY=:0.0 ./cvmp.o

HIGHGUI ERROR: libv4l unable convert to requested pixfmt

세그멘테이션 오류


pi@raspberrypi ~/src/cvmp $ DISPLAY=:0.0 ./cvmp.o

HIGHGUI ERROR: libv4l unable convert to requested pixfmt

세그멘테이션 오류


pi@raspberrypi ~/src/cvmp $ DISPLAY=:0.0 ./cvmp.o

select timeout

select timeout

select timeout 


$ cat makefile
FLAGS = -fopenmp
LIBS = -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_ts -lopencv_video -lopencv_videostab

all:
        g++ $(FLAGS) $(LIBS) cvmp.cpp -o cvmp.o

run:

        DISPLAY=:0.0 ./cvmp.o 


$ cat cvmp.cpp
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <omp.h>

using namespace cv;
using namespace std;

int main(int argc, char **argv)
{
        omp_set_num_threads(2);
        char Cid[2] = {0,1};
        char *Wnd[2] = {"cam1","cam2"};

#pragma omp parallel
        {
                VideoCapture capture;
                Mat frame;

                int Thread = omp_get_thread_num();

                capture.open(Cid[Thread]);

                while (1)
                {
                        capture.read(frame);

                        namedWindow(Wnd[Thread], CV_WINDOW_NORMAL);
                        imshow(Wnd[Thread], frame);
                        waitKey(1);
                }

        }
}


[링크 : http://answers.opencv.org/question/68695/openmp-imshow/]

'Programming > openCV' 카테고리의 다른 글

opencv sift surf  (0) 2015.10.20
시야각 내 각도 계산  (0) 2015.10.14
opencv 마우스 이벤트와 빠르게 그리기  (0) 2015.10.05
opencv 마우스 이벤트 관련 2  (0) 2015.10.05
opencv 템플릿 매칭 코드 관련  (0) 2015.10.03
Posted by 구차니

세라핌을 털러 갑시다




초반에 계속 공격들어오고 그래서 얼마나 짜증났던가.. ㅠㅠ

역시 T2 에서 방어선을 구축하고 T3로 넘어가서 점점 방어선을 넓혀야 한다.

근데 우측 하단에는 적 T3? 일것 같은데 곡사포 범위라 실드 깔아놔도 까이고

초초초 짜증나는 맵 ㅠㅠ


어? 시즈탱크?

암튼 드럽게 세서 짜증나는 녀석 ㅠㅠ


콜로서스 킬수가 333

암튼 킬수가 늘어날수록 베테랑이 되는데 피통도 늘어나고

자동회복속도도 빨라지는 듯?


아이언맨 mk.1 같아 -_-?


위성은 범위가 좁고 생각외로 데미지가 세진 않아서 그닥...


실험급 자원생산소도 만들었으니 짜르 따윈 초고속 양산 ㅋㅋㅋㅋ


리자 : 도움!


플레쳐 : 내가 왜 도움?


너네 같은 괴물딱지랑 동맹이었다니 어우!!!


먼 게소리야!!!!!


플레쳐 : 니가 병신이라고!!!


저시키 잡아와!!!


비콘을 꺼서 아무것도 못해염 GG


아군인줄 알았는데 이런 토사구팽이냐?!


일단 아가씨니 구해주러 가야겠군!


아니 이 아저씨 왜케 무덤덤하게 말해 -_-


좌상단은 리자(얘가 세라핌에게 핵 맞아댐 ㅠㅠ)

우상단은 플레쳐(핵 4발 까진 막음 -_-)

좌측은 보지도 않고 그냥 털어버려서 모르겠...


세라핌 : 하하하 인간이 인간을 죽이는군. 흥미로워!!!!


또 블랙선인가... 하...


아.. 벤데타(사이브란) 죽는거 보니.. 정말 동맹은 AEON과만 남고 다 끝나는 듯? ㅠㅠ



플레쳐 : 난 당신을 믿을수 있을꺼라고 생각했어! 이 배신자!!!

아니 어떤넘이 날 보고 배신자래 -_-?


어이어이 이 양반이 멀리서 구경만 하는 주제에 어쩔수 없었다긴 -_-


암튼 핵 5발 쏴서 4발 막히고 한발로 유폭되서 한방에 기지 전멸 ㅋ


아치가 있다는데... 솔찍히 보지도 못하고 끝났...



하.. 블랙선의 잔해인가



닝겐에게는 희망이 없다!! 으하하하!


어? 귀찮아서... mavor 3대 지어놨더니 알아서 정리해버렸네 -_-






엔딩 동영상








AEON 대빵은 희생하는 페티시가 있나.. 맨날 몸을 던져서 막아내 -_-






음? 우선 지령이 머지?

1차 명령이 인식되었음. 실행.


그래도.. 실험급으로 긁어대서 손실을 적네



Posted by 구차니

여기에 아군이 갖혀 있으니 구하라는데


세라핌을 신봉하는 QAI.. 너 미쳤니?


아무튼 맵은 큰데.. 자꾸 적들이 쳐들어 와서

무리하게 T3 가지 말고 T2에서 방어선을 세워야 한다.

우측의 지점을 다 비우면 플레쳐 사령관 올테니까 털으라니.. 내가 걔 시다바리냐!?


아무튼.. 시험급 속사 자주포?



시험급 자원 생산소

터지는 순간 넌 망했어요.jpg

대신에 무한이라 리소스가 부족하면 무한대로 생산량이 증가한다.


정말 펑펑펑펑펑 쏴대는데 연사력은 끝내줘요

근데 명중률은 고자에요 ㅋㅋㅋ


착탄지점가니.. ㄷㄷㄷ 핵이 터지네 아주 ㄷㄷ


다 쏘고 나면 접어서 연통처럼 ㅋㅋㅋ


콜로서스 양산시스템 구축 ㅋㅋㅋ


czar 출격!


털고 나니. 지도가 커지고

몇번을 로딩했던가 하... 우측하단에서 전략 폭격기(T3) 8대가 기지를 한방에 날려서

겨우겨우 대책 세운게 공중우세 전투기 50마리.. 짜르 도배


밑에 털러갔더니 우측 상단에 플레쳐 인가 개나리가 털려서 게임오버 또 로딩.. ㅠㅠ



잘가라 Hex5


겁나큰 거미 ㄷㄷ

브랙맨이 여기 타고 있으니 안터지게 조심~ 하라는데 또 안움직이네 -_-???

좌측에서 클릭해서 escort 어쩌구 눌러서 이동지점을 찎어줘야 한다 -_ㅠ


QAI 건물들은 폭격해도 안터지고 에너지도 안 딿는다.

시나리오상 터지도록 되어 있...


아오 허약한 플레쳐 ㅠㅠ


짜르와 소울리퍼 분리해서 양쪽으로 공격보내서 겨우겨우 해결




죽음의 다리.. ㄷㄷㄷ

적군 팻 보이랑 짜르랑 막 날아와서 몇번을 털렸던지.. ㅠㅠ











아들(QAI)를 죽이는 아버지라는 느낌의 이번편

Posted by 구차니

시간만 잘간다..

먼가 한것도 없이 시간만...

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

올 스탑!  (0) 2015.11.18
몸이 낫질 않네...  (0) 2015.10.31
돈 나올 구멍은 없고...  (0) 2015.10.02
8월 끝  (0) 2015.08.31
애본다 바빠 ㅠㅠ  (0) 2015.08.22
Posted by 구차니