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

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #330 en: 13 de Diciembre de 2007, 07:43:05 »
Hola allado!

Esa diferencia puede estar en las librerias "extra" que tiene Mikrobasic. Cuando usas alguna de estas funciones, mete un monton de codigo que quizas no uses por completo. Pero lo mismo le pasa a PSI. Por ejemplo, si vas a leer un sensor de temperatura DS1820 (1-wire), es mas "economico" desde el punto de vista del espacio ocupado hacerlo tu mismo que emplear las funciones propias del lenguaje.

Como siempre, se trata de encontrar un equilibrio entre tamaño/tiempo: si tienes memoria suficiente, quizas no importe que el codigo sea un 30% mas grande si puedes realizar tu programa en la mitad de tiempo. :)

Saludos!

PD: Aguante PSI! :)
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: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #331 en: 13 de Diciembre de 2007, 18:05:58 »
Hola Alejandro y Ariel

Hace ya algun tiempo que estuve analizando el Mikrobasic y los programas realmente ocupan mas memoria
con el.
Con el PSI igual que con otros lenguajes, se pueden conseguir muy buenos resultados empleando funciones y
trabajando con micros de menos de 1k.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #332 en: 16 de Diciembre de 2007, 18:36:19 »
Por fin termine la primera aproximacion de lo que sera el indice.
Falta todavia depurarlo y tambien añadir algunos ejemplos de los amigos
que hay que ubicar ya que algunos estan fuera de tema.
Pienso que lo mas importante esta hecho, ya es mucho mas facil
hacer consultas en el hilo sobre temas determinados... :-)
Saludos desde Granada, España.

Desconectado ESTECA55

  • PIC24H
  • ******
  • Mensajes: 1404
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #333 en: 16 de Diciembre de 2007, 19:31:25 »
Excelente trabajo dogflu66!!!

A quedado muy bueno, y sobre todo Cómodo!
Hay que esforzarse por ser el mejor, no creerse el mejor

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #334 en: 23 de Diciembre de 2007, 00:12:54 »
Bien, estuve haciendo unas pequeñas modificaciones en los comentarios de algunos programas
ya que me di cuenta al confeccionar el indice que en la descripción de algunos programas
en la parte del display, se usa el puerto B del Pic, pero en la descripción hace mención al puerto A.

Esto es un error que creía corregido en todo los ejemplos y que fue debido a que al principio del hilo
hice algún ejemplo de simulación sin tener totalmente definida la distribución de los pin de la
EBasic, ya que decidí cambiar esta distribución de pin que afectaron directamente al display y de esta
forma obtener mayor rendimiento del micro. La configuración de los pin del Pic en la EBasic fueron
distribuidos de una forma especial para poder sacar un mejor partido a la placa.
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #335 en: 23 de Diciembre de 2007, 08:14:58 »
Excelente trabajo dogflu66!!!

A quedado muy bueno, y sobre todo Cómodo!


Gracias, a ver si podemos echar un dia de estos un rato de tecleo. :P :mrgreen:
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #336 en: 30 de Diciembre de 2007, 20:50:22 »
No quiero despedir el año sin antes haber escrito alguna cosita en el hilo así
que dejo un nuevo ejemplo que completa al anterior para poder trabajar con
la memoria  24C04 y todas aquellas otras cuya estructura interna sea compatible
con esta aunque su capacidad sea distinta.

Función para el control de una E2Prom 24C04 y compatibles:

La función devuelve un numero tipo Word, en el que el Byte menos significativo
es el dato leído y el Byte mas significativo indica si hubo error en la escritura, error=1.
Esta nueva función lee o escribe en todos los bloques de la memoria I2C.
La memora no tiene un único bloque en el que esta ubicada sino que esta dividida
en dos bloques y cada uno de ellos tiene una longitud de 256 posiciones de 1 Byte
cada una. Cada bloque tiene como primera dirección la “0” terminado en la “255”.
La función los maneja como si de un único bloque de 512 Bytes se tratara.
Multiplicando la longitud de 1 bloque por el numero de bloques es igual a la capacidad
máxima de la memoria, contemplada como si de su estructura interna estuviera
compuesta de uno único, (256x2)=512 Bytes de capacidad y 511 es la dirección
máxima ya que la primera dirección comienza en la 0.

Básicamente la función envía a la memoria:

1º Un Byte y los BIT indican a la memoria lo siguiente:
 
   Bit del 15...12, selecciona el dispositivo en el bus I2C

   Bit 11...09, selecciona la pagina o bloque de la memoria

   Bit 8, selecciona si la operación será de lectura o escritura.
   El BIT 8 lo gestiona directamente la función del lenguaje por
   lo que no es necesario su control.

