Sign in

username:

password:



Not a member?

Search rabbit-semi



Search tips

Subscribe to rabbit-semi



Ads

Discussion Groups

Discussion Groups | Rabbit-Semi | rabbit internal I/O registers - direct access.

This is a group for folks designing and programming embedded systems using the Rabbit Semiconductor C-programmable microcontroller. Rabbit Semi is a spin-off from Z-World who makes a variety of embedded modules and tools. This group is not affiliated with either Rabbit or Z-World, but is a user forum for sharing ideas, asking questions, flaunting knowledge, and other typical user group stuff. The Rabbit is a powerful uC, supported by a full-featured C-compiler.

rabbit internal I/O registers - direct access. - Julian Higginson - Aug 5 4:21:43 2008



Hi all,

The standard BitWrPortI() function is usually not a problem for me, but
today I have an application where I'm finding it takes longer than I'd like.
Even pre-calculating whole byte values and using WrPortI() is not really
ideal for me today.

I have a simple app where I want to quickly toggle one bit of port B data
direction register. Inside a block of code where interrupts are disabled.
And I want it to run as efficiently and time-accurately as possible

so. I'm wondering if there is any simple way to write a value directly to
the PBDDR in Dynamic C? (not confident to write rabbit assembler) I've been
searching through the archives here, as well as my various rabbit docs, and
not having any luck finding a simple explanation.. And I know I can't be the
only person to have had a problem with a minimum 7us (or even 4.5us for the
WrPortI() function) pin toggle resolution from using the normal rabbit I/O
register access functions.

If anyone could help, that'd be great.

Pertinent info: RCM3200, DC 8.3, not a DC expert.

Thanks,

Julian Higginson

Bruttour International P/L

http://www.bruttour.com.au

Ph: +612 9987 1581



(You need to be a member of rabbit-semi -- send a blank email to rabbit-semi-subscribe@yahoogroups.com )


Re: rabbit internal I/O registers - direct access. - Steve Trigero - Aug 5 10:32:17 2008

Here is an IO function someone on this board passed along that you can try.

// Macro to write an internal I/O reg without writing shaddow register
#define WrIOI(x,y) asm ld a,y $ ioi ld (x),a
// Example WrIOI(PADR,0); <-- no address operator required.

----- Original Message ----
From: Julian Higginson
To: r...@yahoogroups.com
Sent: Tuesday, August 5, 2008 1:21:28 AM
Subject: [rabbit-semi] rabbit internal I/O registers - direct access.

Hi all,

The standard BitWrPortI() function is usually not a problem
for me, but today I have an application where I’m finding it takes longer
than I’d like. Even pre-calculating whole byte values and using WrPortI()
is not really ideal for me today.

I have a simple app where I want to quickly toggle one bit
of port B data direction register. Inside a block of code where interrupts are
disabled. And I want it to run as efficiently and time-accurately as possible

so… I’m wondering if there is any simple way to
write a value directly to the PBDDR in Dynamic C? (not confident to write
rabbit assembler) I’ve been searching through the archives here, as well
as my various rabbit docs, and not having any luck finding a simple explanation….
And I know I can’t be the only person to have had a problem with a
minimum 7us (or even 4.5us for the WrPortI() function) pin toggle resolution from
using the normal rabbit I/O register access functions.

If anyone could help, that’d be great.

Pertinent info: RCM3200, DC 8.3, not a DC expert.

Thanks,

Julian Higginson
Bruttour International P/L
http://www.bruttour .com.au
Ph: +612 9987 1581



(You need to be a member of rabbit-semi -- send a blank email to rabbit-semi-subscribe@yahoogroups.com )

RE: rabbit internal I/O registers - direct access. - Julian Higginson - Aug 25 23:42:55 2008

Hey Steve!

Sorry for the slow reply (this project tends to get blocked by a lot of
other stuff and progresses in a very fragmented way) But I just put the
macro in my code, and it works great - exactly what I wanted!

So, thanks very much for your help!

Julian Higginson

Bruttour International P/L

http://www.bruttour.com.au

Ph: +612 9987 1581

From: r...@yahoogroups.com [mailto:r...@yahoogroups.com] On
Behalf Of Steve Trigero
Sent: Wednesday, 6 August 2008 12:32 AM
To: r...@yahoogroups.com
Subject: Re: [rabbit-semi] rabbit internal I/O registers - direct access.

Here is an IO function someone on this board passed along that you can try.

// Macro to write an internal I/O reg without writing shaddow register
#define WrIOI(x,y) asm ld a,y $ ioi ld (x),a
// Example WrIOI(PADR,0); <-- no address operator required.



(You need to be a member of rabbit-semi -- send a blank email to rabbit-semi-subscribe@yahoogroups.com )