Re: Aux I/O not responding

Scott Henion <[email protected]>
Newsgroups gmane.comp.hardware.rabbit-semiconductor
Message-ID <[email protected]>
On 8/2/2013 10:07 AM, Taiwo wrote:
> Hello guys
>
> I'm quite new to the Rabbit MCU. I have been trying to send some
> messages to an OLED through the aux I/O pins, but none of the pins
> associated with the Aux I/O are responsding (including /IORD and /IOWR).
> I have macro definition at the start of the source file, amongst others.
> Please what am I missing out in the source file.
>
>   Below is a brief description of my file.
>
>
>
> #define PORTA_AUX_IO // Enable the external I/O bus
>
> void SendToOLED(int addr, char value)
> {
>    WrPortE(addr, NULL, value);
> }
>
>
> int main()
> {
>     WrPortI(IB7CR, &IB7CRShadow, 0x4C);  // Invert
>
> // Ensure tht the 6-bit address external I/O bus is enabled
>     MsDelay(1000);        // Wait for one second to allow OLED to reset
> itself
>
>     SendToOLED(1, '\B00111001'); // 8-bit, 2 line, 5x8 dots, Western
> European font
>     SendToOLED(1, '\B00001100'); // Display On, Cursor Off, Non-Blinking
> cursor
>     SendToOLED(1, '\B00000110'); // Increment and Non-shift Entire
> Display
> }

The address for the external I/O is:

PE0 - 0000-1FFF
PE1 - 2000-3FFF
... and so on...
PE6 - C000-DFFF
PE7 - E000-FFFF

So try:

void SendToOLED(int addr, char value)
{
   WrPortE(addr+0xE000, NULL, value);
}


You will probably need to add checks to make sure the display is ready
to write to. Add a check for the ready bit in the display status
register before writing or you could just add delays if you can't read
the display.

<Scott>



-- 
------------------------------------------
     Scott G. Henion, Consultant
Web site:    http://SHDesigns.org
------------------------------------------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.