Fixed up interrupts.
This commit is contained in:
@ -164,9 +164,31 @@
|
||||
# include "esp_intr_alloc.h"
|
||||
# include "driver/gpio.h"
|
||||
# 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_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_free, n0 = esp_intr_free((intr_handle_t) n0))
|
||||
#endif
|
||||
|
||||
@ -88,10 +88,37 @@ forth definitions
|
||||
|
||||
vocabulary interrupts interrupts definitions
|
||||
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
|
||||
}transfer
|
||||
|
||||
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
|
||||
|
||||
vocabulary rtos rtos definitions
|
||||
|
||||
@ -285,6 +285,82 @@ SD_MMC.totalBytes ( -- n )
|
||||
SD_MMC.usedBytes ( -- n )
|
||||
</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>
|
||||
|
||||
<p>
|
||||
|
||||
Reference in New Issue
Block a user