Skip to content

Commit 6e8ab9d

Browse files
committed
ps2pico-2.2
1 parent 503e587 commit 6e8ab9d

File tree

4 files changed

+11
-6
lines changed

4 files changed

+11
-6
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
.DS_Store
2-
/build/
2+
/build/
3+
/.idea/

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ pico_generate_pio_header(ps2pico ${CMAKE_CURRENT_LIST_DIR}/src/xtphy.pio)
3939
pico_generate_pio_header(ps2pico ${CMAKE_CURRENT_LIST_DIR}/src/xtalt.pio)
4040

4141
pico_set_program_name(ps2pico "ps2pico")
42-
pico_set_program_version(ps2pico "2.1")
42+
pico_set_program_version(ps2pico "2.2")
4343

4444
pico_enable_stdio_uart(ps2pico 1)
4545
pico_enable_stdio_usb(ps2pico 0)

src/atphy.c

+7-3
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ u16 const delays[] = { 250, 500, 750, 1000 };
5151
queue_t qbytes;
5252
queue_t qpacks;
5353

54+
u8 locked = 0;
5455
u8 busy = 0;
5556
u8 sent = 0;
5657
u8 last_tx = 0;
@@ -251,11 +252,13 @@ void kb_task() {
251252
}
252253

253254
if(pio_interrupt_get(pio0, 1)) {
254-
sent--;
255+
if(sent > 0) sent--;
255256
pio_interrupt_clear(pio0, 1);
256257
}
258+
259+
if(locked && !busy) locked--;
257260

258-
if(!queue_is_empty(&qpacks) && pio_sm_is_tx_fifo_empty(pio0, 0) && !busy) {
261+
if(!queue_is_empty(&qpacks) && !locked && !busy) {
259262
if(queue_try_peek(&qpacks, &pack)) {
260263
if(sent == pack[0]) {
261264
sent = 0;
@@ -264,6 +267,7 @@ void kb_task() {
264267
sent++;
265268
last_tx = pack[sent];
266269
busy |= 2;
270+
locked = 160;
267271
pio_sm_put(pio0, 0, at_frame(last_tx));
268272
}
269273
}
@@ -301,5 +305,5 @@ void kb_task() {
301305
void kb_init() {
302306
atphy_program_init(pio0, 0, pio_add_program(pio0, &atphy_program));
303307
queue_init(&qbytes, sizeof(u8), 9);
304-
queue_init(&qpacks, sizeof(u8) * 9, 16);
308+
queue_init(&qpacks, sizeof(u8) * 18, 16);
305309
}

src/ps2pico.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
*/
2525

2626
#include "ps2pico.h"
27-
#include "bsp/board.h"
27+
#include "bsp/board_api.h"
2828
#include "tusb.h"
2929

3030
u8 kb_addr = 0;

0 commit comments

Comments
 (0)