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

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

Desconectado N3m3s15 R4ptor

  • PIC10
  • *
  • Mensajes: 2
Error: A numeric expression must appear here
« en: 08 de Marzo de 2018, 21:48:44 »
Código: C#
  1. Hola excelente tarde.
  2. Estoy haciendo un programa para un robot autobalanceado.
  3. Y quiero mover un motor a pasos bipolar con un potenciometro para después poner en vez de él, un acelerometro.
  4. Pero mi programa me da los siguientes errores que no se corregir.
  5. Agradecería toda la ayuda brindada. Muchas gracias de antemano.
  6. Aqui las capturas.
  7.  
  8.  
(Resuelto Gracias!!!)
« Última modificación: 09 de Marzo de 2018, 00:37:49 por N3m3s15 R4ptor »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 6705
Re:Error: A numeric expression must appear here
« Respuesta #1 en: 08 de Marzo de 2018, 23:08:17 »
Eso es porque no reconoce PORTB0.3

CCS se maneja de otra forma, tenes funciones predefinidas y no actuas sobre los registros, aca tenes el manual:

https://www.ccsinfo.com/downloads/ccs_c_manual.pdf

Si queres usar registros, entonces usa XC8 o Mikro C.

Alguans funciones que vas a a usar para hacer lo que pensas:

Los TRIS, CCS por si solo cuando usas una funcion de entrada te cambia el tris a entrada y lo mismo para cuando es salida. Muchas veces eso es indeseado, si queres que CCS no maneje los TRIS debes agregar:

#USE FAST_IO(B)

Donde puse la B es el puerto, puede ser A,B,C dependiendo del PIC

Luego para setear los tris tenes la funcion set_tris_x() donde la x es el puerto, a,b,c, etc. Ejemplo

Código: C
  1. set_tris_b(0);  // Es lo mismo que TRISB = 0 en XC8

----------------------

PORTB = 0, si queremos cambiar todo el puerto usamos output_x() donde x es el puerto, en este caso

output_b(0);

----------------------

PWM init, start y demas pertenecen a otro compilador distinto que es Mikro C compiler.
https://download.mikroe.com/documents/compilers/mikroc/pic/help/pwm_library.htm

Vos estas usando otro compilador totalmente distinto

Las funciones para el PWM tienen otro nombre, como por ejemplo set_pwm_duty(), etc

-----------------------

Por ultimo si queres activar o desactivar alguna salida, necesitas usar las funciones output_high() y output_low() respectivamente. Para indicar el pin a activar es simple.
PIN_A5 apunta a RA5
PIN_B0 apunta a RB0

Entonces si quiero activar la salida RB0 debo hacer:

output_high(PIN_B0);

--------------------------------------------------------------

Te sugiero que busques algun tutorial sobre CCS, o sigas con el compilador que estabas acostumbrado ( Mikro C ) o si es que copiaste el codigo y lo pegaste, entonces vas a tener que aprender si o si.

Desconectado N3m3s15 R4ptor

  • PIC10
  • *
  • Mensajes: 2
Re:Error: A numeric expression must appear here
« Respuesta #2 en: 09 de Marzo de 2018, 00:43:59 »
Tienes la boca, o almenos los dedos atascados de razón.
Muchas muchas gracias.
Agregame va te paso mi whats +52 461 132 96 05