2º Seguido de un Byte que contiene la dirección dentro del bloque a escribir o leer.

3º Y por ultimo el dato a escribir en la memoria o en el caso de una lectura
   una variable donde guardar el dato de 8bit.

Es importante tener en cuenta que la escritura en la memoria es una operación que
requiere un tiempo determinado y por lo tanto hay que esperar que la memoria
escriba el dato indicado por la función, este tiempo de espera viene indicado en su datasheet.

PD. Les deseo que tengan un Feliz y prospero año nuevo.
      BYE, hasta el año que viene.
« Última modificación: 30 de Diciembre de 2007, 23:30:19 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #337 en: 30 de Diciembre de 2007, 20:50:45 »
El codigo:

Código: [Seleccionar]
'***************** Placa Entrenadora (PIC EBadic) ***************************************
'NOMBRE: 16F88_Pic_EBasic_EJEMPLO_28
'Descripción: TEST DE LA PLACA EBasic_I2C (Led y 24LC04B)
'Micro: PIC16F88 / 8mhz reloj interno
'Fecha/Autor: 30/12/07, 29/7/07, By COS, PSI v7.41
'Versión: 1.1
'Se completa la función para que lea o escriba en todos los bloques de la memoria I2C
'Esta memoria solo tiene dos bloques y cada uno de ellos tiene 256 posiciones de 1 byte
'La funcion los maneja como si de un único bloque de 512 bytes se tratara.
'Multiplicando la longuitud de 1 bloque por el numero de bloques es igual
'a la capasidad maxima de la memoria, contemplada como si de su estructura interna
'estuviera compuesta de un unico bloque (256x2)=512 y direccion maxima 511 bytes
'ya que la direccion primera comienza en 0.
'Version: 1.0
'Solo escribe o lee en el bloque "0" de la memoria
'*****************************************************************************************
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  'Hace que se ignoren los tiempos de los WaitMs
'-------------------------------------Puertos del LCD-------------------------------------
Define LCD_BITS = 4  'Indicamos que el bus de datos del lcd sera de 4bit
Define LCD_DREG = PORTA  'Bus de datos sera el puerto A
Define LCD_DBIT = 0  'Bus de datos seran los 4 bit menos significativos del puerto A
Define LCD_RSREG = PORTB  'Bit de control RS sera del puerto B
Define LCD_RSBIT = 7  'RB7 como RS
Define LCD_EREG = PORTB  'Bit de control E sera del puerto B
Define LCD_EBIT = 6  'RB6 como E
Define LCD_COMMANDUS = 2000  'Tiempo de espera despues de ejecutar un comando del lcd en uSeg.
Define LCD_DATAUS = 50  'Tiempo de espera despues de enviar un dato al LCD en uSeg.
Define LCD_INITMS = 50  'Tiempo de espera despues de inicializar el Display.
'*********************************************************************************
'------------------------------------Definicion de puertos------------------------------------------
AllDigital  'los pin I/O digitales
'ANSEL = %00010000  'los pin I/O digitales y RA4 analogico
CMCON = 0x07  'comparador a off
OSCCON = 0x7e  'set intrc To 8mhz, se usara reloj interno a 8Mhz
TRISA = 0xff  'Puerto A como entradas
TRISB = 0xff  'puerto B como entradas
'TRISA.4 = 1  'como entrada (RA4, adc)
'TRISA.6 = 1  'como entrada (RA6, tecla S1)
'TRISA.5 = 1  'como entrada (RA5, tecla S2)
TRISB.3 = 0  'como salida RB3
TRISA.7 = 0  'como salida RA7
TRISB.0 = 0  'como salida RB0
TRISA.4 = 0  'como salida RA4
PORTB.3 = 1  'luz lcd a on (RB3)
PORTA.7 = 1  'led amarillo a off (RA7), negado
PORTB.0 = 1  'led verde a off (RB0), negado
PORTA.4 = 0  'led EBbasic_I2C a off (RA4)
'------------------------------------Inicio--------------------------------------------
'------------------------------Reasignacion de nombres----------------------
Symbol sda = RB1  'asignamos nombre al pin que hara de SDA del puerto I2C
Symbol scl = RB4  'asignamos nombre al pin que hara de SCL del puerto I2C
Symbol led_amarillo = RA7  'led amarillo
Symbol led_verde = RB0  'led verde
Symbol luz_lcd = RB3  'iluminacion del lcd
Symbol s1 = RA6  'tecla S1
Symbol s2 = RA5  'tecla S2
'--------------------------------variables generales-----------------------------------------------
Dim addr As Word  'direccion I2C
Dim dato As Byte  'valor a escribir en el I2C
Dim data As Word  'lectura dato I2C, data.HB = 1 = error de escritura, data.LB = dato i2c
'------------------------------------asignacion de valores a las variables--------------------------
dato = 0  'inicializa dato
'--------------------------------------------------------------------------------------
Lcdinit  'inicializa el LCD sin cursor
WaitMs 100  'pausa de 0.1Seg.
Lcdout "Test P. EB_I2C"  'Imprime el texto en el LCD
Lcdcmdout LcdLine2Home
Lcdout "Version 1.1"
WaitMs 5000  'pausa de 5Seg.
'--------------------------------Rutina Programa---------------------------------------
main:
Lcdcmdout LcdClear  'borra lcd
For addr = 0 To 511  'addr tomara los valores desde 0 hasta 511, bucle
Lcdcmdout LcdLine1Home  'cursor linea 1 y principio
Lcdout "Wr: ad.", #addr, " d.", #dato, "    "  '#addr  'se escribe en el lcd
data = d_e2prom(addr, dato, 0)  'llama a la funcion R/W del I2C en modo escritura
Lcdcmdout LcdLine2Home  'cursor linea 2 y principio
Lcdout "Read: ", #data.LB, "  "  'se escribe en el lcd
WaitMs 100  'se espera 100mSeg.
If data.HB = 1 Then  'bit de error si esta a 1
Lcdcmdout LcdClear  'borra el lcd
Lcdout "Error: "  'imprime en el display
Lcdcmdout LcdLine2Home  'cursor al principio de la linea 2
Lcdout "Wr: ", #dato, " Rd:", #data.LB, "      "  'imprime en el display
WaitMs 500  'se hace una pausa de 500mSeg.
Endif  'cierra el if
dato = dato + 1  'incrementa dato, se tiene en cuenta que cuando desborda comienza en 0.
Next addr  'cierra el bucle for
End                                               
'------------------------------Subrutinas y funciones ----------------------------------------
'Funcion para el manejo de la E2Prom y Led indicador R/W
'La funcion devuelve un numero tipo Word, en el que el byte menos significativo es
'el dato leido y el byte mas significativo indica si hubo error en la escritura, error=1
'e2p_addr.15...12, selecciona el dispositivo en el bus I2C
'e2p_addr.11...09, selecciona la pagina o bloque de la memoria
'e2p_addr.8, selecciona si la operacion sera de lectura o escritura
'e2p_addr.LB, selecciona la posicion a escribir dentro del bloque de momoria seleccionado
'e2p_data, dato a escribir en la posicion indicada por e2p_addr
'e2p_rw, indica a la funcion si la operacion sera de lectura (=1) o escritura (=0)
Function d_e2prom(e2p_addr As Word, e2p_data As Byte, e2p_rw As Byte) As Word
'0xa0 (1010b) direccion de la memoria I2C, todos los pin de configuracion a cero
e2p_addr.15 = 1  'direccion o nombre del dispositivo en el bus I2C, bit mas significativo
e2p_addr.14 = 0  '...
e2p_addr.13 = 1  '...
e2p_addr.12 = 0  '..., bit menos significativo
e2p_addr.11 = e2p_addr.10  'selecciona la pagina de la memoria I2C, bit mas significativo
e2p_addr.10 = e2p_addr.9  '...
e2p_addr.9 = e2p_addr.8  '..., bit menos significativo
e2p_addr.8 = 0  'modo escritura, indiferente ya que lo controla directamente I2CWrite
RA4 = 1  'activa el led de la placa EBasic_I2C, actividad
If e2p_rw = 0 Then  'permite el modo escritura
I2CWrite RB1, RB4, e2p_addr.HB, e2p_addr.LB, e2p_data  'escribe en el I2C
d_e2prom.HB = 1  'registra posible error si no se borra posteriormente
WaitMs 5  'pausa para que el chip termine la escritura, tiempo indicado en el datasheet
Endif
e2p_addr.8 = 1  'modo lectura, indiferente ya que lo controla directamente I2CRead
I2CRead RB1, RB4, e2p_addr.HB, e2p_addr.LB, d_e2prom.LB  'lee en el puerto I2C
If d_e2prom.LB = e2p_data And e2p_rw = 0 Then  'solo se ejecuta si hubo ciclo de escritura
d_e2prom.HB = 0  'borra el flag de error
Endif
RA4 = 0  'apaga led placa EB_I2C, actividad
End Function                                     

