Translate, Traductor

Mostrando entradas con la etiqueta programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta programacion. Mostrar todas las entradas

jueves, 6 de octubre de 2016

Pataconf, Octubre 6 de 2016, dia de charlas!


Pataconf es una iniciativa de Colombia-dev.org para promover diferentes comunidades de desarrollo de software en Colombia. La idea era ofrecer charlas para todas las audiencias, principiantes, intermedias y avanzadas.

En la imagen muestro las charlas que se ofrecieron para la edición realizada el 6 de octubre de 2016:



Security: Shared Key Generation - Elliptic Curve Diffie Hellman - @halzate93
  • Cifrado caesar
    "En criptografía, el cifrado César, también conocido como cifrado por desplazamiento, código de César o desplazamiento de César, es una de las técnicas de cifrado más simples y más usadas. Es un tipo de cifrado por sustitución en el que una letra en el texto original es reemplazada por otra letra que se encuentra un número fijo de posiciones más adelante en el alfabeto. Por ejemplo, con un desplazamiento de 3, la A sería sustituida por la D (situada 3 lugares a la derecha de la A), la B sería reemplazada por la E, etc. Este método debe su nombre a Julio César, que lo usaba para comunicarse con sus generales." (Wikipedia)

  • Encriptación de curva Eliptica
    "La Criptografía de Curva Elíptica (del inglés: Elliptic curve cryptography, ECC) es una variante de la criptografía asimétrica o de clave pública basada en las matemáticas de las curvas elípticas. Sus autores argumentan que la CCE puede ser más rápida y usar claves más cortas que los métodos antiguos — como RSA — al tiempo que proporcionan un nivel de seguridad equivalente. La utilización de curvas elípticas en criptografía fue propuesta de forma independiente por Neal Koblitz y Victor Miller en 1985."(Wikipedia)

enlaces de interés:

¿Que es la criptografia de curva eliptica?

Ejemplo de uso en el BITCOIN


Diseño de sistemas mediante contratos en Elixir - @epsanchezma

"El diseño por contrato es una metodología para el diseño e implementación de aplicaciones y componentes popularizada por el lenguaje de programación Eiffel. Consiste en considerar los elementos de diseño como participantes de una relación similar al contrato de negocios. Así, se pueden diseñar los componentes asumiendo que se cumplirán ciertas condiciones de entrada (pre-condiciones), mientras que se deberán garantizar ciertas condiciones de salida (post-condiciones), así como la invariante de clase (propiedades que se mantienen invariantes a pesar del procesamiento realizado por el componente)." (Wikipedia)

DBC (Design By Contract)
Lógica de Hoare
DBC vs TestingEiffel
Elixir


