Autor Tema: PIC BASIC del PIC Simulator IDE Oshonsoft (Índice en página 1)  (Leído 859607 veces)

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

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #585 en: 05 de Enero de 2010, 18:22:28 »
Una pregunta más de quien está empezando:

Por ejemplo si estoy utilizando un pic 16F876 y quiero utlizar el puerto A solo con 3 entradas analogicas y el resto con señales  digitales basta con configutar el registro ADCON1 con el valor= xxxx0100. Doy por descontado que el registro TRIS A lo configuro como entrada.

Entonces si quiero realizar la lectura de esas patillas me imagino que la secuencia sería: primero se realizaria la conversion de una, se guarda el valor de la conversion, se realiza la convesión de la segunda - se guardaria su valor y asi sucesivamente.

Despues de realizar esta operación ¿no es necesario reconfigurar el puerto A como entrada digital si quiero leer una entrada (digital) en el resto de pines configurados como entradas digitales? Lo pregunto por que en algun sitio leí(seguro que lo hice mal pues mi ingles es muy malo) que cuando se realiza la lectura del puerto a como emtrada analogica se configura todo el como analogico.
Es que si miro en el datasheet indica que si se puede.

fermin
Todos los días se aprende algo nuevo.

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #586 en: 05 de Enero de 2010, 19:23:01 »
En el ADCON1 configuras cuales seran entradas analogas y y cuales seran E/S digitales, si quieres tener tres analogass cargas el ADCON1 con xxxx0100, aunque deberias indicar para las digitales si seran E/S seteando el TRISA.

saludos
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #587 en: 06 de Enero de 2010, 13:29:14 »
Hay que tener en cuenta para esta serie, que a la hora de asignar entradas analógicas a los pin para su uso con el modulo ADC, existe una plantilla que nos limita las opciones de configuración de las entradas.



Esto lo recuerdo para los que siguen este hilo con 16F88, porque este es un micro más moderno que no tiene estas restricciones y, esto puede llevar a error. Con esto quiero indicar que siempre que se utiliza PIC nuevo es muy recomendable echar un vistazo a su datasheet, ya que todos los micros de la familia 16F no son exactamente iguales en su configuración.
Saludos desde Granada, España.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #588 en: 07 de Enero de 2010, 17:54:47 »
Esto que comentas en la tabla ya lo tuve en cuenta, por eso puse ADCON1xxxx0100, luego entonces la secuencia correcta seria:


Por ejemplo si estoy utilizando un pic 16F876 y quiero utlizar el puerto A solo con 3 entradas analogicas y el resto con señales  digitales basta con configutar el registro ADCON1 con el valor= xxxx0100. Doy por descontado que el registro TRIS A lo configuro como entrada.

Entonces si quiero realizar la lectura de esas patillas me imagino que la secuencia sería: primero se realizaria la conversion de una, se guarda el valor de la conversion, se realiza la convesión de la segunda - se guardaria su valor y asi sucesivamente.

Despues de realizar esta operación ¿no es necesario reconfigurar el puerto A como entrada digital si quiero leer una entrada (digital) en el resto de pines configurados como entradas digitales? Lo pregunto por que en algun sitio leí(seguro que lo hice mal pues mi ingles es muy malo) que cuando se realiza la lectura del puerto a como emtrada analogica se configura todo el como analogico.
Es que si miro en el datasheet indica que si se puede.

Perdón si soy insistente.
fermin
Todos los días se aprende algo nuevo.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #589 en: 07 de Enero de 2010, 21:13:41 »
Si claro, con tu configuración según la tabla anterior los pin AN3, AN1 y AN0 quedan como analógicos y el resto digitales. Mi post anterior solo fue una aclaración para los que siguen el hilo. De todas formas por si sirve también de aclaración, hay que tener en cuenta que estos pin no se pueden leer directamente los tres a la vez, hay que seleccionar primero el pin que se va a conectar al modulo ADC, esperar un tiempo de estabilización y, posteriormente hacer la lectura del pin seleccionado. Por ejemplo con el 16F88 trabajando a 8Mhz cuando se cambia de canal (pin analógico a leer) puede llevar hasta 8 ciclos de reloj, esto es 4uSeg. de espera para que el modulo del ADC cambie su configuración a la nueva, si este tiempo de estabilización no se respeta, es posible que la lectura que obtendremos no sea correcta. Esto hay que tenerlo en cuenta en el caso de querer usar el ADC a la máxima velocidad y, para conseguir esto necesitamos construirnos nuestra propia función de lectura del ADC. En el caso de utilizar la función predefinida en el lenguaje para hacer la lectura del ADC, no tenemos que preocuparnos de todo esto ya que esta función es especialmente lenta, para no tener estos problemas.