PD:

Donde decia "55. TRISA = 0xff  'Puerto A como salidas"
Ahora dice "55. TRISA = 0xff  'Puerto A como entradas"

Donde decia "56. TRISB = 0xff  'Puerto B como salidas"
Ahora dice "56. TRISB = 0xff  'Puerto B como entradas"
« Última modificación: 13 de Junio de 2016, 15:34:04 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #338 en: 14 de Febrero de 2008, 12:06:33 »
El amigo Pedro Pan amplio el tutorial de Aitopes sobre el PSI.
Lo dejo aquí hasta que le encuentre una ubicación definitiva.

http://rapidshare.com/files/91608213/Manual_Pic_Simulator.pdf.html
« Última modificación: 14 de Febrero de 2008, 12:19:01 por dogflu66 »
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #339 en: 14 de Febrero de 2008, 12:16:35 »
jeje, se me olvidaba el tutorial de Aitopes esta siendo publicado
en la revista sobre electronica uControl, que es de distribución gratuita.

http://www.ucontrol.com.ar/wiki/index.php?title=Revista_Numero_0001
« Última modificación: 14 de Febrero de 2008, 19:33:28 por dogflu66 »
Saludos desde Granada, España.

Desconectado facundo_10

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 179
    • DAVINCIPIC
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #340 en: 27 de Marzo de 2008, 22:49:26 »
Hola veo que sabes mucho sobre SPI, me gustaria saber si me podrian ayudar, lo que quiero hacer es escribir un dato en una memoria RAM, y luego esa dato mostrarlo en un LCD para empezar, ademas si alguien posee documentos para interpretar sonido con el ADC..

