타이머를 사용해서
1초마다 값을 변화시키고 싶은데요..
그니까 i라는 변수에 1이 있다 가정하구요
i의 값을 1초마다 1씩 증가 시키려구요...
그리고 1초에 한번씩 값이 변화하면
그 값이 화면에 나타나게 하고 싶어요....
제가 하려는게 1초마다 값이 변화하면
그 변화한 값을 시리얼을 통해서
전송 하려는 거거든요....
어떻게 하나요???답변 부탁드립니다~~~
그렇게 말씀해주시니...감사합니다~~^^
음...제가 시도했던 것은요.....
제가 하려는게 시리얼 통신 이거든요...
일단 간단하게 송신쪽에서 10부터 100까지
1초에 10씩 늘어나게 했거든요...
그니까 총 10개의 데이터가 수신쪽으로
전송이되는데 문제는 송신쪽에서 sleep()을 사용하니까
10부터 100까지 모두 송신쪽에서 처리한 다음에
한번에 송신하더라구요.....제가 원하는건 하나씩 하나씩
전송되는 거거든요....
10부터 100까지의 데이터가 좌표값이거든요....
그래서 처음에 10 1초후에 20......
이렇게 해서 선이 점점 길어지게 하려구요.....
alarm()과 signal()을 쓰려니까.....어려워서요.....
근데 제가 하려는대로 하려면
sleep() 말고 alarm()과 signal()을 사용해야하나요??
간단하게는 sleep() 함수를 사용하시면 될 것 같습니다. 1초동안 s
간단하게는 sleep() 함수를 사용하시면 될 것 같습니다. 1초동안 sleep했다가 변수증가, 시리얼 전송하는 루틴을 loop로 돌리면 가장 간단하겠습니다.
문제라면 이 방법으로는 정확히 1초를 지킬수는 없다는 점입니다. 변수증가, 시리얼 전송하는 시간이 회수에 따라 누적되면 오차가 좀 커질수도 있습니다.
다른 방법으로는 시스템 시간을 지속적으로 감시하여 1초 주기로 해당 작업을 수행하는 것인데, 아무래도 단순히 sleep 루프를 돌리는것보다는 복잡해지겠죠.
1초...는 상당히 큰 시간이므로, 특별한 경우가 아니라면 sleep 루프를 돌리는 것으로도 충분하리라고 봅니다.
터보씨에서는 time.h 가 있었는데.gcc는 어떤지 모르겠네요.
터보씨에서는 time.h 가 있었는데.
gcc는 어떤지 모르겠네요.
0.1초 간격으로 gettime 같은 걸 해 주시면 괜찮을듯^^
life is only one time
[quote="akudoku"]터보씨에서는 time.h 가 있었는데.
표준 라이브러리 일겁니다 :D
http://database.sarang.net/study/c/unix_c/17.htm 을 참조해보세요.
dasomoli의 블로그(http://dasomoli.org)
dasomoli = DasomOLI = Dasom + DOLI = 다솜돌이
다솜 = 사랑하옴의 옛 고어.
Developer! ubuntu-ko! 다솜돌이 정석
답변 주신분들 감사합니다~~근데 제가 완전 초보라.....어렵네요..
답변 주신분들 감사합니다~~
근데 제가 완전 초보라.....어렵네요.....^^;;
혹시 예제가 있는곳 아시면.....^^
[quote="Anonymous"]혹시 예제가 있는곳 아시면.....^^
http://database.sarang.net/study/c/unix_c/21.htm#4.1
alarm 함수의 예제입니다. :D
dasomoli의 블로그(http://dasomoli.org)
dasomoli = DasomOLI = Dasom + DOLI = 다솜돌이
다솜 = 사랑하옴의 옛 고어.
Developer! ubuntu-ko! 다솜돌이 정석
http://bbs.kldp.org/viewtopic.php?t=6128
http://bbs.kldp.org/viewtopic.php?t=61285
이건 어떤가요?(며칠 전에 질문과 동일하군요.)
(같은 분이시네요. 중복질문은 좋지 않습니다.)
(같은 분이시네요. 중복질문은 좋지 않습니다.)
아하하....^^;;저도 중복질문은 하고 싶지 않은데요......ㅡㅡ
아하하....^^;;
저도 중복질문은 하고 싶지 않은데요......ㅡㅡ;;
모르는건 많고 하긴 해야하고.....
죄송합니다......
괜찮습니다^^다만 한번 질문하신 것에 다시 답글을 다시면 위로 올
괜찮습니다^^
다만 한번 질문하신 것에 다시 답글을 다시면 위로 올라와서 사람들의 눈길을 끌게 되므로....
그 동안 시도했던 것을 답글로 달아 주시면 더욱 좋은 답변을 기대하실 수 있으실 겁니다.
그렇게 말씀해주시니...감사합니다~~^^음...제가 시도했던 것은요.
그렇게 말씀해주시니...감사합니다~~^^
음...제가 시도했던 것은요.....
제가 하려는게 시리얼 통신 이거든요...
일단 간단하게 송신쪽에서 10부터 100까지
1초에 10씩 늘어나게 했거든요...
그니까 총 10개의 데이터가 수신쪽으로
전송이되는데 문제는 송신쪽에서 sleep()을 사용하니까
10부터 100까지 모두 송신쪽에서 처리한 다음에
한번에 송신하더라구요.....제가 원하는건 하나씩 하나씩
전송되는 거거든요....
10부터 100까지의 데이터가 좌표값이거든요....
그래서 처음에 10 1초후에 20......
이렇게 해서 선이 점점 길어지게 하려구요.....
alarm()과 signal()을 쓰려니까.....어려워서요.....
근데 제가 하려는대로 하려면
sleep() 말고 alarm()과 signal()을 사용해야하나요??
[quote="leo~~~~"]sleep() 말고 alarm()과 sig
역시나 gcc 얘기는 아닙니다만;;
delay 함수에 대해 검색해 보시는게 어떨까요?
고등학교 때 선생님께서 delay 는 좋지 않으니 자제하라는 말씀을 듣고 얼마나 상심(? ) 했던지...
1. gcc 에 delay가 포함되는지 확인한다.
2. delay 가 있다면 송신하는 구문 사이에 넣어준다.
정도가 되겠지요;
저도 이젠 프로그래밍을 공부하고 싶어요~;;
답변 주신분들 모두 감사드립니다~~sleep()함수 이용해서 했습니다
답변 주신분들 모두 감사드립니다~~
sleep()함수 이용해서 했습니다.....
근데요....sleep() 함수는 정수만 넣을수 있나요??
0.1초 처럼 float형은 넣을수 없는건가요??
[quote="손님"]근데요....sleep() 함수는 정수만 넣을수 있
unsigned int sleep(unsigned int seconds);
훗, 못 믿겠나?
더 작은 초 단위를 쓰시고 싶으시면 nanosleep() 이나 uslee
더 작은 초 단위를 쓰시고 싶으시면 nanosleep() 이나 usleep()을 쓰세요
댓글 달기