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

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

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #285 en: 06 de Agosto de 2007, 19:58:07 »
Bien, la EBasic hace lo mismo que el simulador.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #286 en: 06 de Agosto de 2007, 20:07:15 »
en el ejemplo del programa, ADCIN le asigna el valor obtenido a la variable num_1 que es una variable del tipo Word y por tanto (entiendo yo) está haciendo uso de los 10 bits de la lectura. si quisiera quedarme solamente con los 8 bits más significativos despreciando los demás crearía una variable del tipo Byte que tomase el valor de la parte alta de num_1 :

Dim num_1 As Word
Dim mivar As Byte
mivar = num_1.HB

Todo correcto, pero el corrimiento en la variable antes de asignarla, ya que como son 10bit, estos son los 2 menos significativos del num_1.HB
Saludos desde Granada, España.

Desconectado chapka58

  • PIC10
  • *
  • Mensajes: 3
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #287 en: 08 de Agosto de 2007, 09:00:27 »
Estimados, en primer lugar me presento, Gustavo, desde Argentina. Segundo, los felicito por tanto conocimiento y dedicación desinteresada. Tercero... soy novato en esto y trato de aprender usando lo que aca presentan; por lo tanto ya me encuentro con algunos inconvenientes.
Quizas sean muy tontos pero para mi al amomento son escollos importantes. Bueno, basta de charla.
Me dedici probar el ejemplo de la pagina2, "'Uso del LCD con bus de datos a 4Bit y sin pin de RW", y ni bien lo cargo el el PIC Simulator IDE... cuando lo compilo me aparecen errores en las líneas...
1- Define simulation_waitms_value = 1  ....
2- ansel = 0x00  'los pin I/O digitales (no analogicos)
3- osccon = 0x7e  'set intrc To 8mhz, se usara reloj interno a 8Mhz
 en la 1-, no se que puede ser, en la 2- y 3- vi que no se habían definido mas arriba, lo hice como Word (no se si es correcto, pero anduvo).

esta bien esto así o que pasa?

Gracias... no será la última vez que pregunte!!.. :lol:

Saludos...

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #288 en: 08 de Agosto de 2007, 11:38:58 »
Hola amigo!

Bienvenido al foro/hilo.

El problema 1) puede deberse a que usas una version "vieja" del PSI....puede ser?

El 2 puede ser por que en 0x00 todos sean ceros....

Y el 3, idem al dos.

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #289 en: 08 de Agosto de 2007, 11:47:22 »
O tambien algo mas, quizas estes usando un PIC diferente al del ejemplo.
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #290 en: 08 de Agosto de 2007, 12:15:02 »
Hola y Bienvenido

He copiado el programa desde el foro con el conocido copy/paste en el editor
Basic del PSI y no da ningún error al compilar.

Asi que:
Define SIMULATION_WAITMS_VALUE = 1, es relativamente nuevo puede
dar error en versiones un poco mas antiguas.

y con respecto a lo de mas es posible que no hallas seleccionado el pic correcto
en el PSI ya que doy como buena la copia que hiciste del foro.
« Última modificación: 08 de Agosto de 2007, 20:13:45 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #291 en: 08 de Agosto de 2007, 18:38:37 »
Un ejemplo basico para experimentar con el modulo ADC con salida de datos a 8bit.

Código: [Seleccionar]
'********************************** PIC Entrenadora BASIC (PicEBasic)******************************
'NOMBRE: 16F88_Pic_EBasic_Ejemplo_27
'MICRO: PIC16f88A
'FECHA/AUTOR: 08/07 - By COS, PSI v7.41
'Version: 1.0
'Estudio del modulo ADC
'Usando el modulo ADC directamente.
'*********************************************************************************************
Define CONF_WORD = 0x2f50  'Configuración de bits (fuses)
Define CONF_WORD_2 = 0x3ffc  'Configuración de bits (fuses)
Define CLOCK_FREQUENCY = 8  'Frecuencia del reloj en Mhz
'Define SIMULATION_WAITMS_VALUE = 1  'Suprime los tiempos de espera Waitms, solo para el simulador
'*********************************************************************************************
'_____Asignacion de I/O y valores de inicio de las salidas, configracion adc
ANSEL = %00010000  'Los pin I/O digitales y RA4 analogico
ADCON0 = %01100001  'Fosc/16 a 8Mhz (ADCON1.ADCS2=1) =2uSeg (minimo 1.5uSeg), channel RA4, Power on ADC (ADON)
ADCON1 = %01000000  'V. Ref. (AVdd/AVss) y seleccion escala division clock/2 (ADCS2) y 8Bit ADC (ADFM)
'---------------------------------------
CMCON = 0x07  'Comparador a off
OSCCON = 0x7e  'Set intrc To 8mhz, se usara reloj interno a 8Mhz
TRISA = 0x00  'Puerto A como salidas
TRISB = 0x00  'Puerto B como salidas
TRISA.4 = 1  'Como entrada (RA4, adc)
TRISA.6 = 1  'Como entrada (RA6, tecla S1)
TRISA.5 = 1  'Como entrada (RA5, tecla S2)
PORTB.3 = 1  'Luz lcd a on (RB3)
PORTA.7 = 1  'Led amarillo a off
PORTB.0 = 1  'Led verde a off
WaitMs 25
'_____Variables
Dim adc_4 As Word  'Contendra el valor de la entrada del ADC
main:
ADCON0.GO = 1  'A/D conversion en progreso
While ADCON0.GO = 1  'Pausa hasta terminar la conversion
Wend
adc_4.HB = ADRESH  'Asignacion de valores, tiene la conversion a 8Bit
adc_4.LB = ADRESL  'Asignacion de valores
'Adc_4 y adc_4.LB no tendran valores utilies, solo el byte alto de adc_4
Serout PORTB.5, 2400, "adc_4 ", #adc_4, " adc_4.HB ", #adc_4.HB, " adc_4.LB ", #adc_4.LB, CrLf  'Escribe la lectura del ADC
Goto main
End 
« Última modificación: 14 de Junio de 2016, 18:57:55 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #292 en: 08 de Agosto de 2007, 18:55:51 »
Observaciones:

