TODOPIC
Microcontroladores PIC => - Niple - => Mensaje iniciado por: dagger en 07 de Mayo de 2011, 00:52:51
-
Hola a todos..me estoy iniciando con los pics...antes usaba picaxe y comence a trabajar con pequeñas cosillas en niple.
Tengo un desarrollo en el cual utilizo CD4017 para realizar un control de canales de audio.....uno para conmutar 4 entradas y otro para conmutar 4 estados de atenuacion de ael audio.
La conmutacion de canales es....1-2-3-4..1-2-3-4,,etc.etc
la comutacion de volumen es 0-1-2-3..0-1-2-3...etc
Ambos CD4017 responden a un bucle de 4 estados..
Ahora bien..como estoy rediseñando la placa (en IC de audio se quemaba muy seguido)lo estoy reemplazando por otro....quiero aprovechar y reemplazar los 2 CD4017 por un PIC 16F628A que debera tener 2 pulsadores de entradas y las salidas correspondientes de acuerdo al diagrama que adjunto.
Es realmente al solo efecto de achicar el impreso...disminuir la complejidad de las trazas...los costos son muiy similares....pero llevaria menos componentes (diodos-resistencias) y se tardaria menor tiempo en armarlo y/o repararlo
Realice el desarrollo pero POR SUPUESTO NO FUNCIONA...ni siquiera lo puedo pasar a ASM...tira errores desde el principio..
Tal vez la forma de encarar el desarrollo es incorrecto y jamas saldra. funcionando...
Si me pueden orientar les agradeceria....
Gracias..norberto..
-
Hola Dagger
LO cierto es que no acabo de entender como puedes usar el 4017 en audio, supongo que lo que haras para la conmutacion es pasar por reles.
En cuanto al PIC te digo lo mismo, el te podra dar las ordenes de conmutacion , pero a traves del PIC no podras .
Para el tema del volumen exixten multitud de volumenes digitales, suelen ser arrays de resistencias que se van sumando en funcion de una consigna, mira por
http://es.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&binCount=88&Nty=1&Ntx=mode%2bmatchallpartial&Ntk=I18NAll&Ne=4294958129&Nr=AND%28avl%3aes%2csearchDiscon_es%3aN%29&N=4294577189&Ntt=digital+pot
En cuanto a la conmutación tb existen sistemas dedicados, con el PIC lo que tendrías que hacer es gestionar el sistema.
http://es.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&binCount=5&Nty=1&Ntx=mode%2bmatchallpartial&Ntk=I18NAll&Ne=4294958129&Nr=AND%28avl%3aes%2csearchDiscon_es%3aN%29&N=4294577060&Ntt=CONMUTADOR+AUDIO
Tb creo que el 7 segmentos puedes manejarlo directamente desde el PIC, no te hace falta el decoder.
NOTA:
Si vas a usar uno de estos conmutadores de audio-vídeo, ten presenta la potencia de la señal a manejar.
Juanfra
-
Mas conmutadores
http://es.rs-online.com/web/search/searchBrowseAction.html?method=retrieveTfg&Ne=4294958129&N=4294577060
juanfra
-
Voy a revisar el programa y despues te cuento, pero referente a tu circuito algunas consif¡deraciones:
1º Me imagino que los pines 5 y 14 que son los de alimentacion los tendras conectados a +5V y Gnd
2º Entre ambos pines es muy conveniente el colocar un condensador de 0,1uF y lo mas cerca posible a los pines. Sirve para eliminar ruidos.
3º La patilla de Reset, pin 4 es conveniente unirla a +5v bien directamente o a traves de una resitencia de 10K puede servir. Evitas que el micro pueda estar reseteandose de forma esporadica al estar la patilla al aire sin fijar ningun potencial.
4º Tambien me imagino que por programa tendras seleccionado que vas a trabajar con el oscilador interno, si no es asi o trabajas con el o entre los pines 15 y 16 debes de poner un cristal, de la frecuencia que desees trabajar, por ejemplo 4Mhz y ademas debes de poner los correspondientes condensadores. Mira en el datasheet.
5º Para las entradas de los pines 1 y 6 seria muy conveniente que:
a) o coloques un circuitillo (puede ser colo un condensador) para eliminar los rebotes que se producen al abrir y cerrar los contactos de los pulsadores. O bien
b) realizar ese retardo por software dentro del programa, que no se si lo tienes puesto o no. Lo veré y a ver si esta tarde te digo algo.
Fermin
-
Hola a todos...gracias por contestar......les aclaro algunas dudas que veo no explique bien.. :5] :-/ :-/...no puse las trazas de alimentacion..cap. de 0.1 para desacople etc.etc. simplemente porque las considere obvias.lo mismo que el oscilador de es interno.
La cuestion era hacerles notar la base del desarrollo. :mrgreen: :mrgreen:
La conmutacion de audio la hace...tanto el CD4017 como el PIC en lo que se refiere a la parte logica...si/no...1/0......fijense que las salidas polarizan a diodos de conmutacion que dejan pasar la informacion de audio de cada canal cuando corresponda.... las señales analogicas NUNCA ENTRAN AL PIC NI AL CD4017 ;-) ;-)
En lo que se refiere a la atenuacion de audio veo que el desarrollo ...(el programa)lo hice mal..en el niple.....puse 3 estados y son 4...a saber......1) muting 2 ) 33% de volumen 3 ) 66% de volumen 4) volumen total. entonces si bien el IC solo usa 3 salidas en realidad son 4 estados......
a) ninguna salida activa...todos ceros
b) salida 1 activa
c) salida 2 activa
d) salida 3 activa
Estas salidas polarizan a transistores que mandan de diferentes formas la señal de audio a masa...logrando de esa forma (atenuar...) lo que se amplifica :P :P
asi logro controlar el volumen
Todo esto ya lo tengo realizado y funcionando con los CD4017...pero quisiera pasarlo al 16F628A
-
Respecto a las primeras sugerencias aclarado lo de la alimentacion, y condensador de desacoplo.
No dices nada de la conexion del pin MCLR(reset) que deberia estar a +5V.
Respecto a tu circuito tampoco entiendo lo que comentas: no veo el funcionamiento de las salidas que activan las salidas pues cuando esté una de ellas ya a 1 vas a provocar tener un 0 en el amplificador y por tanto no veo la funcionalidad de activar otros 2 transistores y ponerlos tambien sus colectores a 0V. Por tanto los diodos tambien van a conducir.
Por otra parte le he echado un vistazo al programa que has adjuntado y decirte que segun está es claro que no funcione:
- El bloque inicial no esta enlazado con ningun otro bloque.
- Tienes bloques suletos sin unnir con ningun otro bien sea de entrada o de salida.
- Estas leyendo repetidas veces las entradas sin incluir nimgun tipo de retardo para eliminar los rebotes. En estas circustancias y debido a la velocidad a la que trabaja el micro por cada pulsacion el micro te va a leer como si fueran varias pulsaciones.
- Tienes 2 partes diferencias lectura puerto ra2 y rb0 pero no se enlazan de ninguna manera, ni siguiendo ninguna secuencia predeterminada.
- Tambien debido a la velocidad que va el micro lo mas probable es que solo se ejecutase los primeros set de cada bloque o del primer bloque de tu programa. dado que el programa se ejecutaria en un tiempo menor que lo que se tarda en realizar una pulsacion. para realizar lo que quieres deberias de utilizar algun contador para saber en que parte del programa estas, al final del ciclo los resetes y volverias a empezar.
-
Gracias fer TACA...
Bien como dijo "jack el destripador...vayamos por partes"
Como bien has observado las salidas del PIC polarizan a transistores cuya funcion es poner de diferentes foirmas la señal resultante a masa....justamente asi se controla la potencia.....disminuyendo la señal de entrada al amplificador.....asi esta construido y asi esta funcionando perfectamente...
Unas salidas polarizan a los diodos comandando cual señal pasa y la otra parte polariza los transistores que disminuye o no la intensidad de la señal.....
Pero bueno cuando lo realice al principio estaba todo unido...luego cuando lo quise compilar en .ASM saltaron los errores entonces desconecte las trazas..por eso quedo "desarmado"
Cuando comence y defini las entradas y salidas vi que cuando definia el puerto "A" tenia el terminal RA5 libre y cuando lo hice con el puerto B aparecio RESET....no sabia como ponerlos
Logicamente hay que colocarle algun tipo de antirrebote
Bueno para eso realice la consulta ...para que me corrijan
-
Por eso pido si me pueden guiar a como se lo debe encarar...si es posible tener 2 botones ..1 para conmutar las entradas y otro para seleccionar el volumen mas las c orrespondientes salidas ..todo en un solo PIC
sino sigo con los CD4017 y listo... :D :D :D
-
Como bien has observado las salidas del PIC polarizan a transistores cuya funcion es poner de diferentes foirmas la señal resultante a masa....justamente asi se controla la potencia.....disminuyendo la señal de entrada al amplificador.....asi esta construido y asi esta funcionando perfectamente...
Vayamos por partes:
Segun tu esquema cuando activas una salida de un transistor la señal a la entrada de audio del amplificador se pondra a masa, por tanto si pones 2 salidas a la vez a nivel alto te conduciran 2 transistores, con lo que solo tendrá efecto uno de ellos ya que ambos te pondran a masa dicha entrada y aunque despues pusieras mas salidas a nivel alto, pasaria lo mismo a no ser que antes desactivaras los que estas haciendo conducir.
Si no utilizas la ra5 debes fijarla a+5v como te dije anteriormente para que no salte el reset de manera involuntaria.
Lo que pretendes hacer, intentaria realizarlo con interrupciones por cambio de estado en las lineas rb4 a Rb7, para ello debes cambiar los pulsadores a algunos de esos pins, de esa forma cada vez que se actue sobre un pulsador, primero miras cual ha sido y despues ejecutas la accion asociada a ese pulsador.
Debes poner retardos de cualquier forma.
F.
-
Gracias Taca...trabajare sobre elllo..
Cuestion aparte.....por el principio de tu respuesta.... :-/ :-/quien dijo que se activa mas de una salida a la vez.???????? :-/ :-/
el control de volumen es 0-1-2-3..0-1-2-3
cuando esta en cero no se atenua la señal...volumen al maximo.....se aprieta pulsador y se activa salida 1...se vuelve a apretar el pulsador y se desactiva la 1 y se activa la 2..etc.etc.etc
-
Si dije que se activan mas de una es por que en el programa que adjuntases así lo hacias. ;-)
Ya me me imagiono que no tiene sentido.
F.
-
tendras un rato de tiempo libre para hacerlo..????? :-/ :-/ :-/
-
No es por no hacerlo, pero :shock:
¿no crees que es mejor que lo vayas haciend tu y te pueda ir ayudando o corrigiendo? ¡asi aprenderias mas! :) :mrgreen:
Ademas si hay que probarlo de manera fisica, no dispongo de probarlo de manera feaciente, cosa que por lo que interpreto si que puedes ;-)
No te ofendas
F.
-
Bueno aca hice uno..pero solamente contiene la parte que controla la seleccion de canales y su correspondiente salida por 1-2-3-4 y BCD (para el display)
lo construi y tengo demasiados rebotes.. :-/ :-/ :-/..estoy buscando un circuito en el foro.
De todas formas faltaria agregarle la otra parte..la del pulsador que controla las salidas para el volumen..que realmente no se como hacer
-
Lo veo y te digo algo en cuanto tenga un hueco.
F.
-
Has adjuntado el fihero ASm.
Mejor coloca el NPL
F.
-
ok a la noche te lo envio..mientras te envio este..(tambien en :ASM.. :D :D) de otro programa...para otra cosa...que contiene un antirrebote de 6ms....cual seria la parte a extraer y adicionar a mi programa..????
-
¿Que ASM?
:shock: :shock: :shock:
No veo ninguno
F.
-
oopppsss no salio..bueno aca van (espero)el :ASM que tiene un antirrebote y el .NPL del anterior....tuve que hacerlo de nuevo porque desaparecio de mi maquina.... :5] :5] :5]
-
En el asm la parte de retraso de 6ms seria:
Delay6ms
movlw .20
movwf DelayA
CicloA6ms
movlw .200
movwf DelayB
CicloB6ms
decfsz DelayB,F
goto CicloB6ms
decfsz DelayA,F
goto CicloA6ms
return
Ahora miro lo otro
F.
-
Bueno he revisado el progama y vayamos por parte:
1º.- Si este programa está realizado para el esquema que pusiste en un post anterior NO va a funcionar nunca. Las señales estan mezcladas unos pines con otros.
El esquema electrico debe coincidir con lo programado, si no va a ser dificil llegar a buen termino.
2º.- Dentro del programa o tienes inicializado el puerto A
3º.- Lo mas importante: Niple quiere ser un entorno de programacion grafico y por tanto no es necesario realizar el programa en instrucciones directas del Micro(ASM); deberia de utilizar el resto de las funciones que estan a la derecha en el explorador del proyecto. Por ejemplo para saber el estado de la entrada RB0 podias utilizar:
Funciones logicas-> Comparar bit y vas rellenando los datos que te aparecen en las ventanas hasta que se active el OK. Ademas puedes dar un nombre a ese bit con: Declaracion->Bits o bien con "Control+B" buscas el bit que quieras y le das el nombre ejemplo: entrada_volumen
Para activar una salida lo mismo, a cada salida le das un nombre, ejemplo: a ra0=subir_V_1; ra1=subir_V_2 y asi todos.
para activarlo te quedaria si haces:Asignar valor-> bit y rellenaslas ventanas hasta el OK de esta forma el programa será mas legible. Te adjunto como seria el empieze. Luego edito el post y te pongo un link con un pequeño tuto realizado por otro compi tuyo que esta empezando y al cual tambien le estoy echando un cable. Ahí podrás ver un poco la metodologia para crear el rograma.
El link: http://www.todopic.com.ar/foros/index.php?topic=30964.120
F.
-
Y si no mira en este pequeño manual, que anuque es de la version 4 te va a servir perfectamente para empezar a programar de forma logica con Niple.
http://www.4shared.com/document/6467g5ll/Niple_-_Manual_de_Usuario_V40.html
:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:
-
hola amigo yo uso anti rebote esto .saludo ..paciencia con senior FER TACA segure te ayuda ..
-
7 seg display de un segmento dos botones subir cuenta i bajar ..funcciona i sin rebotes .un poco largo puede gue te sirve suerte
-
Bueno ..sigo trabajando...en lo que respecta a que no esta el ultimo prog. como el esquema es que lo hice de nuevo porque se borro el anterior...y en el taller...donde lo hice...no tenia internet para ver que puertos habia utilizado anteriormente.
Hoy vuelvo a hacerlo config. bien los puertos....como deberia quedar....
gracias por su tiempo
-
Hola dagger, esperemos la cosa corregida.
Draro: la emporizacion para el antirebote que has colocado a mi no me gusta, NO digo que no te funcione y explico porque:
1º el tiempo de 100msg lo tienes puesto despues de la comprobacion del estado del pulsador ademas, para un antirebote lo veo grande, con max. 20msg creo que va de sobra.
2º En una secuencia de antirebotes tienes una sucesion de unos y ceros por eje`mplo:10101010101010....... y asi hasta finalizar con esto en la primera secuencia ya saldrias del ciclo y pasarias al siguiente.
3º Yo lo que haria seria:
a.- Comprobar el estado del pulsador y guardarlo en un registro auxiliar, ejemplo: retardo_rebote
b.- Ahora esperaria 10msg. como ejemplo.
c.- Volveria a leer el estado.
d.- Si coincide con el valor guardado en retardo_rebote : es que ha sido pulsado y realizo lo que precise.
e.- Si no coincide, puede seguir habiendo cosasa raras y pasaria al punto b.
-
Draro:
respecto al segunda figura puesta si adjuntas el Niple te le echo un vistazo y te lo corrijo creo que hay muchas repeticiones. Creo que se puede mejorar bastante y que quede mas corto y legible. ¿Que version deNiple tienes?
F.
-
Niple 5.2
-
Dagger, a ti no te preguntaba la version fue al comparero Draro1 para corregirle y mejorarle el segundo psot que puso.
7 seg display de un segmento dos botones subir cuenta i bajar ..funcciona i sin rebotes .un poco largo puede gue te sirve suerte
F.
-
hola amigo ..FER TACA... mi version es 5.1 i demo 5.. pense comprar buena ultima version ...sacavo paro . situacion esta muy mal.. a ser de verda version gue tengo me instalo hace tiempo un colega ..no tengo contacto con el ..i de verda no se si es buena o es pirata ...losiento JOR..CANO...Bueno siempre ago tan largo programa porgue esto de registros siempre me da problemas ..programa sale bien . a la hora de pasar a HEX FALLA SIEMPRE..aya donde supongo es fayo de version gue tengo ...es buena o es pirata ..por eso ago tan largo i me sale bien ..registros me dan dolor de cabeza ... i demo tiene mucho limite...si puedes mejorar i hacer mas peguenio mi programa ...te agradesco mucho ..un saludo amigo :mrgreen: :mrgreen: :mrgreen: :-/ :-/ :-/
-
Pero para poder corregirlo me tienes que adjuntar el original.
Como pudes entender no voy a realizar todo desde el inicio y de forma competa. :mrgreen:¡Pero solo es por falta de tiempo :-/ :-/ :D :D :D :D :D :D :D :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :D :D :-/ :-/ :P :P
Luego te adjuntaria una captura pues mi version es la 5.5.8 y no podrias abrir el programa con tu version. ;-)
Es lo que tiene tener la version registrada :lol: :lol: :D
-
ok amigo :mrgreen: :mrgreen:
-
mando un videito para que no queden dudas del objetivo.
Estoy haciendo un impreso optimizando las conexiones, asi se fehacientemente cuales seran las entradas y cuales las salidas , y diseñar en base a eso
-
ok amigo :mrgreen: :mrgreen:
Tengo un trabajito entre manos, ten paciencia que te lo miro y te digo lo que sea
mando un videito para que no queden dudas del objetivo.
Estoy haciendo un impreso optimizando las conexiones, asi se fehacientemente cuales seran las entradas y cuales las salidas , y diseñar en base a eso
Nadie duda, solo especificalas conexiones adecuadas y como empiezas con el proyecto.
F.
-
ok amigo lo primero trabajo i luego hobbbbbbbiiiii...fin de semana ..descansar hya en valencia calor ..maniana a pescar doradas :-/ :-/ :-/ :-/ :-/
-
aca mando figura de como deberian quedar las entradas y salidas del pic..(en lo posible)
-
aca el PCB en 2 partes
-
ok amigo :mrgreen: :mrgreen:
Amigo No puedo abrir el fichero. Voy a ver que puedo hacer
aca mando figura de como deberian quedar las entradas y salidas del pic..(en lo posible)
Pues con essas entradas ysalidas debes de configurar tu programa.
F.
-
Bueno comenzare a hacerlo ..pero lo que no comprendo es como actuar sobre 2 pulsadores diferentes en el mismo programa.....
lo hare como si tuviera un solo pulsador y ..si funciona bien...me guiaras sobre como agregar laq parte del segundo pulsador...
Gracias por tu tiempo
-
Te guiaré, pero date cuenta de que es simple.
Puedes hacerlo:
1º Comprobando el estado de uno y ejecutando lo que debe de hacer en ese caso. Date cuenta que a la velocidad que va al micro se tardará muy poco en la respuesta, no teniendo retrasos apenas y
2º Por medio de interrupciones, pero para ello deberias de cambiar las entradas a alguno(cualquiera) de los pines RB4 a RB7.
F.
-
Dagger, te adjunto un documeto con algunas consideraciones para empezar y segun mi post anterior
-
Draro:
Ya se porque no podia abrir el fichero.
No tienes seleccionado ningun micro!!!!!
F.
-
Hola...perdon a cual fichero te referis..???
si es el del principio.... si no tengo seleccionado ningun micro...como trabajo el niple ???
-
yo subi zipp. una captura en paint sobre el patillado del micro de acuerdo a como realice el PCB.....ahora veo en el archivo de word que me mandastes que ha variado...se debe a algo en especial..????? :oops: :oops: no puede ser como lo envio yo...????
si es por algo en especial hare al PCB de nuevo.... :( :(
Ahhh entonces no tiene que hacer una rutina de avance por el estado......sino se quedaria en el lugar hasta que se cumnpla la condicion.....hay que utilizar "leer puerto" asi nada lo frena..???? y realiza una funcion cuando cumple la condicion...????
-
Hola dagger:
Te cambie , en el wordlos patillajes por si querias utilizar las funcionalidades de las interripciones por cambio de estado, de esa manera el micro no haria nada hasta que se accionase un pulsador en ese instante responderia a la accion que quisieras implementar.
con esa disposicion tambien podrias utilizarlo de forma normal, leyendo ciclicamente los pulsadores.
Si tienes ya realizado el pcb, no hay ningun problema puedes utilizarlo, pero leyendo ciclicamente los pulsadores ya que los pines que podrian utilzarse para ls interupciones ya los has usado. Asi que wi sigues por ese camino, espero tus avances en el programa para seguir ayudandote.
F.
-
Hola...perdon a cual fichero te referis..???
No me reeria a ti Dagger era para Draro que ha mezclado sus respuestas en este post
Draro, por favor para evitar confusiones si necesitas cualquier otra ayuda, abre otro post con el tema en concreto.
F.
-
AMIGO FERMIN ya lo se ...me ayudaste en otros proyectos ..i siempre saliya esto gue no pudiste abrir .../reguerdas el programa .../BUENO :)O PIRATA :5]....NO TE PREOCUPES ..cuando tendre programa a tu alcane ablaremos otra ves ...pero esto de anti rebote gue sea muy fiable si me mandas un foto me sobra ...i eso de gue hasta no sueltas boton no pasa a otro inicio tambien me vendrilla bien ....UN SALUDO GRANDE ....AMIGO .. :mrgreen: :mrgreen: :mrgreen:
-
Draro1:
Adjunto como podria ser,
- lees el bit y le gurdas en un registro auxiliar
- esperas un tiempo 20msg es mas que suficiente
- Vuelves a leer el bit
- le comparas con el guardado
- si son iguales sigues con tu programa y sino regresas al inicio
F.
-
Hola Fer...bueno creo que seria mejor como lo planteas con la nueva disposicion......podria apretar los pulsadores indistintamente...realmente seria mas funcional.....
No se si has reparado en el PCB..le he agregado un CD4066 porque utilizare una funcion adicional a la placa que es la de mandar un aviso de "BAR" entonces conbmuta el audio por otro...bueno eso no tiene nada que ver con el desarrollo.......al final termine con un PCB que no solamente es complicado como el otro..sino que es PEOR...... :-/ :-/ :-/ :-/ :D :D :D
No importa..vamos para adelante.....
Ire subiendo las cosas ni bein las vaya haciendo asi si tienes tiempo me vas corrigiendo.
Saludos amigo
-
Esperemos......................
-
Gracias FER..por foto de circuito ...se gueda mejor ;-)
-
ya mandare lo que voy haciendo...es que estoy un poco ocupado con una instalacion...bueno siguiendo las sugerencias veo que adjudicastes (segun lo que antes yo habia puesto) un pin para salida de 100% del volumen..esto lo obviare porque ...el muting y las salidas de 33% y 66% de volumen corresponden a distintos tipos de atenuacion del volumen...una forma de manejar la salida de audio...mandando la señal de entrada a masa de diferentes formas....pero cuando esta al 100% no se atenua nada...o sea que simplemente las salidas de muting-33% y 66% estan en estado bajo y listo....nada atenua la señal..por lo tanto esta a maximo volumen..(100%) es un paso del programa donde RA3-RS4 y RA5 estan estan desactivadas...
Bueno empiezo , voy posteando y me van corrigiendo
-
a ver si hasta ahora voy bien..
a)configure 16F628A osc. interno
b) conf. entradas y salidas
c)leo si se apreto boton cambio canal y si es 1 activo salidas RB0 y el BCD RA7
d) leo se se apreto boton volumen y si es 1 activo salida RA4 (mouting)
-
Otra cosa Fer...aparte de este proyecto.....existe algun programa para hacer la codificacion al reves..???? o sea a partir de un .ASM hacer el diagrama en flujo de nipple???? o es una barbaridad lo que estoy diciendo ???
-
Respecto a la 2ª consulta no conozco nada que te permita pasar de ASM a Niple de forma automatica, que me imagino que es lo que pretendes.
Respecto a lo primero lo descargo, lo echo un vistazo y ya te digo.
F.
-
Revisado el comienzo. De momento todo OK.
Aunque.................................. :mrgreen:
Un par de consejillos:
1º Despues de definir los puertos has colocado un "NOP" me imagino que sera un pequeño retraso para que se estabilicen las señales. Perfecto, aunque mejor seri añadir un bloque de retardo como los que tienes puestos de 6msg. De esa forma si con un "NOP" no es suficiene podrias poner un tiempo mas a medido.
2º Deberias de darle nombre a cada uno de los pines de los puertosy tabajar con ellos, de esa forma cuando estas realizando/revisando el programa lo tienes mas legible y sabes que es lo que hace en cada momento. Por ejemplo:
Para ala entrada de RB5 llamarle subir_Volumen( o lo que quieras) y asis a todos los pines.
¿Sabes hacerlo?
Se realiza con "control+B" buscas el registro, deseado, en este caso el port_B, seleccionas con"enter" el bit quieras cambiar el nombre y seguir los mensajes que te salen hasta el final.
Esto lo puedes realizaren cuarquier momento del desarrollo del programa, ya que cuando cambias un nombre de bit, Niple te lo actualiza en todo el programa.
Voy a cambiar lo que has posteado a ver si te paree mas claro...........................
F.
-
Hola Dagger:
En primer lugar pedirte perdon, en el post anterior te dije que estaba todo correcto :shock:; pero no es asi, por las prisas lo revisé mal. Te cuento:
Fijate que has configurado los pines RB5 y RB4 como entrada y despues del primer post lo tratas como salidas. El resto esta perfecto.
Te adjunto como abria dado los nobres a los pines.
OJO :-/ :-/ :-/ :-/ que los he puesto de forma generica, si decides realizarlo asi tienes que asignarles el nombre que quieras y los bits a los que vayas a usar.
De la forma que haces el programa, es como si lo estuvieras realizando directamente en ensamblador (ASM) y Niple es algo mas potente(???? para algunas cosas :D :D) que eso.
Fer.
-
muchas tenkius....cambie el patillaje por el doc que me mandastes anteriormente...donde me aconsejabas usar esas patillas por las interrupciones......... :? :? :?
-
Bueno pues ya sabes donde encontrarme para seguir viendo los avances
:mrgreen:
F.
-
Bueno aca mando archivo zip conteniendo el dsesastre que seguramente realize con el nipple , el codigo .ASM y una imagen de que sucede cuando apreto control+B para editar los simbolos...no puedo..no veo la opcion..aunque seleccione el simbolo....en las opciones de trabajo cambie principiante a experto y lo mismo...no aparece nada donde poder escribir
-
Para cambiar o dar un nombre a un bir debes de estar fuera de cualquier bloque.
Por ejemplo pinchas en algn lugar de la pantalla y luego "Control+B"
Si lo haces sobre un bloque: Tu lo estas haciendo sobre "BTSS port,rb5"
F.
-
no importa donde lo haga...tambien probe en cualquier parte y siempre presenta el mismo cuadro de dialogo que envie en el archivo,,,, no importa..le agrego el comentario y cuando se acerca el cursor aparece
-
Me llama la atencion de no poder nombrar..(cambiar los nombres) siempre aparece el mismo cuadro de dialogo...sera algun problema con mi nipple 5.2 ???
cual es la ultima version de este programa....???? :oops: :oops: :oops:
-
No encuentro la razon por la que no puedes cambiar el nombre a os bits.
Te adjunto una pantalla de como lo deberias e ver, como puedes apreciar se trata de tu programa NPL y que si se deja declarar los bits.
En la otra pantalla, te remarco lo comentado anteriormente . En la declaracion de bits declaras RB4 y 5 como entradas y justo despues lo tratas como salidas. Este es un error que creo que debes de corregir.
¿No uedes actualizar lu version a una superior? Creo que va por la 5.5.8
F.
-
Encontre la razon por lo cual no podia cambiar los nombres...siempre presentaba un cuado (de la imagen que envie) sin posibilidades de escribir nada......lo que ocurre que internet tengo en casa..donde estoy ahora y en la pc que tambien tengo el niple...pero en la pc del taller ahi es donde compilo con el MPLAB y grabo con el PICKIT 2 o un prog. similar...winpic800..
En la maquina de casa NO TENGO EL MPLAB..y como no estaba seteado en el niple...no podia cambiar los nombres.......instale el MPLAB y listo..ahora si aparece el cuadro completo para poder cambiar los nombres.....mira vos che.....por ahi venia la cosa.... :-/ :-/ :-/
:5] :5] :5]HOUSTON...WE GOT A PROBLEM... :5] :5] :5].......esto esta escrito una hora despues......si bien cuando instale el MPLAB efectivamente aoarecio el cuadro con las opciones de cambiar nombre.....cuando cerre el programa y lo volvi a abrir...ya no lo hacia de nuevo....estoy como antes.... :5] :5] :5]
-
Pues con Niple no te hae falta compilar con el MPLAB.
Directamente puedes hacerlo desde Niple. Solo tienes que que ir a las opciones: Herramientas-> Opciones de programa-> Soft Compliador hex. y buscas la ruta donde este el ejecutable. MPASMWIN. Con eso NIPLE ya te genera el fichero "xxxx.hex" que tienes que grabar al miro.
Luego para grabar el micro puedes utilizar el grabador que quieras, en tu caso el PICKIT2 va perfecto.
F.
-
Ok..yo lo instale porque....buscando el motivo por elo cual no aparece totalmente el cuadro de dialogo para cambiar nombres..me fije en "configuracion del sistema" y vi que estaban en blanco algunos items.....cuando instale el soft compilador ahi fue cuando aparecio el famoso cuadro de dialogo completo.....pero despues cuando abri nuevamente el programa...ya no aparecia..
bua...seguiremos intentando en otro momento...es importante pero no imprescindible....ahora lo importante es realizar el programa.
te ire mandando cosas para que si tienes tiempo me las corrijas..
-
Esperemos......
-
a ver como andamos..????
-
Veo lo siguiente:
- No se para que añades los dos primeros bloques despues de la configuracion de los puertos. Ademas en el caso que los utilizases para algo estan mal definidos, faltaria indiar donde vas a guardar el valor leido. No los realizado. Lo puedes ver si haces doble clic sobre cualquiera de ellos.
- Si te digo o anterior es porque si tienes deficnido el puerto A como salida,¿para que quieres leeerlo'
- Por otra parte toda la columna de codigo de la izquierda, donde empiezas a chequear el estado del bit RB4 está mal. Este bloque no empieza en ningun lado. Los programas suelen ser secuenciales y deben estar encadenados los bloques uno de tras de otro. El primero de esto no tiene entrada solo una salida y dos regresos de otras partes del programa.
F.
-
Ya saque los bloques..tienes razon no tenia sentido los bloques...ahi te envio una modificacion..(no operativa) no uni los dos bloques porque justamente eso es lo que no se hacer..(entre otras cosillas) :D :D :D
No se como unir en un diagrama de flujo la operacion de 2 botones sin que uno este esperando la secuencia del otro.....o sea como hacer que el programa actue para que los botones operen independientemente..
Ahora en el taller hare el diagrama del bloque de la izquierda..compilado y grabado a ver si trabaja....
-
Revisado.
Bueno como a la velocidad a la que va el micro es grande, solo para empezar, lo que puedes realizar es unir el final del bloque de la columna de la izquiera en vez de volver al inicio, debes llevarlo a la entrada de la columna de la derecha y el el final de esta con el inicio de la de la izquierda.
Como puedes comprender, esto no es lo mas logico, pero para empezar y aprender puedes llevarlo asi y aunque puedes tener algun pequeño retraso en el efecto al presionar alguno de los botones, al ser el retraso muy coto (velocidad del micro alta) apenas te vas a enterar.
El problema para evitar este efecto es mediante el uso de interrupciones, por eso en los post anteriores te comente el cambio de las señales a otros pines para poder utilizar este metodo. De momento y como me supongo que estas empezando a programar, vamos a dejarlo un poquito de lado y es mejor que aprendas a realizar tu programa y despues, si te parece lo vamos cambiando/modificando o depurando para hacerlo mas eficiente y veras como se reduce considerablemente.
Mediante el metodo que has utilizado, el programa se realiza secuencialmente un bloque despues de otro de manera seguida. Con interrupciones, forma algo mas complejilla :D, digamos que el micro está como dormido sin hacer nada y solo responde cuando se acciona alguno de los pulsodres. En cambio como tu lo haces está continuamente trabajando.
Espero que hayas entendido un poco el sentido de trabajo.
F.
-
si entendi....no uni los 2 bloques porque pense que se tendrian que cumplir las opciones de la columna de la izquierda antes de que quede operativa la columna de la derecha.
-
Hola a todos...perdon por la demora en el tiempo pero estamos pasando en la familia por un duro trance....
grabare el pic y comenzare con las debidas pruebas......prontito adjunto los resultados
Gracias
-
Hola a todos...perdon por la demora en el tiempo pero estamos pasando en la familia por un duro trance....
Esperemos que no sea nada
-
y la cosa esta jorobada...hace un par de meses le diagnosticaron cancer a mi hija menor.......tiene solo 28 años...y estamos todos pasando un duro trance ...pero adelante ..hay que tener fe..
Bueno grabare el pic y luego les comento si funciona como quiero
saludos
-
Hola amigo Dagger
Mis mas sinceros animos para este duro trance por el que estas pasando. Solo espero, que apesar de la gravedad que indicas, todo se solucione satisfactoriamnete lo antes posible y que una joven de esa edad salga adelante ya que tiene toda una vida por delante.
Hoy en dia, la ciencia adelanta que es una barbaridad y espero y deseo que tenga remedio para esa jodida enfermedad que parece puede con todo.
Lo dicho, animo y espero una pronta mejora de salud de tu hija
Fermin
-
Hola amigo Fer_TACA.
Recien aora luego de este par de años retomo la cuestion de la programacion..
Bueno sobre el asunto que anteriormente estuve posteando...termino mal.....
Mi hijita fallecio en julio del 2012...y yo estuve....digamos.....de licencia forzosa.
Bueno ya comence nuevamente..con pilas nuevas asi que retomare el proyecto.
Un abrazo y gracias por tu apoyo
-
Lo dicho anteriormente.
Se de nuevo bien regresado y esperamos tus consultas.