main.h 919 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef MAIN_H
  2. #define MAIN_H
  3. #include <avr/interrupt.h>
  4. #define MAX_SENSOR_NUM 1
  5. #define KEY_ESC 128
  6. #define KEY_UP 32
  7. #define KEY_DOWN 16
  8. #define KEY_LEFT 64
  9. #define KEY_RIGHT 8
  10. #define KEY_1 1
  11. #define KEY_2 2
  12. #define KEY_OK 4
  13. #define VOLT_DAC 0
  14. #define CURR_DAC 1
  15. #define ms(x) (x)
  16. struct timers {
  17. unsigned int tick;
  18. unsigned int owire;
  19. };
  20. extern volatile struct timers timers;
  21. static inline void atomic_set_uint(volatile unsigned int *volatile data, unsigned int value) __attribute__((always_inline));
  22. static inline void atomic_set_uint(volatile unsigned int *volatile data, unsigned int value){
  23. cli();
  24. *data = value;
  25. sei();
  26. }
  27. static inline void atomic_set_slint(volatile signed long int *volatile data, signed long int value) __attribute__((always_inline));
  28. static inline void atomic_set_slint(volatile signed long int *volatile data, signed long int value){
  29. cli();
  30. *data = value;
  31. sei();
  32. }
  33. #endif