ADCIN En contra:
  Es una función un poco lenta.
  Poco flexible.
  No permite 8Bit.

ADCIN A favor:
  No tiene complicaciones.
  Funciona siempre.
  Salida con formato a 10 y 8Bits
  También nos economiza la energía del pic.

Y para el uso del modulo ADC de forma directa por nosotros, tenemos que tener en cuenta
que al darle Power On con el bit ADON del registro ADCON0, este tarda un pequeño tiempo
en estabilizarse para poder estar operativo, así que hay que respetar este tiempo.

PD: [28/10/08] Verificado que en la ultima  versión del compilador, si la variable de salida de datos de ADCIN es un Byte en vez de Word, ADCIN se configura de forma automática a 8Bit. No verificado en versiones anteriores.
« Última modificación: 20 de Junio de 2016, 10:58:53 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #293 en: 08 de Agosto de 2007, 20:04:48 »
Aclaracion:

'_____Registros afectados por Define ADC_CLOCK y ADCIN________________
ANSEL = %00010000  'los pin I/O digitales y RA4 analogico
ADCON0 = %01100000  'Fosc/16 a 8Mhz (ADCON1.ADCS2=1) =2uSeg (minimo 1.5uSeg), channel RA4
ADCON1 = %01000000  'voltage reference (AVdd/AVss) y seleccion de escala division clock/2 ADCON1.ADCS2=1


Estos registros son los afectados pero no todos son modificados '_____Registros afectados por Define ADC_CLOCK y ADCIN________________
ya sabeis mano al editor del assembler, ADC_CLOCK Y ADCIN modifican registros como es la resolucion,
el inicio de conversion, el canal de entrada, power on del modulo y que al terminar (ADON) lo deja como
estaba, el ADFM lo modifica y lo deja a 1.

Registros modificados directamente:
ADCON0 (CANALES, GO/DONE, ADON, CHS, ADCS), ADCON1 (ADFM, ADCS2)

Aqui la resolucion esta a 8Bit -> ADCON1 = %01000000  'voltage reference (AVdd/AVss) y seleccion de escala division clock/2 ADCON1.ADCS2=1
pero al terminar ADCIN, queda cambiado a 10BIT -> ADCON1 = %11000000

Por ejemplo los voltajes de referencia no son afectados por lo que podremos programarlos a gusto y como el registro ANSEL NO se ve
modificado lo tenemos que programar a mano las entradas analogicas a usar asi como AN3 y AN2 en este mismo registro en el caso de
usarlas como entradas de tension de referencia.

Espero que con esto quede completo el estudio del ADC relativo al ADCIN... y para cualquier duda, aclaracion o correccion... por aqui estare.
« Última modificación: 08 de Agosto de 2007, 20:12:49 por dogflu66 »
Saludos desde Granada, España.

Desconectado xocas

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 2312
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #294 en: 08 de Agosto de 2007, 20:32:41 »
amigo dogflu, has ido mucho más allá de lo que esperaba y te lo agradezco enormemente

no me suelo atascar con los registros pero en esta ocasión el adc_clock me desorientó por completo. y eso que el datasheet siempre está a mano y no sería la primera vez que los copio a una hoja en blanco y comienzo a pintar 0's y 1's.

en este último ejemplo las líneas han dejado de ser comentarios y así es como acostumbraba a hacerlo en pbp y así es como mi cerebro lo asimila a la primera.

