드라이버라면 두가지 방법이 있겠네요
첫번째는 커널의 settimer 를 이용하시는 거구요.. (함수이름이 맞나??)
두번재는 실제 MCU가 지원하는 타이머를 이용하는 거죠

어플에서는 select 함수를 이용하여 주기적으로 깨어나면 되겠네요
어플에서는 다른 방법도 많이 있을수 있구요..
하지만 정확한 시간을 원한다면 드라이버단에서 구현해야 겠지요