| | Re: Debugging
|
| (...) That's the method I've used. Just be sure to put an lcd_refresh() after the cputw() call - I can't remember if cputw() does the lcd_refresh() or not. Another thing I've done is write out a number where the upper byte indicates a position in (...) (26 years ago, 16-Mar-99, to lugnet.robotics.rcx.legos)
| | | | Re: Debugging
|
| (...) I don't think it does. Of course, the source would answer definitively, but I also know that until I remembered to put the refreshes in there, I didn't get useful output. (...) I did that too. In my case, the lower byte was the priority (...) (26 years ago, 16-Mar-99, to lugnet.robotics.rcx.legos)
| | | | Re: Debugging
|
| (...) Oh, you're doing stuff inside the scheduler. Yeah, msleep doesn't work too well there :-) Yes, the pauses were only so I could see what was going on. Another thing you could do is print messages out the IR port; but I'm not sure how it would (...) (26 years ago, 17-Mar-99, to lugnet.robotics.rcx.legos)
| | | | Re: Debugging
|
| (...) However, last night, I wrote a brute force (spin loop) msleep which works fine in the scheduler. I found that 800 iterations of an empty for loop with a 16 bit index comes pretty close to 1ms. Granted, I cheated a little, knowing that the (...) (26 years ago, 17-Mar-99, to lugnet.robotics.rcx.legos)
| | | | Re: Debugging
|
| (...) It's what I'm doing for now in my debugger work. I haven't tried it out yet, though. (...) I carefully looked at the opcodes, and found that the shortest opcodes are all 2 bytes, and hand-coded the 2 byte instruction that jumps to itself. The (...) (26 years ago, 17-Mar-99, to lugnet.robotics.rcx.legos)
| | | | Re: Debugging
|
| (...) Try delay(). It's the non-scheduler version of msleep(). If you have a version that's better calibrated, please patch delay() in conio.c to reflect that. (...) A branch to itself is probably the best you can do, as you need an atomic (...) (26 years ago, 20-Mar-99, to lugnet.robotics.rcx.legos)
| |