Autor Tema: Error: A numeric expression must appear here  (Leído 13136 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado maurihuarte

  • PIC10
  • *
  • Mensajes: 6
Error: A numeric expression must appear here
« en: 16 de Noviembre de 2011, 20:09:33 »
Buenas tardes foreros

Estoy haciendo mis primeras pruebas con el CCS PHWD compiler 4.104

Mi programa es este:

#INCLUDE <16F877.h>
#FUSES XT,NOWDT
#use delay(clock= 400000)
#BYTE TRISB= 0x86
#BYTE PORTB= 0x06
#BYTE OPTION_REG= 0x81
void main(){
      int16 seg=1000;
      bit_clear(OPTION_REG,7);
      bit_set(TRISB,0);
      bit_clear(TRISB,1);
      bit_clear(PORTB,1);
      while (1){
         if (bit_test(portb,0) == 1)
               bit_clear(portb,1);
               delay_ms (seg);
               bit_set(portb,1);
               delay_ms (seg);
               bit_clear(portb,1);
         else                                        //linea 20
         bit_set(portb,1);
         }
}

Me aparece este error: A numeric expression must appear here. En la linea 20


Desde ya, muchas gracias por sus consejos.


Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Error: A numeric expression must appear here
« Respuesta #1 en: 16 de Noviembre de 2011, 20:14:03 »
te falta un { despues de  if (bit_test(portb,0) == 1)
y otro { despues de else

y un } antes de else

Desconectado maurihuarte

  • PIC10
  • *
  • Mensajes: 6
Re: Error: A numeric expression must appear here
« Respuesta #2 en: 16 de Noviembre de 2011, 20:30:53 »
te falta un { despues de  if (bit_test(portb,0) == 1)
y otro { despues de else

y un } antes de else

Genial. Muchisimas gracias. Esto de los modos de declarar funciones y variables va a ser lo que mas me va a costar.

Desconectado Bruno Mafra

  • PIC10
  • *
  • Mensajes: 33
Re:Error: A numeric expression must appear here
« Respuesta #3 en: 20 de Mayo de 2023, 14:28:55 »
Buenas tardes.
Estoy empezando en este mundo y estoy teniendo el mismo error (no por primera vez).

#include<16f887.h>
#use delay(clock=20m)
#fuses hs,noprotect,nowdt,nobrownout,put,nolvp
#use fast_io(b)
#use fast_io(c)




void main()
{
    set_tris_c(0b00000000);
    output_c(0b00000000);
   
    while(true)
    {
    if(input(pin_b0)==1);
    {
    delay_ms(500);
    output_high(pin_c0);
    }
    else
      {
      output_low(pin_c0);
      }
       
    }
     
}


Porque me pasa?
Gracias
Bruno Mafra

Desconectado Jiha

  • PIC10
  • *
  • Mensajes: 28
Re:Error: A numeric expression must appear here
« Respuesta #4 en: 20 de Mayo de 2023, 14:54:00 »
Elimina el ; al final del if

Desconectado Bruno Mafra

  • PIC10
  • *
  • Mensajes: 33
Re:Error: A numeric expression must appear here
« Respuesta #5 en: 20 de Mayo de 2023, 15:07:55 »
muchas gracias
Bruno Mafra