Página 1 de 1

Erro C213 no Keil! ajuda!

MensagemEnviado: 27 Jun 2007 15:56
por B-EAGLE
pessoal, estou com uma dúvida aqui no seguinte código:

Código: Selecionar todos
include <AT898252.H>


void espera();

void main(){
   

   WMCON &= 0xFE;   
   P0 = 0x00;      
   P1 = 0x2C;      
   P2 = 0x00;      
   P3 = 0x00;      

   IE = 0x90;


   SPCR = 0x94;

   SPCR |= 0x40;


   SPDR = 0x30;
   
   espera();
   
      


   
}

void espera(){
   while(SPIF_ == 0);
   SPIF_ = 1;   
}


está dando o erro C213:

SOURCE.C(49): error C213: left side of asn-op not an lvalue

estou fazendo alguma coisa de errado??

mas não estou conseguindo resolver, se alguém puder ajudar eu agradeço!



muito obrigado!

Re: Erro C213 no Keil! ajuda!

MensagemEnviado: 27 Jun 2007 16:54
por andre_luis
Eu acho que tem os seguintes problemas :

1o) tá faltando void no prototipo de espera;
2o) tá sobrando void na declaracao do main;
3o) tá faltando void na implementacao do espera.

Além disso, eu colocaria a implementacao de espera, entre o protótipo e o main


+++

MensagemEnviado: 27 Jun 2007 18:54
por Viktor
Está faltando # antes de include

MensagemEnviado: 28 Jun 2007 01:18
por B-EAGLE
Viktor escreveu:Está faltando # antes de include


desculpe Viktor, foi falha minha isso na hora de colocar o codigo aqui, ele na verdade está com o #...

Assim, se eu tiro a linha:

Código: Selecionar todos
SPIF_ = 1;


funciona perfeitamente, eu acho que oque não pode ser feito é setar esse bit, pois ele é colocado em 0 ou em 1 somente por hardware...


valeu gente!

MensagemEnviado: 28 Jun 2007 15:39
por barboza
Talvez porque seu codigo não termina com um loop infinito.

Coloque um while(1); após a chamada de espera();

MensagemEnviado: 28 Jun 2007 17:34
por B-EAGLE
barboza escreveu:Talvez porque seu codigo não termina com um loop infinito.

Coloque um while(1); após a chamada de espera();


Deu o mesmo erro colocando o while(1); barboza...

deve ser por causa do controle pelo hardware mesmo...

valeu barboza!