Subject:
|
Re: lcd page zero driver and interrupts
|
Newsgroups:
|
lugnet.robotics.handyboard
|
Date:
|
Tue, 18 Sep 2001 03:47:04 GMT
|
Viewed:
|
2287 times
|
| |
| |
This will probably bounce to the Handyboard list but here goes ...
At 11:58 AM 9/17/01 +0000, Wayne Slaughter wrote:
> The LCD driver works okay on its own but appears to interfere with operation
> of hardware interrupts. I tried disabling all interrupts around the call to
> the page zero lcdwrite routine but that doesn't help.
The way the default LCD program is written is non-optimal. This is because
the LCD is a fairly slow device relative to the 68HC11. The default LCD
code spin locks on the 'ready' bit.
When I wrote a library for the Handyboard (available on the ICC11
commercial compiler and with the GCC compiler) I modified the way the LCD
is dealt with such that the _lcdwrite() function checks the status bit and
immediately returns if the LCD is busy to do something else. Further, if it
is not busy the character is written and then it immediately returns, thus
the maximum time spent in 'single chip' mode is about 8 instructions. This
has the downside that the LCD will not update faster than about 9600 baud
(1000 chars/second) and sometimes you'll miss it twice and get only 4800
baud for a couple of characters. The upside is that you can do anything and
never worry about overrunning the LCD.
Until I had coded it that way I was unable to get more than two servos to
accurately stay on track.
--Chuck
|
|
Message is in Reply To:
| | lcd page zero driver and interrupts
|
| I am prototyping an interrupt driven system on the Handy Board in assembly language. I want to use the onboard LCD and have implemented a page zero driver as described beginning on page 356 of Robotic Explorations, by Fred Martin. The LCD driver (...) (23 years ago, 17-Sep-01, to lugnet.robotics.handyboard)
|
2 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|