Studentenversion des ESY6/A Praktikums "signal_processing".
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

hardware_timestamp.c 670B

123456789101112131415161718192021222324252627282930
  1. #include "hardware_timestamp.h"
  2. #include <io.h>
  3. #define REG_STATE_OFFSET 0
  4. #define STOPPED 0
  5. #define RUNNING 1
  6. #define REG_CYCLE_COUNT_OFFSET 1
  7. uint32_t hardware_timestamp_is_running( uint32_t base ) {
  8. return IORD( base, REG_STATE_OFFSET ) == RUNNING;
  9. }
  10. uint32_t hardware_timestamp_is_stopped( uint32_t base ) {
  11. return IORD( base, REG_STATE_OFFSET ) == STOPPED;
  12. }
  13. uint32_t hardware_timestamp( uint32_t base ) {
  14. return IORD( base, REG_CYCLE_COUNT_OFFSET );
  15. }
  16. void hardware_timestamp_start( uint32_t base ) {
  17. IOWR( base, REG_STATE_OFFSET, RUNNING );
  18. }
  19. void hardware_timestamp_stop( uint32_t base ) {
  20. IOWR( base, REG_STATE_OFFSET, STOPPED );
  21. }