unsigned X const [hitech]

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

unsigned X const [hitech]

Mensagempor eagle_good » 07 Nov 2006 14:16

qdo compilado desta forma.... OK

void lcd_putstr(const char *s)
{
while(*s)lcd_write((*s++),1);
}

mas qdo compilo assim....ocorre falha no hitech

void lcd_putstr(unsigend char *s)
{
while(*s)lcd_write((*s++),1);
}

no keil(mcs51) o correto e (unsigned char *s).......

Qual a diferenca????
Editado pela última vez por eagle_good em 08 Nov 2006 09:14, em um total de 1 vez.
Sam eagle good
eagle_good
Bit
 
Mensagens: 32
Registrado em: 12 Out 2006 11:56
Localização: Americana - SP

Mensagempor ivan » 07 Nov 2006 17:55

void lcd_putstr(unsigend char *s)


void lcd_putstr(unsigned char *s)
"A mente que se abre a uma nova idéia jamais volta ao seu tamanho original." (Albert Einstein).
Avatar do usuário
ivan
Word
 
Mensagens: 618
Registrado em: 12 Out 2006 21:27

Mensagempor eagle_good » 08 Nov 2006 09:18

heim ivan ...num entendi nada......qual a diferença...

void xxxxx(const char*)
void xxxxx(unsigned char*)

ate ...... onde pensava que .... const era armazenada na flash conforme ansi c ....inclusive aplicado no keil....etc...
Sam eagle good
eagle_good
Bit
 
Mensagens: 32
Registrado em: 12 Out 2006 11:56
Localização: Americana - SP

Mensagempor Renie » 08 Nov 2006 13:16

Olá Bruno!

A diferença que o Ivan apontou é que unsiGNED estava escrito errado!
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor eagle_good » 08 Nov 2006 13:31

Ola..Renie....e galera....
e apenas um erro de digitação no forum, mas no ide esta correto
e portanto continua assim ....
Warning[000] C:\Documents and Settings\Administrador\Desktop\projeto\kernel.c 36 : illegal conversion between pointer types
Warning[000] C:\Documents and Settings\Administrador\Desktop\projeto\kernel.c 38 : illegal conversion between pointe

veja o que encontrei.....na net a respeito.....

Pointers to Program Memory Space
In both compilers, a “char * “is a pointer to data memory space.
In the PICC18 compiler, a “const char *” is a pointer to program memory space.
In the MCC18 compiler, a “rom far const char *” or “rom near const *” is a pointer to program memory space, depending on if the large or small code model is used.
Be careful not to pass a program memory pointer to a function expecting a data memory pointer. In both compilers, if you do something like:
foo(“Hello There!”)
the string “Hello There!” is placed in program memory space. If the function foo() is declared as:
foo(char *s){
then the function foo() will not operate correctly as it is expecting a pointer to data memory, but it is being passed a pointer to program memory space.

mas num entendi essa......alguem poderia ser mais simples..?????
Sam eagle good
eagle_good
Bit
 
Mensagens: 32
Registrado em: 12 Out 2006 11:56
Localização: Americana - SP

Mensagempor Renie » 08 Nov 2006 17:26

Olá Bruno!

Eu não uso C, e ainda nem brinquei com os 18F mas, pelo que eu entendí:

Você está fazendo alguma coisa parecida com isso no seu programa:

lcd_putstr("mensagem")

A string "mensagem" faz parte do seu código, portanto está na flash,
para manipular ponteiros da flash tem que usar CONST antes da declaração (ou ROM NEAR / ROM FAR dependendo do compilador), se usar só a declaração CHAR *, você só pode passar strings que estejam na
ram.
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x