PD. Si no cambiamos de pin y siempre leemos el mismo, la lectura es más rápida.

Otro PD. Y por supuesto hay que configurar los pin como In o como Out segun corresponda con TRIS
« Última modificación: 07 de Enero de 2010, 22:00:39 por dogflu66 »
Saludos desde Granada, España.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #590 en: 08 de Enero de 2010, 15:33:53 »
Muchas gracias por la aclaracion, maestro.
Por lo que se ve voy en la buena direccion.

Fermin
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #591 en: 09 de Enero de 2010, 15:35:15 »
Una pregunta quizas tonta:

¿PSI  no admite escribir la siguiente linea:
if porta.0=1 then portb.0=1 else portb.0=0
endif
?
Lo digo por que me da error de sintaxis. En cambio si pongo:
if porta.0=1 then
portb.0=1
else
portb.0=0
endif
Entonces no hay problema.

Fermin
Todos los días se aprende algo nuevo.

Desconectado Strepto

  • PIC16
  • ***
  • Mensajes: 159
    • Pictronics
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #592 en: 09 de Enero de 2010, 16:09:54 »
Cuando escribes el IF en una unica linea el ENDIF no hace falta escribirlo (Por lo menos en el programa Proton) Prueba con eso

Un saludo!

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #593 en: 09 de Enero de 2010, 16:46:12 »
Pues parece que así es
Gracias Strepto

Fermin
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #594 en: 09 de Enero de 2010, 18:45:28 »
amigo Dogflu66: estoy siguiendo con mucho detalle todos los ejemplos que has realizado en este tema, para comprender  el funcionamiento de basic y del PSI. En alguno de ellos veo lo siguinete:
Define SIMULATION_WAITMS_VALUE = 1  'Ignora los valores de Waitms.
Entiendo que es para que cuando vas a simular en el PSI un programa que tenga WaitMS el simulador los ignore y no se tenga que esperar a que se cumpla todo el tiempo indicado en el wait.
Decirte que tengo un pequeño programa que solo enciende un par de leds, he incluido dicha linea pero cuando lo simulo es como si no estuviera y se están ejecutando los wait.
Estoy utilizando la version 6.65; puede ser que sea por que se haya añadido en una version posterior?

Gracias
Fermin
Todos los días se aprende algo nuevo.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #595 en: 09 de Enero de 2010, 22:55:55 »
Pues no sabría decirte, el error que dio en versiones anteriores fue de compilación, porque no existía y el compilador no la entendía. Esa opción aparece por primera vez en la versión 6.41. En el histórico no aparece ninguna mención de algún problema con esa directiva.

http://www.oshonsoft.com/piclog.html
Saludos desde Granada, España.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #596 en: 10 de Enero de 2010, 14:51:33 »
No si a mí no me da error ninguno a compilar, solo que no hace caso a esa linea y por tanto al ejecutar el programa siempre se ejecutan las instrucciones Wait.

Fermin
Todos los días se aprende algo nuevo.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #597 en: 10 de Enero de 2010, 16:17:04 »
No te entendí correctamente, por lo que he podido observar esa directiva no impide que se ejecuten los Wait, lo que hace es que se ejecuten mucho más rápido.
Saludos desde Granada, España.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #598 en: 10 de Enero de 2010, 16:26:06 »
Pues voy a comprobarlo, pues me parece que ni eso por que lo que entiendo que Simulation_wait_value=1 entiendo que seria solo de 1milisegundo.

Fermin
Todos los días se aprende algo nuevo.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #599 en: 10 de Enero de 2010, 16:33:41 »
Pues lo acabo de probar y si que funciona, apenas se para en los Waitms.
Saludos desde Granada, España.