Hello,
I’ve come across this interesting bug. I’ve got two function definitions which differ in only one space. One works, the other gets stuck and the device needs to be reset.
It is T-Deck uLisp4.4e release 5
; not working
(defun clear (&optional j) (let ((c (if j #xFF 0))) (cmd CASET 0 yoff 0 (+ yoff ysize -1)) (cmd RASET 0 xoff 0 (+ xoff xsize -1)) (cmd #x3A #x03) (cmd RAMWR) (with-spi (str cs) (dotimes (p (* (/ xsize 2) ysize 3)) (write-byte c str))) (cmd #x3A #x05)))
; works
(defun clear (&optional j) (let ((c (if j #xFF 0))) (cmd CASET 0 yoff 0 (+ yoff ysize -1)) (cmd RASET 0 xoff 0 (+ xoff xsize -1)) (cmd #x3A #x03) (cmd RAMWR) (with-spi (str cs) (dotimes (p (* (/ xsize 2) ysize 3)) (write-byte c str))) (cmd #x3A #x05)))
Thank you!