MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / rt_sensor_irq_init

Function rt_sensor_irq_init

components/drivers/sensor/v1/sensor.c:102–129  ·  view source on GitHub ↗

Sensor interrupt initialization function */

Source from the content-addressed store, hash-verified

100
101/* Sensor interrupt initialization function */
102static rt_err_t rt_sensor_irq_init(rt_sensor_t sensor)
103{
104 if (sensor->config.irq_pin.pin == RT_PIN_NONE)
105 {
106 return -RT_EINVAL;
107 }
108
109 rt_pin_mode(sensor->config.irq_pin.pin, sensor->config.irq_pin.mode);
110
111 if (sensor->config.irq_pin.mode == PIN_MODE_INPUT_PULLDOWN)
112 {
113 rt_pin_attach_irq(sensor->config.irq_pin.pin, PIN_IRQ_MODE_RISING, irq_callback, (void *)sensor);
114 }
115 else if (sensor->config.irq_pin.mode == PIN_MODE_INPUT_PULLUP)
116 {
117 rt_pin_attach_irq(sensor->config.irq_pin.pin, PIN_IRQ_MODE_FALLING, irq_callback, (void *)sensor);
118 }
119 else if (sensor->config.irq_pin.mode == PIN_MODE_INPUT)
120 {
121 rt_pin_attach_irq(sensor->config.irq_pin.pin, PIN_IRQ_MODE_RISING_FALLING, irq_callback, (void *)sensor);
122 }
123
124 rt_pin_irq_enable(sensor->config.irq_pin.pin, RT_TRUE);
125
126 LOG_I("interrupt init success");
127
128 return 0;
129}
130
131// local rt_sensor_ops
132

Callers 1

rt_sensor_openFunction · 0.85

Calls 3

rt_pin_attach_irqFunction · 0.85
rt_pin_irq_enableFunction · 0.85
rt_pin_modeFunction · 0.50

Tested by

no test coverage detected