|
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 - Huguen_aus_Tirol
Páginas: 1 [2] 3 4 ... 13
26
« en: Martes 22 de Mayo de 2007, 08:04 »
Hola! Hace ya bastante habia utilizado el LM35. Estuve buscando el programa, pero no lo encuentro... de cualquier manera algo me acuerdo. En primer lugar, recuerdo que habia amplificado la senal del sensor por 2; el sensor entrega 10mV/°C y multiplicando por 2 tenemos 20 mV/°C, ya mucho mas cerca de los 19mV por bit del conversor. Use un OP07, de bajo offset. Esto simplifica un poco las cosas en el programa. Tambien es bueno un buen filtrado. En cuanto al programa, habia hecho varias mediciones y promediar. Con algo de trabajo se puede conseguir una indicacion en decimas de grado; pero en asembler es algo complicado (no imposible) Como experiencia, tambien puedo agregar que con estos sensores (LM335/LM35) es bueno observar las indicaciones del fabricante y mantenerse dentro de las caracteristicas (voltage, corrientes, etc) y filtrado!! Si encuentro la rutina te la envio... Pero con senales analogicas fijate bien, a veces (por lo general) te da mas trabajo hacer un hardware que el programa Saludos
27
« en: Sábado 5 de Mayo de 2007, 21:51 »
Gracias Lalo! Ya estaré viendo los links que has dejado! Veré un poco en teoría el tema y luego me largo a lo práctico... ya les iré comentando. Nuevamente, muchísimas gracias por la ayuda!
Que pasen un buen fín de semana!!
28
« en: Sábado 5 de Mayo de 2007, 01:17 »
Hola a todos! Bueno, desde hace tiempo tengo una gran curiosidad con respecto a los PIC con puerto USB. Estuve buscando en la red, y encontré bastante... pero igual siguen las cosas algo confusas. Si alguien sería tan amable de indicarme el camino, le estaría enormemente agradecido! No es un tema urgente, pero he decidido a encararlo. Mi situación es la siguiente: *Tengo los data sheet, como suelen aconsejar en este foro (quién será!?) *En lo posible, la programación del micro en C (PCW) *Por el lado de la PC, me defiendo mejor en VisualBasic; se que no es lo mejor que hay, pero hasta el momento me ha servido... *De lo que es USB, solo se conectar el cable... *No es urgente, pero me gustaría hacer algo antes de que el USB pase a la historia (o yo, que es lo más probable, jeje!!) No quiero una solución en concreto, es decir que alguien me escriba el programa, y listo... Con los pasos a seguir, links, consejos, es más que suficiente... En cuanto aclare las dudas, encargo el micro y me pongo manos a la obra! Desde ya las gracias, y recuerden, primero a disfrutar del fin de semana, y luego el resto!
29
« en: Jueves 3 de Mayo de 2007, 00:46 »
Hola Marcelita, y bienvenida! Me suena a trabajo práctico de escuela o facultad... estás empezando, y es algo bastante simple, pero no te lo voy a resolver, jeje!! De cualquier manera, te doy una mano! En primer lugar, como siempre digo, consigue la hoja de datos, o data sheet; la encontraras en la página de Microchip... El stopwatch del Mplab no te sirve de ninguna manera para generar o simular ningún retardo... sí te sirve para ver cuánto tarda el micro en realizar determinada tarea; eso debería saberlo el profe! Para el retardo tienes dos opciones: un lazo, o un timer (temporizador), yo suelo usar el timer0 para estos retardos (ver el data sheet), pero si estás empezando, y para conformar al profe, hazlo con un lazo... Configurar el puerto como salida... que difícil de explicar!! Si te fijas, verás que existen unos registros llamados TRISx, donde "x" puede ser A, B, ... , según puertos tenga el micro (data sheet!) Cada bit de ese registro está asociado a un respectivo pin del micro. Alguna vez viste que un 0 se parece a la letra O?, y que el 1 se parece a la letra I? Entonces si quieres que el pin sea salida, escribes un 0 ("O"utput), y si quieres que el pin sea entrada, escribes un 1 ("I"nput). Otra vez, data sheet!! Intentalo!!, ya verás que es simple... y por supuesto, nos cuentas!! asi aprendemos todos Saludos, y aca estamos...
30
« en: Lunes 30 de Abril de 2007, 19:49 »
La opción más rápida y comercial es con un PLC, hay algunas marcas buenas y no muy caras, pero con esa cantidad de entradas y salidas, necesitarás algunos módulos extra, lo que hará subir el precio...
Si prefieres hacer algo tu mismo, con seguridad que económicamente te saldrá más barato, pero te llevará más tiempo (que también es dinero!). Desde ya tendrás que pensar en un microcontrolador, y ver cual te conviene. Lo más aconsejable, según mí, es comunicarte por el puerto serie. Es lo más simple, y te ahorras unas cuantas patas del micro.
Una pregunta: los 90 sensores, son digitales o analógicos?
Saludos!
31
« en: Lunes 23 de Abril de 2007, 06:29 »
Hola! El MPasm es el compilador, y se usa cada vez que quieras convertir tu código a hexadecimal. En cuanto al MPLab, es todo un entorno de desarrollo que ofrece Microchip; alli puedes editar, simular, compilar, etc tu programa, y hasta cargarlo en el micro (necesitas el grabador adecuado) Al compilar, el entorno lo que hace es llamar al MPasm... Puedes escribir tu programa con cualquier editor de text, por ejemplo con notepad, y luego compilarlo con el MPasm. Para el compilador solo hay que saber que parámetros o modificadores hay que pasarle al compilar, en la página de Microchip encontraras un pequeño pdf con esta información, solo busca por el MPasm y lo encontrarás. Si compilas desde el MPLab, no debes preocuparte mucho por estos modificadores... Allí también encontrarás algo de info sobre el MPLab, está todo en inglés.
Saludos
32
« en: Viernes 13 de Abril de 2007, 21:32 »
Hola! Me fije los dos primeros links... Segun mi punto de vista, si quieres gastar dinero comprando uno ya armado, gasta un poco más y te compras directamente de Microchip, creo que uno que soporta todos los dispositivos esta entorno a los €300. Y no es ningún clon... La otra es armar alguno de los que estan por aqui, te llevará una hora y te costará muchísimo menos que U$20!! Yo tengo hace ya mucho tiempo el que publiqué aquí y me funciona de maravillas... ni siquiera pienso en comprar alguno! Bueno, saludos... y piensalo bien! Te llevará más tiempo salir a comprarlo que armarlo tu mismo
33
« en: Viernes 13 de Abril de 2007, 00:39 »
Hola! Bueno, hay micros de Microchip que tienen dos puertos serie; si bien no tengo la experiencia, sí he leído que cada puerto es independiente. En cuanto al bit de paridad, los micros como el 876, disponen de un noveno bit que se puede usar como paridad o para direccionar varios dispositivo (común en RS485). De cualquier forma, la paridad la debes determinar por programa. En la hoja de datos ( www.microchip.com) encontrarás la información muy detallada; pero es posible hacerlo... Bueno, espero que estas pocas líneas te sirvan de algo! Saludos, y suerte en tu proyecto...
34
« en: Viernes 30 de Marzo de 2007, 16:21 »
No has pensado programar el PIC en ICSP? Yo siempre hago asi, no necesito estar cambiando el micro de la aplicación al programador, dispongo de toda la flash, y tambien tengo libre el puerto serie En este foro encontraras algun circuito para programar en ICSP... solo es cuestión de que lo busques... Saludos
35
« en: Martes 27 de Marzo de 2007, 06:42 »
Hola! Conectaste las resistencias de pull-up en SDA y SCL?
36
« en: Lunes 26 de Marzo de 2007, 18:13 »
El estándar 232 es algo limitado, algunos dicen 15 metros, otros 3 metros. Yo tenia (me lo olvide el otro día en una turbina ) un cable de unos 5 metros para comunicar la PC con los PLC por el puerto serie, y nunca tuve problemas. La verdad que no escuché de repetidores RS232, pero sí hay conversores a RS422/485 y viceversa. Según mi experiencia, el 485 es la mejor opción en cuanto a distancia y simplicidad. También existe el CAN bus, pero es algo más complicado el protocolo... Otra cosa, cualquier opción te da más velocidad que el RS232 Saludos!
37
« en: Viernes 16 de Marzo de 2007, 19:33 »
Hola Pagasux! Muy bueno el link que has dejado, ya esta en mis favoritos! El zócalo para las memorias se consigue aquí, y cuesta apenas casi €3.00 (+ impuestos) Ahora estoy corto de tiempo, pero es un tema pendiente, así que apenas me libere un poco refloto un viejo proyecto... Nos cuentas como te va en tu proyecto? Nuevamente las gracias! Saludos
38
« en: Viernes 16 de Marzo de 2007, 12:37 »
Hola! En la hoja de datos del micro encontraras en detalle como se hace, ejemplo incluido (solo tienes que copiar el código)
Saludos
39
« en: Martes 13 de Marzo de 2007, 23:24 »
Hola Pegasux! Perdón por el comentario, te confundí con otro compañero Sí, a mi también me interesa el tema de ampliar la memoria, tengo pendiente algo que tiene que ver con la captura de datos... y según mi punto de vista lo mejor sería una SD ; son baratas (memoria y zócalo ), y por lo que vi no tan complicadas de manejar. A lo mejor se complique con eso de las FAT... ya lo veremos! Usan interfaz SPI. Se que hay unas librerías para implementar I2C en micros que no tienen el modulo, incluso ya lo he hecho en un 16F84; pero lo mejor es usar un micro que ya tenga el modulo. Una vez encontré algo en una página de internet, pero mirando ahora no veo nada... quizá tengas algo más de tiempo... aquí te dejo el link microchipcEra algo relacionado con las memorias SD; se que esta, o estaba, en esta dirección, pero ahora no encontré nada (me fije rápidamente) Nuevamente te pido disculpas... a veces me pierdo y necesito un reset Saludos
40
« en: Martes 13 de Marzo de 2007, 19:51 »
Hola de nuevo Que el micro sea de 8 bits o de 16 bits no tiene tanta importancia... pero si te aconsejaría mirar otro distinto al 16F84. Las memorias que dices son I2C, así que busca uno que tenga incorporado este modulo para empezar. Mi consejo: la familia 18F... La opción de la SD me parece buena, quizá la mejor; nunca lo he hecho, pero se que se puede con un PIC. Otro consejo: recién estás empezando en el mundo de los micros, como a muchos de los que estamos acá nos ha pasado... tómate primero un tiempo hasta juntar un poco de experiencia y conocer mejor a los micros, y luego encara problemas como este Saludos
41
« en: Martes 13 de Marzo de 2007, 19:37 »
Hola! Bueno, el 873 dispone de 4 bancos de memoria RAM, que debemos seleccionar adecuadamente para tener acceso a los registros que queremos. Esto se logra con los bits RP0 y RP1 del registro STATUS. Y como puedes ver (en el Data Sheet!) este registro está en los cuatro bancos... Al seleccionar un banco, los otros quedan "no" direccionados, por decirlo de alguna forma. Esto es así, porque al direccionar de formar directa alguna posición de RAM el "opcode" contiene los 7 bits de menor peso de la dirección, en tanto que los otros 2 bits de mayor peso están contenidos en los bits RPx (2^9 = 512 posiciones RAM) En caso del direccionamiento indirecto, es algo distinto, pero dejémoslo así... Una mejor explicación encontrarás en la hoja de datos, sección 2.5 Si, en este micro puedes escribir en la flash. En el Data Sheet encontrarás en detalle como se hace... Espero haber sido más o menos claro! Saludos
42
« en: Viernes 9 de Marzo de 2007, 11:08 »
Si quieres mediante una senal externa reiniciar tu programa desde 0, no te olvides que el micro tiene una pata de reset... este pin esta ahi para usarlo cuando se quiera Hay unas banderas que te indican que tipo de reset fue el mas reciente. Creo que podrias buscar por ese lado la solucion a tu problema... Tengo que rectificar algo... la instruccion GOTO ocupa una direccion de memoria, necesita dos ciclos para ejecutarse... perdon por la equivocacion Saludos
43
« en: Viernes 9 de Marzo de 2007, 00:01 »
Hola Tania! Estabamos escribiendo al mismo tiempo!! Un detalle: usas ORG 0x0 para el inicio del programa (vector de reset), luego usas un ORG 0x4 para las interrupciones, con un GOTO a algún lado... luego ORG 0x5. La instrucción GOTO ocupa más de una posición de memoria, por lo tanto el error de sobreescritura al compilar (overwriting...) Mi consejo: ORG 0x0 GOTO main ORG 0x4 ISR ;salvo STATUS y W (atención!! salvar registros sin modificar STATUS!! solución en microchip.com) ;veo que interrupción es y salto según cual sea con un CALL... ;retorno a la linea que sigue: ISR_END ;repongo los valores de STATUS y W (sin modificar STATUS!! solución en...) RETFIE ;y sin poner otro ORG... main ;programa principal.... El compilador se las arreglará... Espero haber sido claro..., y si no, siempre podemos hacer un reset y goto main... Saludos
44
« en: Jueves 8 de Marzo de 2007, 23:43 »
Hola! Me mareo un poco tu programa... programas en asembler o en C? Si lo haces en C, por lo general no deberías preocuparte de que las rutinas de interrupción se inicien en la dirección 0x4; el compilador lo hace automáticamente. Claro, debes indicar de que se trata de una interrupción... Si lo haces en asembler, si debes indicar la dirección 0x4 (org 0x4). Al entrar a la interrupción (en asm) es importante guardar los registros STATUS y W, y restaurarlos al salir (Encontrarás un buen ejemplo en la hoja de datos del micro!). Al inicio del programa, no importa que sea C o asm, debes habilitar individualmente las interrupciones y, por último, globalmente (activar GIE) Para salir de una interrupción (asm) usas RETFIE, que es un RETURN más re-habilitar las interrupciones. Mi consejo es que practiques un poco en asembler, prueba el clásico "hacer parpadear un led", con y sin interrupciones. Asembler te permitirá conocer un poco más al micro, y después encaras el C. En lo posible, prueba sobre un PIC real, y no con el simulador; no porque sea más lindo ver parpadear un led, sino por una cuestión de tiempo real Bueno, sigue probando que ya lo lograrás, y no olvides que aqui estamos para cualquier consulta... Saludos
45
« en: Lunes 5 de Marzo de 2007, 00:11 »
Hola Mikes! No es que te haya ignorado, vi tu mensaje ya el otro día... es que simplemente, en lo personal, no conozco estos max Tampoco ando con demasiado tiempo en la semana, pero veré si puedo darte una mano. De cualquier manera no desesperes, aquí hay mucha gente, digamos que todos los participantes avituáles, dispuestos a darte una mano en la medida que puedan Saludos
46
« en: Sábado 3 de Marzo de 2007, 09:23 »
Hola! No me había dado cuenta, pensé que usabas el 16F84!!! Para el 84 puedes definir tus variables a partir de la dirección 0x0C; pero para el 876 tienes que empezar desde la dirección 0x20... Si te fijas, estas escribiendo en registros como p.e. T1CON... Veamos el caso del misterioso PASOF Lo declaras en la dirección 0x10, pero 0x10 corresponde a T1CON, y en este registro los bits 6 y 7 no están implementados, es decir al leer el registro estos bits están a 0 Otra cosa, las interrupciones se vectorizan a la dirección 0x04 (org 0x04) Bueno, creo que ya está solucionado! Perdón por no haberme fijado antes que micro usabas Saludos
47
« en: Viernes 2 de Marzo de 2007, 22:56 »
De nada, Rasec! Una alegría saber que funcionó... y gracias por hacérnoslo saber Lo que dice Yuliette es más práctico, ya que no tenemos que estar configurándolo cada vez que vamos a grabar el micro. Saludos
48
« en: Viernes 2 de Marzo de 2007, 18:40 »
Hola! Estás simulando con el MPLAB y usas estímulos? No se que aconsejarte, ya que nunca use estímulos en la simulación; pero recuerdo que una vez leí algo de que no era muy conveniente Qué versión usas? Quizá te convenga actualizar a la última... Eso que pasa es muy extraño, la verdad que no se que podría ser. Tal vez podrías adjuntar el programa, así lo revisamos (aprovecha que tengo algo de tiempo, jeje!!) La verdad que es extraño... Saludos
49
« en: Viernes 2 de Marzo de 2007, 11:37 »
Hola! en tu programa veo que declaras SENF como byte, y usas una instruccion de manejo de bits. Deberia ser:
btfss SENF.x
donde x es el bit que quieres verificar
saludos
50
« en: Viernes 2 de Marzo de 2007, 08:25 »
Hola! Bueno,vamos por partes, dijo Jack... Si vas a usar solo 4 bits de una variable, la declaras como byte, y cada ves antes de usarla la filtras, por ejemplo ANDLW 0x0F Entonces, en este caso, eliminas el nibble alto de la variable (lo dejas en 0). Con esto evitas problemas por cualquier "basura" que pueda meterse... Puedes trabajar con cualquier bit de cualquier byte usando las instrucciones de manejo de bits, incluso leer o (des)activar un pin de un puerto... En asembler hay que prestar bastante atencion con el manejo de los bancos, ya que no se realiza automaticamente. Microchip tiene unas macros para la seleccion de los bancos, pero es lo mismo, ya que si no la escribimos nosotros mismos, no cambia de banco. Cuando seleccionas un banco, siempre se apunta a los registros de ese banco hasta que se vuelva a cambiar, no es necesario estar seleccionando el banco a cada momento; creo que en tu programa lo haces con frecuencia... Ojo!, no esta mal, pero puedes ahorrarte algo de memoria. Un tip: si usas interrupciones, es bueno trabajar con las variables en un mismo banco, por ejemplo el 0. Entonces al entrar a la interrupcion, resguardas el registro STATUS, seleccionas el banco 0, y al salir restauras STATUS, volviendo automaticamente al banco en el que se estaba Es mas, si no haces esto, tendras problemas... Espero haber aclarado algo... ahora sigo con mi trabajo, jeje!! Saludos
Páginas: 1 [2] 3 4 ... 13
|
|
|