pulse_counter_ulp: Add run_count to ULP program

This commit is contained in:
brisk 2024-07-21 22:11:13 +09:30
parent 31e72a5232
commit 2ba3b85440
2 changed files with 12 additions and 0 deletions

View file

@ -65,6 +65,7 @@ bool UlpPulseCounterStorage::pulse_counter_setup(InternalGPIOPin *pin) {
* Note that the ULP reads only the lower 16 bits of these variables. * Note that the ULP reads only the lower 16 bits of these variables.
*/ */
ulp_edge_count = 0; ulp_edge_count = 0;
ulp_run_count = 0;
ulp_debounce_counter = 3; ulp_debounce_counter = 3;
ulp_debounce_max_count = 3; ulp_debounce_max_count = 3;
ulp_next_edge = 0; ulp_next_edge = 0;

View file

@ -55,6 +55,11 @@ debounce_max_count:
edge_count: edge_count:
.long 0 .long 0
/* Number of times program run since last read */
.global run_count
run_count:
.long 0
/* Total number of signal edges acquired */ /* Total number of signal edges acquired */
.global edge_count_total .global edge_count_total
edge_count_total: edge_count_total:
@ -70,6 +75,12 @@ io_number:
.text .text
.global entry .global entry
entry: entry:
/* Increment run_count */
move r3, run_count
ld r2, r3, 0
add r2, r2, 1
st r2, r3, 0
/* Load io_number */ /* Load io_number */
move r3, io_number move r3, io_number
ld r3, r3, 0 ld r3, r3, 0