La memoria que quiero grabar y leer es una HM62256A ...

Si alguien me puede ayudar !1
PICMANIACO!

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #341 en: 31 de Marzo de 2008, 04:50:45 »
Tengo la linea de telefono estropeada en casa, a ver cuando me la reparan¡¡¡.
La musica con micro es algo que no he visto, pero se puede intentar
hacer una configuracion basica para que puedas desarrollar el tema.
Saludos desde Granada, España.

Desconectado facundo_10

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 179
    • DAVINCIPIC
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #342 en: 31 de Marzo de 2008, 19:41:40 »
Si mira dogflu66 aca hize una rutina para leer y escribir en la ram y luego ese valor lo mando a la eeprom interna del pic para luego leerlo con un programador tipo winpic 800..


Citar
'****************************************************************
'**                    RUTINAS PARA LEER                       **
'**                           UNA                              **
'**                       MEMORIA RAM                          **
'**                   HM 62256 o Compatible                    **
'****************************************************************
'PIC 16f877
'xtal = 20mhz
'--------------
'RA0 LED ESCRITURA
'RA1 - LED LECTURA
'RA2 - LED ESCRITURA EEPROM
'RA3 - LED ENCENDIDO CIRCUITO
'RA4 - LED STAND-BY
'- -- -- -- -- -- --
'- -- -- -- -- -- --
'RB0-7 -> i/o0-7 hm62256alp-10
'RC0-7 -> a0-7
'RD0-6 -> a8-14
'RE0 -> #cs
'RE1 -> #we
'RE2 - > #oe
'-------------------------------------------------------------
AllDigital  'Todo digital
'Pongo los puertos B, C, y D en salida
TRISB = 0
TRISC = 0
TRISD = 0
'Asigno las Variables
Dim direccion_h As Byte
Dim direccion_l As Byte
Dim dato_ram As Byte
Dim respuesta_ram As Byte
Dim b0 As Byte
'Rutina Principal
main:
High PORTA.3
Gosub escritura  'voy a turina de escritura
Gosub lectura  'voy a rutina de lectura
Gosub escritura_pic  'escribo en la eeprom interna del pic
Low PORTA.3
Goto led_standby
End                                               
'Rutina de escritura
escritura:
High PORTA.0  'enciendo led para ver que se empieza la rutina
direccion_h = 0  'asigno posicion
direccion_l = 5  'asigno posicon
dato_ram = 24  'asigno el dato que voy a grabar
High PORTE.2  'TIMMING
Low PORTE.0  'TIMMING
Low PORTE.1  'Preparado para grabar
PORTC = direccion_l  'pongo al puerto C en la posicion L
PORTD = direccion_h  'Pongo al puerto D en la posicion H
PORTB = dato_ram  'dato a grabar
High PORTE.0  'Cierro el TIMMIMG
High PORTE.1  'Cierro el timming
Low PORTE.2  'Cierro el timming
Low PORTA.0  'Apago el LED para ver que termino de escribir la RAM.
Return                                           
'Rutina para leer la posicion que yo desee en la ram
lectura:
High PORTA.1  'enciendo led que indica lectura
direccion_h = 0  'direccion que voy a leer
direccion_l = 5  'direccion l que voy a leer
PORTC = direccion_l  'PASO LA DIRECCION A PUERTO C
PORTD = direccion_h  'PASO LA DIRECCION A PUERTO D
High PORTE.1  'RUTINA PARA LEER (ABRE TIMMING)
Low PORTE.0  'abro el timming para leer
Low PORTE.2  'timming
TRISB = 1  'PONGO EL BUS DE DATOS EN ENTRADA PORQUE LA RAM ME VA A ENVIAR EL DATO
PORTB = respuesta_ram  'lo que la ram me entrega por el puerto B lo grabo en la variable respuesta ram
TRISB = 0  'Pongo en salida el puerto b
High PORTE.1  'Cierro el timming el WE lo dejo alto para que no halla una escritura inesperada
High PORTE.0  'cierro timming
High PORTE.2  'cierro timming
Low PORTA.1  'apago led que indica lectura
Return                                           
'RUTINA PARA ESCRIBIR EL DATO OBTENIDO EN LA MEMORIA EEPROM DEL PIC
'PARA LUEGO SER LEIDO CON WINPIC 800 Y UTRO PROGRAMADOR
'Listo ya tengo almacenado el dato de la ram en la variable RESPUESTA_RAM
escritura_pic:
High PORTA.2  'Enciendo led de escritura de eeprom
b0 = 0
Write b0, respuesta_ram  'escribo el dato obtenido de la ram en la posicion 0 de la eeprom interna del pic
WaitMs 100  'le doy una pausa de 100 ms
Low PORTA.2  'Apago led de lectura
Return                                           
led_standby:
High PORTA.4
WaitMs 100
Low PORTA.4
WaitMs 100
Goto led_standby
End                                               