voy a aprovechar que todavía lo tengo todo en protoboard para experimentar un poco con un par de sensores de temperatura que tengo por aquí. estoy actualmente trabajando con tres semi-entrenadores diferentes que fueron creados en un principio para trabajar con un basic stamp, después se adaptaron para pics de 18 pines, luego para poder programar vía icsp... ahora lo adapto de nuevo para probar tus ejemplos... uf!! será mejor construir el que tu has creado jeje

tengo que resolver un par de temas que tengo en el tintero y me pongo de nuevo a la tarea.

vayan mis gracias de nuevo, dogflu

Desconectado chapka58

  • PIC10
  • *
  • Mensajes: 3
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #295 en: 09 de Agosto de 2007, 00:07:47 »
JA... efectivamente tenía una versión anterior... ahora ya estoy actualizado y todo bien!.
Gracias... vamos a ver como sigue.

Saludos   :)

Desconectado chapka58

  • PIC10
  • *
  • Mensajes: 3
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #296 en: 09 de Agosto de 2007, 00:11:40 »
JA... efectivamente tenía una versión anterior... ahora ya estoy actualizado y todo bien!.
Gracias... vamos a ver como sigue.

Saludos   :)

Ahh... me olvidé... una gran torpeza... efectivamente tenia el micro equivocado también... pequeñas grandes lecciones aprendidas... seré menos arrebatado e íre lentamente.
Gracias.

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #297 en: 09 de Agosto de 2007, 04:01:03 »
Aclaracion:
Aqui la resolucion esta a 8Bit -> ADCON1 = %01000000  'voltage reference (AVdd/AVss) y seleccion de escala division clock/2 ADCON1.ADCS2=1
pero al terminar ADCIN, queda cambiado a 10BIT -> ADCON1 = %11000000

Eso es lo que quería saber.

Raro que no te deje trabajar con 8 bits, PBP si te permite. A eso me refería cuando en PBP colocas ADC_BITS=8, solo toma el ADRESH justificado a la izquierda (para tener los 8 bits de mayor peso).


Espero que con esto quede completo el estudio del ADC relativo al ADCIN...
Claro que si, completísimo.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #298 en: 09 de Agosto de 2007, 16:33:58 »
Aclaracion:
Aqui la resolucion esta a 8Bit -> ADCON1 = %01000000  'voltage reference (AVdd/AVss) y seleccion de escala division clock/2 ADCON1.ADCS2=1
pero al terminar ADCIN, queda cambiado a 10BIT -> ADCON1 = %11000000

Eso es lo que quería saber.

Raro que no te deje trabajar con 8 bits, PBP si te permite. A eso me refería cuando en PBP colocas ADC_BITS=8, solo toma el ADRESH justificado a la izquierda (para tener los 8 bits de mayor peso).
e si, completísimo.

En realidad hay una forma de justificar los 10Bit de la función y para poder hacer esto hay que remontarse
a la historia de este entorno, en un principio estaba pensado para la educación, por lo que tenia
estructuras muy simples del tipo IF/THEN/ENDIF, FOR/TO/NEXT y algunas mas básicas típicas del Basic y realmente
funciones complejas no tenia prácticamente ninguna, la del DISPLAY 2x16char, ADCIN y algunas pocas mas.
Por lo que había mayormente que programar todos los registros de los módulos del PIC a mano.
El lenguaje no tenia fallos gracias a su simplicidad, imaginas excusándote frente a un alumno por la perdida de tiempo
en un bug del entorno?... o editando una lista con todos los bug del sistema... y en fin yo no lo veo lógico para algo
que pagaste... y volviendo al tema lo importante era que funcionara sin fallos y que pudieras programar los módulos
del PIC sin problemas y directamente como se hace en el assembler. Con el tiempo igual que en el assembler cada uno
se genera sus propias rutinas de control para insertar en los programas. Rutinas que si no funcionan no le puedes echar
la culpa a un tercero. Y volviendo al principio de nuestro tema este compilador de basic fue completado muy lentamente
con funciones mas complejas de las que carecía. Pero amigo, la ADCIN es una función muy antigua, y simplemente
nadie le dijo que le añadiera los 8bit seleccionables... :mrgreen: y para entender un poco mas el por que diré que el autor
de este entorno tiene una relación especial con nosotros sus usuarios registrados, es un entorno que tiene muchos ojo
vigilándolo de una forma que yo definiria casi paternal... :D
Saludos desde Granada, España.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #299 en: 09 de Agosto de 2007, 16:42:39 »
Citar
y para entender un poco mas el por que diré que el autor
de este entorno tiene una relación especial con nosotros sus usuarios registrados, es un entorno que tiene muchos ojo
vigilándolo de una forma que yo definiria casi paternal....

Muy cierto. El trato con el autor es muy cordial, nada que ver con lo que puede ser el trato con una gran empresa.

Saludos.
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert