Hi , im trying to simulate some peripherals for mi c51 application , but i have the following problem :
One of these peripherals needs to write several positions of the external memory of the C51 , im using the function WWORD ( but the same applies to RWORD when i want to read external memory)
if i use :
WWORD ( X: 0003 , WordToCopy) ; the vlaue of WordToCopy its written on the direccion 0x0003 from the external memory
now if i do :
buffer = 0x0003; WWORD (X:buffer , WordToCopy);
or
buffer = X:0x0003: WWORD(buffer , WordToCopy);
in bot cases WordToCopy its written in the address 0x0003 of the internal ram in this case its the register r3 , and r4
My question is , how can i write external memory without having to write address by addres ( i wanted to use this variable buffer inside a for , changing its value , since i have to write lots of bytes)
Thanks for the help !
Conventionally, things in ALL UPPERCASE are preprocessor #defines - so not a function...
This works fine here:
func void test (void) { long addr; addr = X:0x3; _WWORD (addr, 6); }
And this works too:
func void test (void) { long addr; addr = 0x3; _WWORD (X:addr, 6); }
But you're using _WWORD - the OP said he was using WWORD (no undrescore)
i meant _WWORD , sorry
Which goes to show why you should never manually type code into a post - always copy & paste from the real source!
Otherwise you just waste everybody's time debugging your posting typos!
i've copy&paste those functions on my script and defined the buttons , but both of them keep writting the data on R3 and R4 , are there any special configuration for this functions that i can modify ?
Im not sure if this will help , but im using the following version of Uvision
IDE-Version: µVision V4.14.16.0 Copyright (C) 2011 ARM Ltd and ARM Germany GmbH. All rights reserved.
Tool Version Numbers: Toolchain: PK51 Prof. Developers Kit Version: 9.03 Toolchain Path: C:\Keil\C51\BIN\ C Compiler: C51.Exe V9.03 Assembler: A51.Exe V8.02 Linker/Locator: LX51.Exe V4.55a Librarian: LIBX51.Exe V4.24 Hex Converter: OHX51.Exe V1.38 CPU DLL: S8051.DLL V3.75 Dialog DLL: DCore51.DLL V2.74