CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

How to pass a pointer to a constant in ROM to a function?

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
Chris.Guest
Guest







How to pass a pointer to a constant in ROM to a function?
PostPosted: Sat May 03, 2008 3:46 am     Reply with quote

Hello,
I'm trying to pass this string:
Code:
unsigned char rom test[] = {"HELLO"}
to this function:
Code:
void demo(unsigned char *c)

But the compiler doesn't like this line:
Code:
demo(&test);


Is there any way to do this?

Chris
MartinSwoll
Guest







PostPosted: Sat May 03, 2008 4:14 am     Reply with quote

Same problem here...

PCH returns this error:
Code:
*** Error 112 "main.c" Line 62(1,1): Function used but nor defined: ... demo SCR=700


Martin
MartinSwoll
Guest







PostPosted: Sat May 03, 2008 4:15 am     Reply with quote

Sorry, forgot to post my version...

It's 4.065...
KU5D



Joined: 10 Feb 2008
Posts: 46
Location: Asheville, North Carolina

View user's profile Send private message

PostPosted: Sat May 03, 2008 6:52 am     Reply with quote

Two separate problems.

For the first, instead of

demo(&test);

try this,

demo(test);
-----

As for the second (Error 112), are you sure your function definition appears to your compiler before the function is called?
_________________
Confidence is the feeling you have right before you fully understand the situation...
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Sat May 03, 2008 9:44 am     Reply with quote

The following program works. See the key points shown in bold below.
If you run it in MPLAB simulator and use the MPLAB "UART1" for output,
it displays this in the output window:
Quote:
HELLO

Quote:

#include <16F877.H>
#device PASS_STRINGS=IN_RAM
#fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, ERRORS)

unsigned char const test[] = {"HELLO"};

void demo(unsigned char *ptr)
{
printf(ptr);
}

//====================================
void main()
{

demo(test);

while(1);
}
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group