La memoria es la 62256 de 32kbytes, proximamente quisiera poder mostrar los datos a traves de la interfaz serial y Hyperterminal...

Todavia no lo probe, si alguien encuentra un error.. Bienvenido sea!
PICMANIACO!

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #343 en: 02 de Abril de 2008, 18:48:46 »
Parece que la secuencia esta correcta, pero esto es mejor probar.... :mrgreen:
Saludos desde Granada, España.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC BASIC del PIC Simulator IDE
« Respuesta #344 en: 02 de Abril de 2008, 19:19:37 »
Hoy toca dejar un ejemplo sobre el modulo CCP1 del PIC16F88 trabajando en modo comparador,
para ser más exactos en el modo especial. En este modo el modulo CCP1 acapara el Timer1, el timer
uno lo programo como ya hice en los anteriores ejemplos, este timer1, el modulo CCP solo lo utiliza
como contador por lo que las interrupciones del timer1 no las activaremos, será el CCP el que nos
genera la interrupción cuando el valor del registro de 16bit del timer1 sea igual al programado en el
registro de 16bit del modulo, al mismo tiempo al estar configurado el modulo CCP en modo especial
obligara al ADC a realizar una lectura siempre y cuando este ultimo este habilitado. El ADC esta
configurado igual que anteriores ejemplos y particularmente, para que muestre la lectura en formato de 8bit de resolución.

Lo interesante de todo esto es que el modulo se configura una sola vez y ya todo lo de mas es automático,
de esta forma se consigue una mayor precisión en las rutinas, en este caso en las bases de tiempos que he creado.

Dejo el programa comentado y un pequeño video donde se ve de una forma clara para que se pueden usar las bases
de tiempos (por lo menos eso creo... jeje).

Estos son los bit de configuración del modo de trabajo del modulo CCP1:

CCP1CON.CCP1M3 = 1  'Compare mode, trigger special event (CCP1M3...0).
CCP1CON.CCP1M2 = 0
CCP1CON.CCP1M1 = 1
CCP1CON.CCP1M0 = 1

PD. No utilizo funciones en este ejemplo... solo los modulos de forma directa... bueeeeno, exectuando la funcion del lcd,
pero no es un modulo interno del PIC que conste... :mrgreen:
« Última modificación: 03 de Noviembre de 2014, 22:20:28 por dogflu66 »
Saludos desde Granada, España.