Fixed up interrupts.
This commit is contained in:
@ -164,9 +164,31 @@
|
|||||||
# include "esp_intr_alloc.h"
|
# include "esp_intr_alloc.h"
|
||||||
# include "driver/gpio.h"
|
# include "driver/gpio.h"
|
||||||
# define OPTIONAL_INTERRUPTS_SUPPORT \
|
# define OPTIONAL_INTERRUPTS_SUPPORT \
|
||||||
|
Y(gpio_config, n0 = gpio_config((const gpio_config_t *) a0)) \
|
||||||
|
Y(gpio_reset_pin, n0 = gpio_reset_pin((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_set_intr_type, n0 = gpio_set_intr_type((gpio_num_t) n1, (gpio_int_type_t) n0); NIP) \
|
||||||
|
Y(gpio_intr_enable, n0 = gpio_intr_enable((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_intr_disable, n0 = gpio_intr_disable((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_set_level, n0 = gpio_set_level((gpio_num_t) n1, n0); NIP) \
|
||||||
|
Y(gpio_get_level, n0 = gpio_get_level((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_set_direction, n0 = gpio_set_direction((gpio_num_t) n1, (gpio_mode_t) n0); NIP) \
|
||||||
|
Y(gpio_set_pull_mode, n0 = gpio_set_pull_mode((gpio_num_t) n1, (gpio_pull_mode_t) n0); NIP) \
|
||||||
|
Y(gpio_wakeup_enable, n0 = gpio_wakeup_enable((gpio_num_t) n1, (gpio_int_type_t) n0); NIP) \
|
||||||
|
Y(gpio_wakeup_disable, n0 = gpio_wakeup_disable((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_pullup_en, n0 = gpio_pullup_en((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_pullup_dis, n0 = gpio_pullup_dis((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_pulldown_en, n0 = gpio_pulldown_en((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_pulldown_dis, n0 = gpio_pulldown_dis((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_hold_en, n0 = gpio_hold_en((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_hold_dis, n0 = gpio_hold_dis((gpio_num_t) n0)) \
|
||||||
|
Y(gpio_deep_sleep_hold_en, gpio_deep_sleep_hold_en()) \
|
||||||
|
Y(gpio_deep_sleep_hold_dis, gpio_deep_sleep_hold_dis()) \
|
||||||
|
Y(gpio_install_isr_service, n0 = gpio_install_isr_service(n0)) \
|
||||||
|
Y(gpio_uninstall_isr_service, gpio_uninstall_isr_service()) \
|
||||||
Y(gpio_isr_handler_add, n0 = GpioIsrHandlerAdd((gpio_num_t) n2, n1, n0); NIPn(2)) \
|
Y(gpio_isr_handler_add, n0 = GpioIsrHandlerAdd((gpio_num_t) n2, n1, n0); NIPn(2)) \
|
||||||
Y(gpio_isr_handler_remove, n0 = gpio_isr_handler_remove((gpio_num_t) n0)) \
|
Y(gpio_isr_handler_remove, n0 = gpio_isr_handler_remove((gpio_num_t) n0)) \
|
||||||
Y(gpio_install_isr_service, n0 = gpio_install_isr_service(n0)) \
|
Y(gpio_set_drive_capability, n0 = gpio_set_drive_capability((gpio_num_t) n1, (gpio_drive_cap_t) n0); NIP) \
|
||||||
|
Y(gpio_get_drive_capability, n0 = gpio_get_drive_capability((gpio_num_t) n1, (gpio_drive_cap_t *) a0); NIP) \
|
||||||
Y(esp_intr_alloc, n0 = EspIntrAlloc(n4, n3, n2, n1, a0); NIPn(4)) \
|
Y(esp_intr_alloc, n0 = EspIntrAlloc(n4, n3, n2, n1, a0); NIPn(4)) \
|
||||||
Y(esp_intr_free, n0 = esp_intr_free((intr_handle_t) n0))
|
Y(esp_intr_free, n0 = esp_intr_free((intr_handle_t) n0))
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@ -88,10 +88,37 @@ forth definitions
|
|||||||
|
|
||||||
vocabulary interrupts interrupts definitions
|
vocabulary interrupts interrupts definitions
|
||||||
transfer{
|
transfer{
|
||||||
gpio_isr_handler_add gpio_isr_handler_remove gpio_install_isr_service
|
gpio_config
|
||||||
|
gpio_reset_pin gpio_set_intr_type
|
||||||
|
gpio_intr_enable gpio_intr_disable
|
||||||
|
gpio_set_level gpio_get_level
|
||||||
|
gpio_set_direction
|
||||||
|
gpio_set_pull_mode
|
||||||
|
gpio_wakeup_enable gpio_wakeup_disable
|
||||||
|
gpio_pullup_en gpio_pullup_dis
|
||||||
|
gpio_pulldown_en gpio_pulldown_dis
|
||||||
|
gpio_hold_en gpio_hold_dis
|
||||||
|
gpio_deep_sleep_hold_en gpio_deep_sleep_hold_dis
|
||||||
|
gpio_install_isr_service gpio_uninstall_isr_service
|
||||||
|
gpio_isr_handler_add gpio_isr_handler_remove
|
||||||
|
gpio_set_drive_capability gpio_get_drive_capability
|
||||||
esp_intr_alloc esp_intr_free
|
esp_intr_alloc esp_intr_free
|
||||||
}transfer
|
}transfer
|
||||||
|
|
||||||
0 constant ESP_INTR_FLAG_DEFAULT
|
0 constant ESP_INTR_FLAG_DEFAULT
|
||||||
|
|
||||||
|
0 constant GPIO_INTR_DISABLE
|
||||||
|
1 constant GPIO_INTR_POSEDGE
|
||||||
|
2 constant GPIO_INTR_NEGEDGE
|
||||||
|
3 constant GPIO_INTR_ANYEDGE
|
||||||
|
4 constant GPIO_INTR_LOW_LEVEL
|
||||||
|
5 constant GPIO_INTR_HIGH_LEVEL
|
||||||
|
|
||||||
|
( Easy word to trigger on any change to a pin )
|
||||||
|
ESP_INTR_FLAG_DEFAULT gpio_install_isr_service drop
|
||||||
|
: pinchange ( xt pin ) dup GPIO_INTR_ANYEDGE gpio_set_intr_type throw
|
||||||
|
swap 0 gpio_isr_handler_add throw ;
|
||||||
|
|
||||||
forth definitions
|
forth definitions
|
||||||
|
|
||||||
vocabulary rtos rtos definitions
|
vocabulary rtos rtos definitions
|
||||||
|
|||||||
@ -285,6 +285,82 @@ SD_MMC.totalBytes ( -- n )
|
|||||||
SD_MMC.usedBytes ( -- n )
|
SD_MMC.usedBytes ( -- n )
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<h5 id="interrupts">Interrupts</h5>
|
||||||
|
These words are inside the <code>INTERRUPTS</code> vocabulary.
|
||||||
|
|
||||||
|
<p>High Level words:</p>
|
||||||
|
<pre>
|
||||||
|
pinchange ( xt pin -- ) Call xt when pin changes.
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>Example:</p>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
: test ." pinvalue: " 17 digitalRead . cr ;
|
||||||
|
' test 17 pinchange
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<p>Low Level words:</p>
|
||||||
|
<pre>
|
||||||
|
ESP_INTR_FLAG_DEFAULT -- Default handler allows per pin routing
|
||||||
|
|
||||||
|
Various triggers:
|
||||||
|
GPIO_INTR_DISABLE
|
||||||
|
GPIO_INTR_POSEDGE
|
||||||
|
GPIO_INTR_NEGEDGE
|
||||||
|
GPIO_INTR_ANYEDGE
|
||||||
|
GPIO_INTR_LOW_LEVEL
|
||||||
|
GPIO_INTR_HIGH_LEVEL
|
||||||
|
|
||||||
|
gpio_config ( gpio_config_t* -- 0/err )
|
||||||
|
gpio_reset_pin ( pin -- 0/err )
|
||||||
|
|
||||||
|
gpio_set_intr_type ( pin type -- 0/err )
|
||||||
|
|
||||||
|
gpio_intr_enable ( pin -- 0/err )
|
||||||
|
gpio_intr_disable ( pin -- 0/err )
|
||||||
|
|
||||||
|
gpio_set_level ( pin level -- 0/err )
|
||||||
|
gpio_get_level ( pin -- level )
|
||||||
|
|
||||||
|
gpio_set_direction ( pin mode -- 0/err )
|
||||||
|
|
||||||
|
gpio_set_pull_mode ( pin mode -- 0/err )
|
||||||
|
|
||||||
|
gpio_wakeup_enable ( pin type -- 0/err )
|
||||||
|
gpio_wakeup_disable ( pin -- 0/err )
|
||||||
|
|
||||||
|
gpio_pullup_en ( pin -- 0/err )
|
||||||
|
gpio_pullup_dis ( pin -- 0/err )
|
||||||
|
gpio_pulldown_en ( pin -- 0/err )
|
||||||
|
gpio_pulldown_dis ( pin -- 0/err )
|
||||||
|
gpio_hold_en ( pin -- 0/err )
|
||||||
|
gpio_hold_dis ( pin -- 0/err )
|
||||||
|
|
||||||
|
gpio_deep_sleep_hold_en ( -- )
|
||||||
|
gpio_deep_sleep_hold_dis ( -- )
|
||||||
|
|
||||||
|
gpio_install_isr_service ( a -- ) Typically ESP_INTR_FLAG_DEFAULT
|
||||||
|
gpio_uninstall_isr_service
|
||||||
|
|
||||||
|
gpio_isr_handler_add ( pin xt arg -- 0/err )
|
||||||
|
gpio_isr_handler_remove ( pin -- 0/err )
|
||||||
|
|
||||||
|
gpio_set_drive_capability ( pin cap -- 0/err )
|
||||||
|
gpio_get_drive_capability ( pin cap* -- 0/err )
|
||||||
|
|
||||||
|
esp_intr_alloc ( source flags xt args handle* -- 0/err )
|
||||||
|
esp_intr_free ( handle -- 0/err )
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<h5>RTOS</h5>
|
||||||
|
These words are inside the <code>RTOS</code> vocabulary.
|
||||||
|
<pre>
|
||||||
|
xPortGetCoreID ( -- n )
|
||||||
|
xTaskCreatePinnedToCore ( fn name stack-depth params priority taskout coreid -- )
|
||||||
|
vTaskDelete ( task ) -- )
|
||||||
|
</pre>
|
||||||
|
|
||||||
<h3 id="webui">ESP32 WebUI</h3>
|
<h3 id="webui">ESP32 WebUI</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
Reference in New Issue
Block a user