Prusa MINI Firmware overview
hwio.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------//
2 // hwio.h - hardware input output abstraction
3 #ifndef _HWIO_H
4 #define _HWIO_H
5 
6 #include <inttypes.h>
7 
8 //low level I/O classes
9 #define HWIO_CLS_DI 0x01 //class digital input
10 #define HWIO_CLS_DO 0x02 //class digital output
11 #define HWIO_CLS_ADC 0x03 //class analog input
12 #define HWIO_CLS_DAC 0x04 //class analog output
13 #define HWIO_CLS_PWM 0x05 //class pwm output
14 
15 //high level I/O classes
16 #define HWIO_CLS_FAN 0x10 //class fan controller
17 #define HWIO_CLS_HEATER 0x11 //class heater controller
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif //__cplusplus
22 
23 //--------------------------------------
24 // low level I/O functions
25 
26 //digital inputs
27 extern int hwio_di_get_cnt(void); //number of digital inputs
28 extern int hwio_di_get_val(int i_di); //read digital input state
29 
30 //digital outputs
31 extern int hwio_do_get_cnt(void); //number of digital outputs
32 extern void hwio_do_set_val(int i_do, int val); //set digital output state
33 
34 //analog inputs
35 extern int hwio_adc_get_cnt(void); //number of analog inputs
36 extern int hwio_adc_get_max(int i_adc); //analog input maximum value
37 extern int hwio_adc_get_val(int i_adc); //read analog input
38 
39 //analog outputs
40 extern int hwio_dac_get_cnt(void); //number of analog outputs
41 extern int hwio_dac_get_max(int i_dac); //analog output maximum value
42 extern void hwio_dac_set_val(int i_dac, int val); //write analog output
43 
44 //pwm outputs
45 extern int hwio_pwm_get_cnt(void); //number of pwm outputs
46 extern int hwio_pwm_get_max(int i_pwm); //pwm output maximum value
47 extern void hwio_pwm_set_val(int i_pwm, int val); //write pwm output
48 
49 extern int hwio_pwm_get_val(int i_pwm); //get pwm value, returns 0 if stopped
50 extern void hwio_pwm_set_period_us(int i_pwm, int T_us); //changes period of timer, can affect multiple channels
51 extern int hwio_pwm_get_period_us(int i_pwm); //gets period of timer in micro seconds
52 extern void hwio_pwm_set_prescaler(int i_pwm, int prescaler); //directly sets prescaler
53 extern int hwio_pwm_get_prescaler(int i_pwm); //gets value of prescaler
54 extern void hwio_pwm_set_prescaler_exp2(int i_pwm, int exp); //changes prescaler (2^n)-1 ... 1.5us, 3us, 6us, 12us ...
55 extern int hwio_pwm_get_prescaler_log2(int i_pwm); //gets exponent of prescaler - reversion of hwio_pwm_set_prescaler_exp2
56 
57 //--------------------------------------
58 // high level I/O functions
59 
60 //fans
61 extern int hwio_fan_get_cnt(void); //number of fans
62 extern void hwio_fan_set_pwm(int i_fan, int val);
63 
64 //heaters
65 extern int hwio_heater_get_cnt(void); //number of heaters
66 extern void hwio_heater_set_pwm(int i_heater, int val); //pwm output maximum value
67 
68 //--------------------------------------
69 // misc I/O functions
70 
71 //jogwheel
72 extern void hwio_jogwheel_enable(void);
73 extern void hwio_jogwheel_disable(void);
74 
75 //tone
76 extern float hwio_beeper_get_vol(void);
77 extern void hwio_beeper_set_vol(float vol);
78 extern void hwio_beeper_set_pwm(uint32_t per, uint32_t pul);
79 extern void hwio_beeper_tone(float frq, uint32_t del);
80 extern void hwio_beeper_tone2(float frq, uint32_t del, float vol);
81 extern void hwio_beeper_notone(void);
82 
83 //cycle 1ms
84 extern void hwio_update_1ms(void);
85 
86 #ifdef __cplusplus
87 }
88 #endif //__cplusplus
89 
90 #endif //_HWIO_H
hwio_di_get_cnt
int hwio_di_get_cnt(void)
Definition: hwio_a3ides_2209_02.c:193
hwio_do_get_cnt
int hwio_do_get_cnt(void)
Definition: hwio_a3ides_2209_02.c:213
hwio_beeper_set_pwm
void hwio_beeper_set_pwm(uint32_t per, uint32_t pul)
Definition: hwio_a3ides_2209_02.c:491
hwio_dac_get_cnt
int hwio_dac_get_cnt(void)
Definition: hwio_a3ides_2209_02.c:256
hwio_beeper_notone
void hwio_beeper_notone(void)
Definition: hwio_a3ides_2209_02.c:535
hwio_beeper_set_vol
void hwio_beeper_set_vol(float vol)
Definition: hwio_a3ides_2209_02.c:483
hwio_pwm_set_val
void hwio_pwm_set_val(int i_pwm, int val)
Definition: hwio_a3ides_2209_02.c:376
hwio_adc_get_val
int hwio_adc_get_val(int i_adc)
Definition: hwio_a3ides_2209_02.c:245
hwio_jogwheel_disable
void hwio_jogwheel_disable(void)
Definition: hwio_a3ides_2209_02.c:472
hwio_pwm_get_period_us
int hwio_pwm_get_period_us(int i_pwm)
Definition: hwio_a3ides_2209_02.c:300
hwio_pwm_set_prescaler
void hwio_pwm_set_prescaler(int i_pwm, int prescaler)
Definition: hwio_a3ides_2209_02.c:306
hwio_pwm_get_prescaler
int hwio_pwm_get_prescaler(int i_pwm)
Definition: hwio_a3ides_2209_02.c:327
hwio_adc_get_cnt
int hwio_adc_get_cnt(void)
Definition: hwio_a3ides_2209_02.c:239
hwio_dac_set_val
void hwio_dac_set_val(int i_dac, int val)
Definition: hwio_a3ides_2209_02.c:262
hwio_pwm_get_prescaler_log2
int hwio_pwm_get_prescaler_log2(int i_pwm)
Definition: hwio_a3ides_2209_02.c:349
hwio_heater_get_cnt
int hwio_heater_get_cnt(void)
Definition: hwio_a3ides_2209_02.c:456
hwio_update_1ms
void hwio_update_1ms(void)
Definition: hwio_a3ides_2209_02.c:539
hwio_pwm_set_prescaler_exp2
void hwio_pwm_set_prescaler_exp2(int i_pwm, int exp)
Definition: hwio_a3ides_2209_02.c:343
hwio_dac_get_max
int hwio_dac_get_max(int i_dac)
Definition: hwio_a3ides_2209_02.c:259
hwio_beeper_tone
void hwio_beeper_tone(float frq, uint32_t del)
Definition: hwio_a3ides_2209_02.c:514
hwio_fan_get_cnt
int hwio_fan_get_cnt(void)
Definition: hwio_a3ides_2209_02.c:444
hwio_pwm_get_max
int hwio_pwm_get_max(int i_pwm)
Definition: hwio_a3ides_2209_02.c:276
hwio_fan_set_pwm
void hwio_fan_set_pwm(int i_fan, int val)
Definition: hwio_a3ides_2209_02.c:447
hwio_do_set_val
void hwio_do_set_val(int i_do, int val)
Definition: hwio_a3ides_2209_02.c:223
hwio_pwm_get_val
int hwio_pwm_get_val(int i_pwm)
hwio_di_get_val
int hwio_di_get_val(int i_di)
Definition: hwio_a3ides_2209_02.c:196
hwio_beeper_tone2
void hwio_beeper_tone2(float frq, uint32_t del, float vol)
Definition: hwio_a3ides_2209_02.c:530
hwio_pwm_get_cnt
int hwio_pwm_get_cnt(void)
Definition: hwio_a3ides_2209_02.c:273
hwio_jogwheel_enable
void hwio_jogwheel_enable(void)
Definition: hwio_a3ides_2209_02.c:468
hwio_adc_get_max
int hwio_adc_get_max(int i_adc)
Definition: hwio_a3ides_2209_02.c:242
hwio_heater_set_pwm
void hwio_heater_set_pwm(int i_heater, int val)
Definition: hwio_a3ides_2209_02.c:459
hwio_beeper_get_vol
float hwio_beeper_get_vol(void)
Definition: hwio_a3ides_2209_02.c:479
hwio_pwm_set_period_us
void hwio_pwm_set_period_us(int i_pwm, int T_us)
Definition: hwio_a3ides_2209_02.c:285