[C언어]주기적으로 일정한 함수를 부르고 싶어요.

익명 사용자의 이미지

제목에서 말한 것과 같이...
timer의 개념으로 일정한 시간마다 함수를
call해서 그 함수를 처리할 수 있는 방법을 알고
싶습니다.
여러 선배님들 제발 알려주셔요..

익명 사용자의 이미지

그것은 돈주고 배우세요.

아니면, 혼자서 수많은 시간을 두고 공부를 하시든지...

하루 아침에 될일이 아닙니다.

익명 사용자의 이미지

어디가면 돈주고 배울수 있죠?

익명 사용자의 이미지

님의 질문이 좀 모호한거 같은데.

일정 시간이 지나서 특정또는 임의의 함수를 호출한다는 뜻인가요?

time 함수를 알고 계시면 다 되는일 같은데요..

혹시 time 함수를 모르신단 말씀인가?...

익명 사용자의 이미지

제가 원하는건 mS단위로 동작하게끔 하고 싶어서 그러는데..time함수로는 불가능 할 것 같은데요!!
아님 RTlinux를 사용해야 할까요?

익명 사용자의 이미지

주기적인 함수 호출이라..

주기적인 호출을 메인에서 한다면 usleep()을 이용하면 ms보다 작은 값
도 조정 가느할거구요.
메인 프로그램이 다른 로직으로 돌구 있어야 한다면, 제 생각엔 thread
를 이용해서 주기적인 함수 호출을 하는 놈을 떨어 내고 그 Thread의
While Loop안에서 usleep()을 쓰면서 쉬었다가 함수를 호출하면 되지
않을까요?

익명 사용자의 이미지

select()을 사용하세요..
멀티IO가 주 기능이지만..
마이크로세컨드 단위의... 타이머로 사용하기에도 딱 좋지요..

그럼...

익명 사용자의 이미지

일반 O/S 에서 uSec 단위의 제어가 되나여?

아마 안되는걸루 알구 있구여

일단 10mSec 이상의 단위여두 괜찮다면 한번 해보세여

글쿠 Function 의 마지막에서 다시 usleep 을 call 하겠지만 그때 현재
의 시간을 읽어서 누적시간 오차를 제거 해야 겠죠?

다른 방법은 도스쓰는게 젤루 좋죠? ㅎㅎ 마이컴 같이 ㅎㅎ

즐프

익명 사용자의 이미지


마이크로 단위라면.. time 함수로는 좀 어렵겠군요..

그렇다면.. 대충생각건데 이런방법은 어떨런지..

---------------------------------

void usec( void )
{
int i = 10000;
while( i-- );
return;
}
---------------------------

while( 1 )
{
usec();
function();
}

대충기본골격은 저렇고.. 저기에 1초동안 usec() 가 실행될수있는

횟수를 계산해서 자동초기화 해도 되고.. 수시로 조정하는 기능...

머.. 이런것들은 사용목적에따라 작성하시면..

익명 사용자의 이미지

답변 감사합니다.
그런데 그렇게 짜면..
음.
함수를 처리하는데 걸리는 시간이 부정확해 질것 같아서요.
그래서
함수를 콜하는 샘플타임을 함수처리에 걸리는 시간보다 충분히 길게하고..
시간을 측정하는 타이머와 함수를 따로따로 처리하고 싶은 걸요.
병렬처리를 하도록 노력해 보아야 겠는걸요.
여러분의 도움으로
대강의 구상은 끝났습니다.
나중에 완성되면 소스공개 할테니 많은 지도 부탁드립니다.

익명 사용자의 이미지

일반 응용프로그램이,
멀티태스킹 환경에서 정확한 마이크로 초 단위로 주기적인
함수 호출이 가능한가요?

불가능 할 것같은데요...
슈퍼 권한을 가지는 프로세서라면 몰라두요..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.