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

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

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #210 en: 18 de Junio de 2007, 11:02:46 »
Acaba de llegarme la licencia para el PIC18 y AVR...parecen identicos a este simulador, asi que se terminaron las exusas para no usar esos micros. :)
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 ml_floresta

  • PIC10
  • *
  • Mensajes: 7
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #211 en: 19 de Junio de 2007, 02:19:15 »
!!!hola!!!!
tengo un problema para q se visualice algo en un LCD de 2x20....soy nuevo con todo este tema de los lcd..pero hice con el Pic Simulator IDE una prueba para ver como se veia algo en el lcd y cuando
lo quiero simular en el display no aparece nada y en la pantalla del basic compiler keda trabado en LCDINIT 3 .........las instrucciones se siguen ejecutando pero keda ahi....probe tambien poner LCDINIT asi solo, sin q aparezca el cursor pero no pasa nada....y los puertos del setup del lcd estan bien....

aca les dejo lo q hice...capas es una boludes pero no me doy cuenta q es

Citar
'*----------------------------*
'Display LCD 2x20 LM032L 
'PIC 16F628A                     
'*----------------------------*

Define LCD_BITS = 4  'numeros de bits de datos
Define LCD_DREG = PORTB  'puerto de datos
Define LCD_DBIT = 0  'pines del puertos de datos (0,1,2,3)
Define LCD_RSREG = PORTA  'puerto del RS
Define LCD_RSBIT = 0  'pin del puerto RS
Define LCD_EREG = PORTA  'puerto del E
Define LCD_EBIT = 2  'pin del puerto E
Define LCD_RWREG = PORTA  'puerto del R/W
Define LCD_RWBIT = 1  'pin del puerto R/W

Define LCD_COMMANDUS = 5000  'demora de la escritura de un comando
Define LCD_DATAUS = 100  'demora de la escritura de un dato
Define LCD_INITMS = 100  'demora de la inicializacion del LCD

AllDigital

Lcdinit 3  'inicializo el LCD con cursor subrayado y parpadeando

loop:
Lcdcmdout LcdHome  'Lleva el cursor a la primera posición del primer renglón del LCD
Lcdout "www.todopic.com.ar"
WaitMs 1000  'Espero un segundo
Lcdcmdout LcdClear  'Borro el display
WaitMs 1000  'Espero un segundo
Goto loop

ahi esta...
ahh y quiero agradecerle a Ariel Palazzesi por haber inventado www.ucontrol.com.ar jejejeje ayudo bastante

adios

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #212 en: 19 de Junio de 2007, 07:49:11 »
Hola ml_floresta!

Gracias por las flores! :) Supongo que en estos dias le voy a dar una "inyeccion" de contenidos nuevos a la pagina.

Respecto de la simulacion, lleva los tiempos a unos pocos us, por que la simulacion es miles de veces mas lenta que a realdad. Cuando vos haces "Define LCD_INITMS = 100 ", en "la vida real" son 100, pero en el simulador son como un millon....

Cambia esas demoras a algo como "Define LCD_INITMS = 1"y volve a probar....

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 dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #213 en: 19 de Junio de 2007, 10:23:08 »
Código: Visual Basic
  1. 'ml_floresta_1
  2. 'Display LCD 2x20 LM032L, Programa trucado en los tiempos para el PSI
  3. 'PIC 16F628A
  4. '*----------------------------*
  5.  
  6. Define LCD_BITS = 4  'numeros de bits de datos
  7. Define LCD_DREG = PORTB  'puerto de datos
  8. Define LCD_DBIT = 0  'pines del puertos de datos (0,1,2,3)
  9. Define LCD_RSREG = PORTA  'puerto del RS
  10. Define LCD_RSBIT = 0  'pin del puerto RS
  11. Define LCD_EREG = PORTA  'puerto del E
  12. Define LCD_EBIT = 2  'pin del puerto E
  13. Define LCD_RWREG = PORTA  'puerto del R/W
  14. Define LCD_RWBIT = 1  'pin del puerto R/W
  15.  
  16. Define LCD_COMMANDUS = 2000  'demora de la escritura de un comando
  17. Define LCD_DATAUS = 50  'demora de la escritura de un dato
  18. Define LCD_INITMS = 5 '50 'demora de la inicializacion del LCD
  19.  
  20. AllDigital
  21.  
  22. Lcdinit 3  'inicializo el LCD con cursor subrayado y parpadeando
  23.  
  24. loop:
  25. Lcdcmdout LcdHome  'Lleva el cursor a la primera posición del primer renglón del LCD
  26. Lcdout "www.todopic.com.ar"
  27. WaitMs 1  '1000  'Espero un segundo
  28. Lcdcmdout LcdClear  'Borro el display
  29. WaitMs 1  '1000  'Espero un segundo
  30. Goto loop