Según articulo de la revista de la Universidad Autónoma de Mexico(http://www.revista.unam.mx):

"... El diseño por contratos puede ser visto como la aplicación a la construcción de software de los contratos que rigen los asuntos de las personas. Cuando dos personas establecen un contrato se desprenden, de éste, las obligaciones y beneficios de cada una. Este tipo de contratos en software especifican, en forma no ambigua, las relaciones entre las rutinas y los llamadores de las mismas..." leer mas


0_o Profe, ¿y eso para qué sirve? - @earayo

Se hablo de la forma como se aplican temas que vimos en la universidad en el mundo real. La aplicación del álgebra lineal para la solución de problemas, como ejemplo se explico como se trabaja con vectores y matrices en el algoritmo del Page Rank de Google.

Se hizo el ejemplo(ver en Github) con Clojure (clojure.com, clojure.org) una muestra aproximada de como se implementa el Page Rank.

https://clojuredocs.org/


Dilo en Kotlin - @danielgomezrico

Presentando el lenguaje de programación Kotlin  que corre sobre la máquina virtual de Java (JVM).

Para probarlo https://kotlinlang.org/
Tutorial Koans  https://kotlinlang.org/docs/tutorials/koans.html


Gestión de energía usando hardware Open-Source - @jotathebest

IoT: El intenet de las Cosas

Big Data

Hardware Abierto
Arduino
Raspberry PI
NodeMCU basados en el ESP8266

Herramientas como Ubidots



Así implementamos una Android app que podrá ser usada por millones de personas - @cdmunoz

Puntos a tener en cuenta al inicio de un proyecto en Android:
  • Patrones de Diseño
  • Escalabilidad
  • Repositorios de Datos
  • Reactive Programming
  • Activities only or Fragments
  • Backend an API integration
  • Cual SDK usar
  • En cuales dispositivos sera desplegado
  • Material design
Initial Stack
  • Dagger for dependency injection
  • RxJava
  • Butterknife
  • Standar Android API
    • Vectores drawables
    • Activities and Fragments
    • Standard Gradle
The Evolution
  • Asynchronous images loading an chaching
  • HTTP connections
  • Mapping between API level and View Model
  • Pimped Gradle
  • Verbose Code
  • UI optimizations
  • Animations
  • Continuous Integrations
  • Custom UI components
  • Feature flag
To
  • Retrofit
  • Picasso
  • Mapstruct
  • RxBindings
  • Retrolambda
  • gradle flavors
  • Multidexing
  • Calabash
  • Transition everywhere
  • Recyclerviews over Listview
  • Jenkins and Concourse
Desarrollar con buenas practicas
  • SCRUM
    • preplanning
    • planning
    • Daily meetings
    • Retrospective
  • Technical analysis
  • huddles
  • Code reviews
  • Learning sessions and android labs
  • Instagram Style (Hacer que funcione, no importa como e ir mejorandolo)

 Mesos is the answer  - @scastillo

Pagina Oficial:

"...Apache Mesos abstracts CPU, memory, storage, and other compute resources away from machines (physical or virtual), enabling fault-tolerant and elastic distributed systems to easily be built and run effectively..."  http://mesos.apache.org/


Otros enlaces:

"... is an open-source cluster manager that was developed at the University of California, Berkeley. It "provides efficient resource isolation and sharing across distributed applications, or frameworks"..." (Wikipedia)

"...Mesos nos ofrece una capa de abstracción entre los servidores y los recursos, es un concepto un poco diferente, pero a mi parecer cuando lo entiendes me parece excepcioal. Por otro lado Mesos te proporciona una gestión de cluster y como una una gestión de los recursos del cluster..." (http://maauso.com/apache-mesos/)

jueves, 16 de enero de 2014

Tutorial de Microcontroladores Básico

Con este video voy a dar por iniciada una serie de videos que iré publicando semana a semana sobre la Programación de Microcontroladores PIC (Microchip) en lenguaje ensamblador.

Esta serie tiene como objetivos hacer una introducción a la programación de microcontroladores, apoyándome en la información que entrega el fabricante y con base en ejemplos, aunque al principio será necesario un poco de teoría con los conceptos básicos, pondré a su disposición los videos, las diapositivas usadas en los videos y el código fuente de los ejemplos.

Espero les sea muy útil!!!!


A cacharrear!!!!


domingo, 12 de enero de 2014

El nuevo MPLABX, reemplazo del MPLAB



Para programar microcontroladores PIC la empresa fabricante de estos (MICROCHIP) nos regala todas las herramientas necesarias para desarrollar, una de ellas llamada MPLAB, que es un entorno de desarrollo completo para la programación de microcontroladores. Pues resulta que nuestros amigos de MICROCHIP liberaron un nuevo entorno para que programemos llamado MPLABX, que es una notable mejora al anterior.



¿Que tiene de nuevo?
Pues que esta optimizado para trabajar en lenguaje C, la configuración de cada proyecto es independiente y algo que me parece muy bueno es que es MULTIPLATAFORMA, lo que significa que nos funciona tanto en Windows como en Linux y en Mac OS.

Aquí les dejo un video de introducción al MPLABX trabajando con el lenguaje ensamblador!!!
http://youtu.be/sWHAiXmJ2Hg

enlace

http://youtu.be/sWHAiXmJ2Hg



A cacharrear pues!!!!

lunes, 19 de noviembre de 2012

Plataforma Arduino, Microcontroladores

Es una plataforma para el desarrollo de sistemas microcontrolados, que esta bajo el concepto de hardware libre (copiado, distribuido, modificado, y fabricado libremente). ARDUINO esta diseñado con microcontroladores ATMEL de diferentes referencias, lo que nos lleva a tener varias plataformas ARDUINO.

Lo mejor de Arduino es que esta muy bien documentado su uso y hay mucha informacion.

Para mas informacion podemos visitar:

http://arduino.cc/es/Guide/Introduction
http://es.wikipedia.org/wiki/Arduino


Video sobre Arduino


Placas ARDUINO

Arduino Uno

















Arduino Mega 2560



















Arduino Ethernet



















martes, 29 de mayo de 2012

Contador de 0 a 99 con pulsadores

El contador es de 0 a 99 usando la tecnica de la multiplexion, tiene un pulsador para la cuenta ascendente y otro para la cuenta descendente.

IMPORTANTE      recomiendo comparar este codigo con el que no tiene pulsadores.

Video de la implementacion


el circuito esquematico


y el codigo fuente

    LIST P=16F886
    INCLUDE P16F886.INC
    ERRORLEVEL -302
    
    __CONFIG _CONFIG1, _INTOSCIO & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF
    __CONFIG _CONFIG2, _BOR40V & _WRT_OFF
    
    CBLOCK    0X20
    PDel0, PDel1, DECENAS, UNIDADES
    ENDC
    


    ORG    00
    GOTO    CONFIGURA


RET_10MS  movlw     .8        ; 1 set number of repetitions (B)
        movwf     PDel0     ; 1 |
PLoop1  movlw     .249      ; 1 set number of repetitions (A)
        movwf     PDel1     ; 1 |
PLoop2  clrwdt              ; 1 clear watchdog
        clrwdt              ; 1 cycle delay
        decfsz    PDel1, 1  ; 1 + (1) is the time over? (A)
        goto      PLoop2    ; 2 no, loop
        decfsz    PDel0,  1 ; 1 + (1) is the time over? (B)
        goto      PLoop1    ; 2 no, loop
PDelL1  goto PDelL2         ; 2 cycles delay
PDelL2  clrwdt              ; 1 cycle delay
        return              ; 2+2 Done

        
TABLA    ADDWF    PCL,F
    RETLW    B'00111111'
    RETLW    B'00000110'
    RETLW    B'01011011'
    RETLW    B'01001111'
    RETLW    B'01100110'
    RETLW    B'01101101'
    RETLW    B'01111100'
    RETLW    B'00000111'
    RETLW    B'01111111'
    RETLW    B'01101111'
    
MOSTRAR    MOVF    UNIDADES,W    ;cargo el valor de las unidades
    CALL    TABLA
    BSF    PORTC,5    ;activo el display unidad
    BCF    PORTC,4    ;desactivo el display decena
    MOVWF    PORTB
    CALL    RET_10MS
    MOVF    DECENAS,W    ;cargo el valor de las decenas
    CALL    TABLA
    BCF    PORTC,5    ;desactivo el display unidad
    BSF    PORTC,4    ;activo el display decena
    MOVWF    PORTB
    CALL    RET_10MS
    RETURN
    
VER    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR
    CALL    MOSTRAR    ;LOGRO UN RETARDO DE 160ms
    RETURN
    
CONFIGURA     NOP
BANKSEL    ANSEL    ;paso al banco 3
CLRF    ANSEL
CLRF    ANSELH
BANKSEL TRISB
MOVLW    B'01101100'
MOVWF    OSCCON
MOVLW    B'00000011'
MOVWF    TRISA
MOVLW    B'00000000'
MOVWF    TRISB
MOVLW    B'00000000'
MOVWF    TRISC
BANKSEL    PORTB    ;paso al banco 0
CLRF    PORTB
CLRF    DECENAS
CLRF    UNIDADES

INICIO   CALL MOSTRAR
BTFSC PORTA,0
GOTO UP
BTFSC PORTA,1
GOTO DOWN
GOTO INICIO 



UP CALL     VER    
INCF     UNIDADES,F
MOVLW     .10
XORWF     UNIDADES,W
BTFSC     STATUS,Z
GOTO     INC_DECENAS
CALL     MOSTRAR
GOTO     INICIO
    
INC_DECENAS     CLRF     UNIDADES
    INCF     DECENAS,F
    MOVLW     .10
    XORWF     DECENAS,W
    BTFSC     STATUS,Z
    CLRF     DECENAS
    CALL     MOSTRAR
    GOTO     INICIO
   
DOWN CALL     VER    
DECF     UNIDADES,F
MOVLW     .255
XORWF     UNIDADES,W
BTFSC     STATUS,Z
GOTO     DEC_DECENAS
CALL MOSTRAR
GOTO     INICIO
    
DEC_DECENAS     MOVLW .9
MOVWF UNIDADES
    DECF     DECENAS,F
    MOVLW     .255
    XORWF     DECENAS,W
    BTFSS     STATUS,Z
    GOTO INICIO
    MOVLW .9
    MOVWF DECENAS
    CALL MOSTRAR
    GOTO     INICIO
        
    END



Copyright 2012 edwtron
       
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o  una version superior.
     Leer la licencia GNU gpl para mas detalles. 

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".

jueves, 22 de julio de 2010

Instalando Code::Blocks; Un IDE para C++

CODE::BLOCKS
es un entorno de desarrollo integrado libre y multiplataforma para el desarrollo de programas en lenguaje C++. Está basado en la plataforma de interfaces gráficas WxWidgets, lo cual quiere decir que puede usarse libremente en diversos sistemas operativos, y está licenciado bajo la Licencia pública general de GNU. LEER MAS

El parrafo anterior fue tomado de la Wikipedia        http://es.wikipedia.org

Estos son los pasos para instalar Code::blocks en Linux ( en mi caso fue Debian Lenny)


Lo primero que tenemos que hacer es descargar code::Blocks de este lugar
http://www.codeblocks.org/

Entramos a la carpeta donde los guardamos y lo descomprimimos

tar -xzvf codeblocks-********* según la versión que tengamos

así entonces tenemos varios archivos para instalar, pero primero hay que satisfacer algunas dependencias.

Debemos tener instalado “build-essential” y si no es el caso entonces lo instalamos

apt-get install build-essential

y despues instalamos el resto de librerías

apt-get install libwxbase2.8-0 libwxgtk2.8-0 binutils libwxgtk2.8-dev libwxgtk2.8-dbg

si no se instala debemos fijarnos en la salida del apt para saber que dependencias no estamos cumpliendo y las instalamos.

Ahora nos situamos donde desempaquetamos el codeblocks e instalamos en el siguiente orden

dpkg -i libcodeblocks****        la versión que tengamos
dpkg -i codeblocks*****
dpkg -i libwxsmithlib****
dpkg -i codeblocks-contrib****
dpkg -i codeblocks-dbg****

los asteriscos los reemplazamos con la versión que descargamos, aunque presionando el tabulador se nos completa el nombre, ahhhh claro eso si estamos ubicados en la carpeta del codeblocks que bajamos.
Y listo ya lo podemos usar, en el menú de gnome—programación--codeblocks
tengamos en cuenta que también hay versión para usar con windows.


domingo, 18 de julio de 2010

GUIA DE INICIO RAPIDO PARA PROGRAMAR MICROCONTROLADORES PIC DE MICROCHIP


Que es un microcontrolador?

Inicialmente podríamos decir que un microcontrolador es un circuito integrado que se puede programar para que haga lo que nosotros queremos, pero es eso y mucho mas, es una computadora, claro esta que del tamaño de un circuito integrado, pero hace las mismas funciones que esta.
Un microcontrolador permite entrada de información (entradas), tiene la capacidad de procesar esa información, y entrega los resultados del procesamiento(salida), siendo este el esquema básico de una computadora, solo que a una escala muy pequeña.

Que necesitamos para hacer funcionar un microcontrolador?
Un programa que le diga que es lo que tiene que hacer, esto es lo mismo que hacen los programas de computadora, le dicen a esta que hacer.

Y como hacemos estos programas?
Los microcontroladores son sistemas digitales, por lo tanto entienden unos y ceros, pues entonces sera cuestión de escribir el programa en secuencias de unos y ceros, lo que a nosotros los humanos nos resultaría una tarea muy complicada, entonces para ello se inventaron los lenguajes de programación, que son mas fáciles de entender por nosotros y nos facilitaran la tarea de escribir los programas, para el caso de los microcontroladores cada fabricante proporciona un lenguaje con el cual se pueden controlar estas maquinas llamado lenguaje Ensamblador( Assembler ). mas adelante veremos que también se pueden programar con otros lenguajes.

Fabricantes de microcontroladores hay muchos, Freescale(Motorola), Intel, Microchip, Atmel, entre otros. Yo me ocupare de los que fabrica la empresa Microchip, mas conocidos como PIC's. La razón para usarlos es lo fácil que es conseguirlos, la variedad y lo económicos que resultan, ya que hay muchas referencias de PIC's y las herramientas para trabajar con ellos son muy fáciles de conseguir.

Para empezar no dirigimos a la pagina de Microchip y descargamos el programa MPLAB IDE (http://www.microchip.com ), este programa es para escribir en ensamblador lo que queremos que haga el microcontrolador y después traducirlo al lenguaje que entiende la maquina, a este proceso se le denomina comúnmente “compilar el programa” , claro que este programa tiene muchas mas funciones, también nos permite simular el programa, que es muy útil para encontrar errores cuando no nos funciona como queremos.

Bueno la idea era explicar la forma de programar un microcontrolador de forma fácil y no extenderme tanto, pero resulta muy difícil por que este tema es muy extenso, así que voy a empezar y espero que practicando vamos aprendiendo.

Instalamos el MPLAB

En windows
vamos a : Inicio-Programas-Microchip-MPLAB IDE

En Linux
Lo instalamos con el Wine por que no tenemos una versión de este entorno gráfico para Linux, claro que si en modo consola. Existen otras formas de trabajar los PIC's en Linux como el Piklab, que es un entorno gráfico Open Source.

Esta es la vista al iniciar el MPLAD IDE, inicialmente vamos a hacer un programa sencillo, no crearemos un proyecto. Podemos cerrar las dos ventanas internas que aparecen.



Esta es la vista del PikLab para Linux
Vamos a File-New y nos abre una hoja de un editor de texto donde escribiremos nuestro primer programa. Aparece la ventana con el nombre Untitled, por que no hemos dado un nombre a nuestro programa.


Los archivos con el código de nuestro programa (código fuente) se deben guardar con la extensión .ASM, el programa que vamos a hacer como ejemplo hará que el micro prenda y apague un LED conectado en uno de sus pines ( el pin RB0 en este caso), este es como el “hola mundo” en la programación de microcontroladores, así que lo llamaremos onoff.asm.

En este punto debemos ya escoger que referencia de microcontrolador vamos a trabajar, ya que como habíamos dicho antes hay muchas referencias. El mas básico y mas usado de todos lo PIC para el aprendizaje es el PIC 16F84A, por lo que entonces el primer programa lo voy a hacer con este microcontrolador, pero después seguiré usando el PIC 16F88, ya que es un PIC mas potente que el anterior.

Empecemos copiando este código en el MPLAB

                  LIST P=16F84A
              INCLUDE P16F84A.INC

              __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

              ORG      00
              GOTO     CONFIGURACION

CONFIGURACION NOP
              BANKSEL  TRISA
              CLRF     TRISB
              BANKSEL  PORTB
              CLRF     PORTB

CICLO         BSF      PORTB,0
              BCF      PORTB,0
              GOTO     CICLO

              END

Noten que se mantiene un orden respecto a las columnas (3 columnas), esto lo hacemos con el tabulador y es muy importante que se respete este orden. Después de haber copiado el programa, lo guardamos, en la opción File Name escribimos el nombre onoff.asm(no olviden la extensión .asm) y el la opción Files of Tipes seleccionamos la segunda opción “Assembly Source Files (*.asm.......) y le damos guardar(Save).
Notemos como al guardarlo cambian los colores del texto en el código.


Ya tenemos listo el código fuente. Recordemos que este esta escrito en el lenguaje de programación llamado Ensamblador o Assembler, y que la maquina no entiende esto, por eso lo debemos traducir para que la maquina lo entienda (compilar ) y para ello debemos seguir los siguientes pasos:

Seleccionar el microcontrolador en la opción Configure—Select Device nos aparece la siguiente ventana y seleccionamos nuestro PIC16F84A.


Compilar el programa con la opción Project—Quickbuild onoff.asm
y si todo sale bien no aparece esta ventana diciendo que la compilación fue un éxito, que tuvo 0 errores y BUILD SUCCEEDED


Ya tenemos nuestro programa listo para enviárselo al PIC, pero de eso nos ocuparemos mas adelante, por ahora nos interesa saber como se puede hacer la simulación en el MPLAB.

Vamos Debugguer—Select Tool—MPLAB SIM. Esto es para activar el simulador.

Para la simulación tenemos las siguientes opciones que aparecen en el menu Debugguer y nos van a ser de mucha utilidad

Processor Reset F6 Reset del procesador
Step Into F7 Simulación paso a paso
Steo Over F8 Simulación paso a paso realizando las subrrutinas en tiempo real( las llamadas con CALL)

Al seleccionar el MPLAB SIM y presionar F6 tenemos la siguiente vista, noten la FLECHA VERDE que aparece en la linea 7 despues de la sentencia “ORG 00” (llamado vector de reset), esto es por que alli es donde empieza el procesador despues de un reinicio(reset).




Si presionamos F7 vemos como el programa va avanzando siguiendo las ordenes que dimos al microcontrolador.
Como lo mensione al inicio este programa enciende y apaga un led conectado en el pin RB0 del micro, para observar esto en la simulacion hacemos lo siguiente:

vamos al menu View—Watch y obtenemos la siguiente vista



Vamos a organizar las dos ventanas para que se puedan ver al mismo tiempo y podamos observar como se comporta el microcontrolador en la simulación.



En la ventana Watch hacemos click derecho sobre la siguiente barra


y escojemos del menu que se nos muestran varias opciones, solo las 3 siguientes(por ahora)

Symbol Name
Decimal
Binary

y la barra nos quedara así 



luego escogemos de la lista






que esta al lado del boton



la opción PORTB presionamos el botón y tendremos la siguiente vista


así ya tenemos todo listo para simular nuestro primer programa.



Básicamente las siguientes lineas de código son las que hacen prender y apagar el LED:

CICLO       BSF       PORTB,0
            BCF       PORTB,0
            GOTO    CICLO

Para entender la simulación debemos saber que los pines del microcontrolador están relacionados con algo que se llaman puertos de entrada/salida, nuestro micro tiene dos puertos el PORTA y el PORTB (así los bautizo el fabricante), cada uno de estos puertos esta dispuesto internamente en el micro como un Byte ( 8 bit's, se acuerdan de la electrónica digital, aquí aplica!!), por eso es que en la gráfica del Watch aparecen al frente del PORTB y debajo de la palabra Binary 8 ceros ( 00000000 ) que representan un Byte ( también se le llama REGISTRO), que a su vez representa 8 pines del micro asociados con el PORTB, osea que cada bit del registro (Byte) PORTB es un pin del circuito integrado ( del PIC), que trabalenguas, miremos la siguiente tabla:

PORTB
RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Presionemos F7 hasta llegar(la flecha verde se mueve cada vez que presionamos F7) a la linea “GOTO BSF PORTB,0”, note que el RB0 es igual a 0 (cero)


presionemos F7 y vemos como cambia a 1 (uno).


Presionemos F7



presionamos F7 y vemos como se repite este ciclo una y otra vez, logrando con esto que el LED conectado al pin RB0 encienda y apague.
Presionamos F7 y vemos como la flecha verde se posiciona de nuevo al frente de ciclo.


Con esto doy por terminada esta guiá de iniciación a la programación de microcontroladores PIC, ya con esto lograremos escribir y simular nuestros programas, en una próxima guiá describiré los pasos para lograr hacer que funcione en un board con un micro de verdad( y no en simulaciones)



Usted puede compiar, distribuir y/o modificar este doucmento bajo los terminos de la GFDL (licencia de documentacion libre de GNU) versión 1.3 o superior publicada por la fundacion de sontware libre.

 Copyright (C)  Edwin Espinosa
    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".