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_task.c 759B

1234567891011121314151617181920212223242526272829303132
  1. #include "hardware_task.h"
  2. #include <io.h>
  3. #include <stdio.h>
  4. #define REG_START_OFFSET 0
  5. #define START 1
  6. #define REG_STATE_OFFSET 1
  7. #define REG_CYCLE_COUNT_OFFSET 2
  8. #define REG_CONFIG_OFFSET 3
  9. void hardware_task_start( uint32_t base ) {
  10. IOWR( base, REG_START_OFFSET, START );
  11. }
  12. uint32_t hardware_task_get_state( uint32_t base ) {
  13. return IORD( base, REG_STATE_OFFSET );
  14. }
  15. uint32_t hardware_task_get_cycle_count( uint32_t base ) {
  16. return IORD( base, REG_CYCLE_COUNT_OFFSET );
  17. }
  18. void hardware_task_set_config( uint32_t base, uint32_t offset, uint32_t value ) {
  19. IOWR( base, REG_CONFIG_OFFSET + offset, value );
  20. }
  21. uint32_t hardware_task_get_config( uint32_t base, uint32_t offset ) {
  22. return IORD( base, REG_CONFIG_OFFSET + offset );
  23. }