Cambiale a estos valores y veras como simula bien.
« Última modificación: 19 de Junio de 2007, 12:34:19 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #214 en: 19 de Junio de 2007, 10:36:00 »
PD. Elige RATE/ULTIMATE en el menu del PSI
Saludos desde Granada, España.

Desconectado ml_floresta

  • PIC10
  • *
  • Mensajes: 7
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #215 en: 19 de Junio de 2007, 16:49:38 »
Ahiiiiiiiiiiiiii estaaaaaaaaaaaaa!!!!!!

me anduvoooo   :):):)

muchas gracias muchachos y tm por responder rapido....

tengo una preguntita mas...pero es sobre Proteus....

cuando simulo un proyecto me dice:

[SPICE] Error 106 - TRAN:  Timestep too small; time = 2.50133, timestep = 5.55112e-017: trouble with node "#00017"

y deja de simular

pienso q debe ser por lo mismo q pregunte ayer, pero ahora la simulacion es muy rapida.....capas me equivoco pero bue me hago un quilombo con los tiempos para simular ejejje

adios cuidensee saludos

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #216 en: 20 de Junio de 2007, 03:46:41 »
Magnifico ml_floresta... :-)

Y sobre el tema de proteus no te puedo responder ya que no lo he utilizado mucho y mas bien en
analogica... asi que te recomiendo que consultes en el foro de simuladores.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #217 en: 20 de Junio de 2007, 17:39:24 »
Este es un nuevo ejemplo para poder trabajar con la EEPROM interna del micro.

Código: Visual Basic
  1. Define CONF_WORD = 0x2f10
  2. Define CONF_WORD_2 = 0x3ffc
  3.  
  4. ''********************************** PIC Entrenadora BASIC (PicEBasic)**********
  5. 'NOMBRE: 16F88_Pic_EBasic_Ejemplo_17
  6. 'MICRO: PIC16F88
  7. 'FECHA/AUTOR: 06/07 - By COS
  8. 'Practicando Read/Write (EEPROM interna del micro)
  9. 'Se envia por el puerto serie las cinco primeras posiciones de memoria EEPROM
  10. 'las tres primeras como control para saber si es la primera vez que se ejecuta el programa
  11. 'y la 4 y 5 son dos contadores que indican el numero de veces que se ejecuto el programa
  12. 'ya sea por reset o por puesta en marcha de la alimentacion
  13. 'la posicion cinco indica las veces que la posicion 4 desbordo (255).
  14. 'puerto serie a 1200 baudios, por emulacion.
  15. '-----------------------------Declaracion y Asignacion de valores---------------
  16. Dim n As Byte  'variable auxiliar
  17. Dim dato_eeprom(5) As Byte  'variables por los que pasaran los valores de la eeprom
  18. '-----------------------------Configuracion del Clock, Puertos I/O--------------
  19. AllDigital  'todos los puertos como I/O
  20. CMCON = 0x07  'comparador a off
  21. osccon = 0x7e  'set intrc To 8mhz, se usara reloj interno a 8Mhz
  22. TRISA = 0xff  'Puerto A como Entradas
  23. TRISB = 0xff  'puerto B como Entradas
  24. 'TRISA.4 = 1  'como entrada (RA4, adc)
  25. 'TRISA.6 = 1  'como entrada (RA6, tecla S1)
  26. 'TRISA.5 = 1  'como entrada (RA5, tecla S2)
  27. TRISB.3 = 0  'como salida, iluminacion lcd
  28. TRISA.7 = 0  'como salida, led amarillo
  29. TRISB.0 = 0  'como salida, led verde
  30. TRISB.4 = 0  'como salida, control servo
  31. PORTB.3 = 1  'luz lcd a on (RB3)
  32. PORTA.7 = 1  'led amarillo a off (RA7), negado
  33. PORTB.0 = 1  'led verde a off (RB0), negado
  34. '************* Rutina del programa ***************************************
  35. Gosub actualiza_eeprom  'actualiza la eeprom, salto con retorno
  36. RA7 = 0  'salida led amarillo
  37. RB0 = 0  'salida led verde
  38. WaitMs 5000  'espera 5 Seg.
  39. main:  'comienza la rutina principal
  40.         RA7 = 1  'salida led amarillo
  41.         RB0 = 1  'salida led verde
  42.         WaitMs 500  'espera 0,5 Seg.
  43.         RB0 = 0  'salida led verde
  44.         WaitMs 500  'espera 0,5 Seg.
  45.         RA7 = 0  'salida led amarillo
  46.         WaitMs 500  'espera 0,5 Seg.
  47. Goto main  'impide que termine la rutina main
  48. End                                              
  49. actualiza_eeprom:  'comprueba si la eeprom fue escrita, si no la inicializa y comienza el contaje
  50.         For n = 0 To 4  'bucle para recorrer las primeras posiciones de memoria
  51.                 Read n, dato_eeprom(n)  'se asigna de la direccion "n" el dato a la variable dato_eeprom(n)
  52.         Next n  'acota el bucle For
  53.         If dato_eeprom(0) <> 0 Or dato_eeprom(1) <> 1 Or dato_eeprom(2) <> 2 Then  'comprueba si la eeprom
  54.                                                                                                 'fue inicializada y si no fue asi la inicializa
  55.                 For n = 0 To 2  '____Escribe los tres primeros caracteres de control
  56.                         Write n, n  'escribe en la eeprom
  57.                 Next n  '_____________
  58.                 Write 3, 1  'inicializa el primer contador
  59.                 Write 4, 0  'inicializa el segundo contador que nos indica las veces que reboso el primer contador
  60.         Else  'si lo anterior no es cierto entonces esto otro
  61.                 dato_eeprom(3) = dato_eeprom(3) + 1  'incrementa el primer contador
  62.                 Write 3, dato_eeprom(3)  'escribe el nuevo valor para el primer contador
  63.                 If dato_eeprom(3) = 255 Then  'si reboso el primer contador
  64.                         dato_eeprom(4) = dato_eeprom(4) + 1  'se incrementa el segundo contador
  65.                         Write 4, dato_eeprom(4)  'se escribe el valor del segundo contador
  66.                 Endif
  67.         Endif
  68.         Serout PORTB.5, 1200, #dato_eeprom(0), #dato_eeprom(1), #dato_eeprom(2)  'envia las tres
  69.                                                                                         'primeras posiciones al puerto serie
  70.         Serout PORTB.5, 1200, " ", #dato_eeprom(3), "-", #dato_eeprom(4), CrLf  'envia las 2 ultimas
  71.                                                                                                 'posiciones al puerto serie
  72. Return                                            
  73. End
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #218 en: 20 de Junio de 2007, 17:49:15 »
El programa anterior lo que hace es llevarnos la cuenta de cuantas veces reiniciamos la placa
EBasic ya sea por reset del micro o por power on de la misma.
El problema esta al inicializar la placa por primera vez, asi que lo que hacemos es comprobar
que las tres posiciones primeras de la memoria tienen o no tienen un valor determinado,
si lo tienen lo que hacemos es leer el valor de la 3 y 4 posicion e incrementar según corresponda
en uno la posición 3 o la 4 si se detecto que desbordo la 3. y actualizar los valores de las respectivas
posiciones. Y en el caso que no lo tenga pues grabamos estas tres primeras posiciones con los valores
1, 2, y 3 respectivamente e inicializamos la dirección 3 = 1 y la dirección 4 = 0.

