|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - pic-man
1
« en: Domingo 7 de Diciembre de 2008, 14:36 »
El problema ahi es el cable. Los adaptadores usb-serial no sirven para programar pics, esa es la razón por la que no tienes los 13V necesarios para programar el pic.
2
« en: Viernes 5 de Diciembre de 2008, 21:20 »
Efectivamente Pegasux, la operacion XOR es la que invierte, su tabla de verdad es esta:
a b s 1 1 0 0 1 1 1 0 1 0 0 0
así que haciendo la operación XORWF como dice Pegasux siempre se complementarán los bits pares.
4
« en: Domingo 2 de Noviembre de 2008, 19:16 »
Encontré la solución, el código correcto es: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim data(1) As Byte data(0) = Asc(1) SerialPort1.Write(data, 0, 1) Label1.Text = data(0) End Sub
En ese caso estoy transmitiendo un 1 en ASCII, la función Asc() obtiene el código numérico correspondiente al caracter ASCII, siempre es más fácil escribir el símbolo ASCII que escribir un 49. Me acabo de dar cuenta que puse este tema en un subforo equivocado, no se por que no vi el VB.Net cuando escribi esto.
5
« en: Sábado 1 de Noviembre de 2008, 15:03 »
Compañeros foreros, quiero ver si me pueden ayudar con un problema que tengo. Resulta que estoy realizando un proyecto en el cual debo comunicar un microcontrolador PIC 16F con una computadora. Lo que es la programación del pic lo domingo pero no se como hacerlo en la computadora. Dado que no se programar decidí probar el Visual Basic Express 2008. Para la comunicación serial uso el componente SerialPort de Visual Basic 2008, pero algo no hago bien. Tengo que enviar tres caracteres distintos, uno dando click en el botón respectivo, los caracteres son <, = y >. Hago doble click en algún botón e ingreso el siguiente código Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click SerialPort1.Write("<") End Sub
el caracter < lo pongo entre comillas porque tengo entendido que asi se deben mandar las strings, aunque no se si haya alguna otra manera de hacerlo, si deba escribirlo en hexadecimal o si hay que hacerlo de otra manera. Después el pic al recibir uno de esos caracteres debe dar una respuesta a la PC para que sepa que el envío tuvo éxito. En este caso el pic envia un 1 en ASCII (osea un 0x31 hexadecimal), en visual basic intento recibirlo así Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived Dim rx As Integer rx = SerialPort1.ReadByte() End Sub
Pero de nuevo no se si esa es la forma correcta de recibir un dato. Espero me puedan ayudar porque al probar el programa con el pic no funciona. Para ver que el pic no fuera el del problema programé otro pic que envía esos 3 caracteres y el otro al recibirlos si da una respuesta satisfactoria, entonces el problema debe estar en Visual Basic. Para adaptar los niveles ttl del pic a rs232 de la pc uso este circuito http://www.pablin.com.ar/electron/circu ... /index.htm el circuito funciona, ya lo he probado con éxito en otras ocasiones así que solo me queda culpar a mi programación en visual basic. ¿Alguien me puede ayudar? Muchas gracias!
6
« en: Jueves 24 de Julio de 2008, 18:18 »
Hola a todos, en forosdeelectronica.com comencé un tema sobre generación de una señal de video NTSC usando un PIC 16F88. Es un proyecto en el que estoy trabajando y que quisiera compartir con ustedes y así tal vez entre todos logramos hacer algo bueno. Estoy trabajando con un PIC 16F88 con un cristal de 12MHz. La velocidad es suficiente para generar las líneas horizontales: aproximadamente 12us de sincronización y 52us de señal de video, teniendo un total de 64us por línea. Hasta ahora tengo un código de ejemplo con el que obtengo un video desentrelazado de 260 líneas de resolución vertical. El video lo pueden ver aqui: [youtube:2f931be3]http://www.youtube.com/watch?v=VWmkDE7lu0M[/youtube:2f931be3] Como pueden ver la imágen se recorre hacia arriba y bota de vez en cuando, ese scroll no es intencional, lo que pasa es que aún no he logrado la sincronización vertical de la señal y por eso creo que se recorre hacia arriba. He encontrado alguna información sobre señales NTSC Monocromáticas (que es el video que quiero generar) pero no he comprendido en que consiste la sincronización vertical ni como llevarla a cabo. En la página del proyecto PIC Breakout aparece un diagrama de sincronización vertical pero no especifican los tiempos que debe durar cada valor de la señal. Sigo investigando como realizar la sincronización vertical. Si alguien aquí tiene conocimientos sobre señales de video NTSC agradecería cualquier tipo de ayuda o información. Espero que este proyecto les sea interesante y por supuesto que acepto cualquier ayuda y colaboración. Adjunto el código fuente utilizado para el video.
7
« en: Sábado 8 de Marzo de 2008, 17:38 »
MARYLUZR la division es una serie de restas sucesivas, asi como la multiplicacion es una serie de sumas sucesivas. Mediante restas se hace la division pero no entiendo como podria ser una resta abreviada porque de hecho son muchas restas.
8
« en: Sábado 2 de Febrero de 2008, 19:55 »
En mi blog sobre microcontroladores PIC acabo de publicar una implementacion del algoritmo de Booth para multiplicar numeros binarios de 8 bits con signo. El algoritmo de Booth es un algoritmo que permite multiplicar numeros binarios con signo mediante el complemento a dos. Es un metodo rapido y sencillo para realizar multiplicacion de numeros binarios. La explicacion detallada del algoritmo se encuentra en el post Multiplicación mediante el algoritmo de Booth, asi como una implementacion en una rutina para multiplicar numeros de 8 bits (numeros del -127 al 127 unicamente). Dejo esto aqui para todo aquel que quiera aprender sobre ese algoritmo asi como tambien para aquellos que esten necesitando una rutina para multiplicar numeros con signo. Un saludo!
9
« en: Domingo 30 de Diciembre de 2007, 18:49 »
Este es un tema viejo asi que es probable que el_riveraa no lea esto pero convertir de hexadecimal a bcd en un pic es exactamente igual a convertir de binario a bcd ya que escribir un numero hexadecimal en un registro es lo mismo que escribirlo binario, las representaciones numéricas nos sirven a los humanos para entenderlas asi que es lo mismo tener 0x0A que b'00001010' y que d'10' asi que la rutina que puso Jonathan sirve para convertir de binario a BCD. En mi blog puse otras rutinas para convertir de binario a BCD, a quien le interese estas son: Binario a BCD - Recorre y Suma+3Conversion Binario a BCD - Convertir un numero de 8 bitsRecomiendo la primera (Recorre y Suma+3) por ser mas simple aunque las dos sirven para convertir numeros de 8 bits.
10
« en: Lunes 9 de Julio de 2007, 08:32 »
El F84 aún está en producción, sin embargo lalo_soft tiene razón. Ese microcontrolador es muy sencillo y puede ser ideal para principiantes, sin embargo yo recomendaría el pic 16F628 que es compatible totalmente con el 16F84 con el añadido de contar con un oscilador interno de 4Mhz y 16 lineas de entrada y salida (3 más que el F84).
Para mi el 16F628 es el pic ideal para principiantes.
11
« en: Sábado 30 de Junio de 2007, 04:03 »
como dice Huguen_aus_Tirol, todos los pines del puerto A en el pic 16f87x por defecto están configurados como entradas analógicas, en la hoja de datos se especifica eso, para hacer los pines del puerto A entradas y salidas digitales debes cargar un 0x06 en el registro ADCON1
12
« en: Viernes 22 de Junio de 2007, 22:51 »
Cuando se reestablezca la energía y vuelvas a tener 5 volts supongo que puedes hacer que entre un pulso por el pin RB0/INT y de esa manera se despertaría el micro. Asociando una interrupcion al pin RB0/INT creo que puedes volver del modo sleep, aunque no estoy seguro ya que nunca he utilizado ese modo.
13
« en: Viernes 22 de Junio de 2007, 18:07 »
En mi blog sobre microcontroladores PIC publique dos rutinas de conversion de un numero Binario de 8 bits a BCD. Son dos rutinas distintas que sirven para obtener exactamente el mismo resultado. La primera la hice convirtiendo el numero binario a bcd mediante divisiones y la segunda rutina la hice utilizando el algoritmo Recorre y Suma+3. La explicacion de como funcionan las rutinas se pueden encontrar en los siguientes enlaces: Binario a BCD mediante divisionesBinario a BCD mediante el algoritmo Recorre y Suma+3Para convertir numeros de 8 bits las dos rutinas tienen practicamente la extension, sin embargo para convertir numeros mayores (16 o 32 bits) la que usa el algoritmo de corrimientos y sumas es mas facil de modificar que la que emplea divisiones. Revisenlas y de seguro a alguien le sirven. Tambien subo las rutinas al foro.
14
« en: Jueves 3 de Mayo de 2007, 05:48 »
Marcelita, como Huguen_aus_Tirol ya te dijo eso que quieres hacer es algo muy sencillo y si consultas la hoja de datos no debes tener mayor complicacion. Supongo que vas empezando con esto de los microcontroladores, muchas veces la manera más fácil de aprender es mediante ejemplos, echale un ojo a este tutorial sobre encender y apagar leds, el ejemplo es para el pic 16f628 pero fácilmente podrias adaptarlo al pic 16f877, aunque debes leer la hoja de datos para que sepas bien como adaptar el código. Además del ejemplo que te digo también te recomiendo que leas esta otra página, Retardos por software, donde explico como funciona la lógica de los retardos hechos con lazo como dice Huguen_aus_Tirol. Espero que puedas hacer tu trabajo y si tienes alguna duda o problema específico no dudes en preguntar al foro, pero recuerda, aquí nadie va a hacer los trabajos por ti!
15
« en: Viernes 30 de Marzo de 2007, 17:41 »
Yo si he usado sofware pirata, pero si hay alguna alternativa gratis (y libre) que funcione sin pensarlo me paso a esa alternativa. Yo creo que no es tanto un problema de cultura sino un problema de capacidad adquisitiva, ya han dicho por ahí que el costo de las licencias es siempre muy exagerado, por eso creo que para un uso doméstico el hecho de no pagar una licencia no es nada grave y el hecho de que alguien se instale una version crackeada de un programa no afecta a la compañia que hace dicho programa, lo mas probable es que lo instale pirata porque no tiene dinero para pagar la licencia así que de cualquier modo no compraría el programa. Sin embargo creo que en el caso de una empresa, esta si debe comprar las licencias de los programas que use, simplemente por cuestión de ética, si gana dinero haciendo uso de esos programas lo correcto es que adquiera los programas legalmente. Además para mi una cosa es usar software sin licencia y otra comprar software pirata. La primera como lo dije no la veo grave, en este caso ese es el software que bajas de internet o que te pasa algun amigo, sin embargo el segundo caso para mi si es ilegal porque la persona que te esta vendiendo el programa no tiene la licencia para hacer eso y muchas veces ese tipo de gente lo que hacen es abusar de los demás ya que venden un programa que descargaron gratis de internet casi a precio de uno original. Yo si uso software sin licencia pero jamás he pagado por un programa asi
16
« en: Miércoles 14 de Marzo de 2007, 01:48 »
Como ya dijo Huguen_aus_Tirol los 4 bancos de memoria se seleccionan a traves de los bits RP0 y RP1 del registro STATUS de la siguiente manera RP1 RP0 0 0 BANCO 0 0 1 BANCO 1 1 0 BANCO 2 1 1 BANCO 3
si te fijas en el codigo que pudiste primero ponen en cero (bcf) el bit RP0 y despues ponen en cero el bit RP1, eso no es para nada redundante, lo hacen para asegurarse asi de seleccionar el banco de memoria 0, despues hacen uno (bsf) el bit RP1 y dejan en cero el RP2 con eso seleccionan el banco 2, posteriormente ponen en 1 los dos bits, asi pasan al banco 3 espero no haberme confundido con el orden de los bancos, sigue el consejo de Huguen_aus_Tirol y consulta la hoja de datos del pic
17
« en: Viernes 2 de Marzo de 2007, 04:02 »
Saludos a todos. Hoy publique en mi sitio una guia para Instalar MPLAB en Ubuntu 6.06, basicamente es una traduccion de una guia muy buena de William Spinelli Instalalling MPLAB on Ubuntu 6.06 pero corregida y aumentada! Bueno, esta guia es para todos aquellos que utilicen linux y que no hayan encontrado ningun sustituto a MPLAB.
18
« en: Lunes 26 de Febrero de 2007, 00:01 »
supongo que ese ejemplo usa un include para incluir el archivo 16f84.inc, en ese archivo la etiqueta PORTB hace referencia a la direccion 0x06, al momento de cambiar al banco 1 y borrar PORTB en realidad está borrando el registro TRISB que se encuentra en la direccion 0x86, pero al estar ya en el banco 1 se puede mandar a escribir en la direccion 0x06 ya que de otro modo al compilar el codigo aparecen mensajes de warning, aqui lo importante es darse cuenta que al estar en el banco 1 no se accede a PORTB sino a TRISB, asi que si despues quieres acceder a algun registro del banco 0 debes cambiar de banco y despues acceder a ese registro espero que haya quedado un poco claro
19
« en: Viernes 23 de Febrero de 2007, 15:56 »
si programas en ensamblador puedes utilizar la instruccion subwf para realizar la comparacion, esta operacion resta el contenido de W a algun registro f, si el resultado es mayor a 0 (es decir f es mayor que W) la bandera de carry se pone a 1 y la de zero a 0, si el resultado es igual a 0 ambas banderas (carry y zero) se ponen a 1 (f es igual a W) y por ultimo si el resultado es menor que 0 (W es mayor que f) las banderas de carry y zero se ponen a 0, asi que realizando la comparacion y despues checando banderas con btfss o btfsc puedes saber si el valor es mayor o menor al que ya tenias antes
20
« en: Jueves 15 de Febrero de 2007, 15:21 »
Yo para no extrañar el bloc de notas de windows utilizo leafpad para esas notas pequeñas y sin importancia, aunque leafpad como editor de textos se queda mas bien corto, lo tengo solo para no sentir nostalgia por el bloc de notas
21
« en: Jueves 15 de Febrero de 2007, 05:20 »
pues no es nada franluis, me da gusto que mi rutina te haya servido, bienvenido al foro y espero poder seguir ayudandote, saludos!
22
« en: Jueves 15 de Febrero de 2007, 05:09 »
gracias por ese enlace Jonathan, yo en la escuela tal vez tenga que realizar un proyecto parecido asi que a mi tambien me sirve
23
« en: Sábado 10 de Febrero de 2007, 02:57 »
Muchas gracias Jonathan, cualquier rutina que desees compartir será muy muy bienvenida, para cualquier cosa me puedes contactar aqui en el foro o al correo elpicman[en]gmail.com
24
« en: Sábado 10 de Febrero de 2007, 01:51 »
Hola, este mensaje es para comentarles acerca de un proyecto que tengo sobre una página dedicada a la programación de microcontroladores PIC. Hace unos meses decidí comenzar a crear programas y rutinas básicas (aquí subí ejemplos sobre el manejo de un lcd y sobre decodificación de un teclado matricial) para que todos aquellos que van empezando en esto de los microcontroladores puedan tener ejemplos de referencia. Pues bien hace un més comenzé un sitio web en el que poco a poco voy poniendo ejemplos y trató de manera más o menos afortunada de explicar cómo funcionan los microcontroladores. Espero que este mensaje no sea calificado como spam, solamente quiero dar a conocer mi página ya que creo que puede ser de utilidad a todas las personas que quieren manejar pics y quieran seguir alguna referencia. No había anunciado antes este sitio ya que había poco material. Aún hay poco pero creo que puede resultar interesante, cosas como encender y apagar leds, crear rutinas de retardo, entre otras. Bueno, como dije espero que a alguien le sea de utilidad, la dirección de la página es http://micropic.wordpress.com/y por supuesto cualquier colaboración, comentario, crítica o sugerencia será bien recibida. Un saludo!
25
« en: Sábado 30 de Diciembre de 2006, 19:16 »
Este es un programa básico muy útil para aprender a utilizar un teclado matricial de 16 teclas con un pic 16f628. Lo que hace el programa es decodificar el teclado mostrando la tecla presionada en un display cátodo común de 7 segmentos. El programa incluye también una rutina para prevenir rebotes del teclado. Espero que a alguien le sirva este programa y que lo puedan utilizar en sus diseños Adjunto un archivo comprimido con el código en ensamblador y el diagráma esquemático hecho en isis proteus, el diagráma es un poco caótico, todas las resistencias del display son de 330 ohms. Espero les sirva! Pronto subo este y el ejemplo pasado (control de lcd usanado 4 bits) al ftp
|
|
|