PD. Las direcciones que usamos son las cinco primeras siendo la primera la 00.
« Última modificación: 20 de Junio de 2007, 17:54:11 por dogflu66 »
Saludos desde Granada, España.

Desconectado ml_floresta

  • PIC10
  • *
  • Mensajes: 7
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #219 en: 22 de Junio de 2007, 13:28:32 »
Muchas gracais dogflu66

alguien sabe si se puede hacer q por ejemplo en una linea del LCD aparezca esto:

< A B C D E F G >

al apretar un supuesto boton aparecería algo asi:

< A B C D E F G >

como destacando la posicion en la q uno se encuentra...
o sería mas facil hacer algo asi??:

<              A             >

y al apretar el boton:

<              B             >

capas estoy pidiendo algo q no existe jejeje pero queria saber
muchas gracias adios

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #220 en: 22 de Junio de 2007, 13:56:32 »
Hola!

Hasta donde yo se, no podes usar "negritas" en los LCd, ya que no tiene mas que el juego de caracteres normal...

Lo que si podrias hacer es que tengas < a b c d e f > y al pulsar te aparezca < a B c d e f > ....eso seria muy sencillo.

Si tenes a mano la ayuda del PIC BASIC del PSI, vas a ver en la seccion de LCD un par de ejemplos de como escribir en una posicion determinada de cada fila. (Esa ayuda tambien esta en la web del fabricante).

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 ml_floresta

  • PIC10
  • *
  • Mensajes: 7
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #221 en: 22 de Junio de 2007, 14:24:21 »
ahhhhhh, lo pregunte por las dudas porq para mi q no se podia...

si eso de poner minusculas y mayusculas lo pense gracias igual...me fijo como kedaria mejor
muchas graciass
adiosss saludos

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #222 en: 22 de Junio de 2007, 14:37:44 »
Otra idea:

< A B C D E F >
 y luego

< A(B)C D E F >

 :mrgreen:
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 dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #223 en: 22 de Junio de 2007, 19:55:39 »
En las practicas pasadas con el reloj de tiempo real, tuve el mismo problema con el menu de configuracion,
al final lo que hice fue aplicar una base de tiempo y hacer los datos seleccionados intermitentes o parpadeo.


PD. El efecto queda magnifico... :mrgreen:
Saludos desde Granada, España.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #224 en: 22 de Junio de 2007, 20:12:48 »
Hola DogFlu66!

Es una muy buena idea. Para tener en cuenta. :)
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


 

anything