Ver las NORMAS de estos Foros Web ZackYFileS Chat ZackYFileS Agregar a Favoritos Contactar con Administrador
 
 

TU PUBLICIDAD AQUÍ!!
Navegación
Retroceder   Foros ZackYFileS >
OTROS TEMAS DE INTERES - INTERNET:
> PROGRAMACIÓN Microcontroladores: PICs , AVRs.
Nombre de usuario
Contraseña
Configuración de UsuarioAyuda (FAQs)Nuevos PostsBuscar


Respuesta
 
Herramientas
Antiguo 20/06/2009, 21:29   #1
kudox_dany
Usuario Registrado
 
Fecha de ingreso: 20/jun/2009
Mensajes: 2
kudox_dany está en el buen camino
se me cuelga el pic 16f877

hola a todos: (todo esta simulado con proteus.)

estoy con un proyecto fin de carrera y tengo un pequeño problema. intento enviar datos a un gsm y a la vez se estan leyendo valores de varios acelerometros ( en total 8).
no puedo utilizar la entrada a/d porque en los acelerometros se produce un pico de tension ddurante un periodo muy corto por lo que puede que al ir ejecutandose el programa no podamos leer el valor. La solucion que encontre es utilizar la subrutinas del puerto rb0 y rb (4:7). utilizo esto por que los 8 acelerometros estan agrupados en dos grupos. tan solo quiero saber cuando se activan. por l oque en un grupo van todos unidosa la paga rb0 mediante un diodo cada uno y el otro grupo a una patilla del rb(4:7). todo perfecto. la subrutina rb0 cuando hay un pico de tension entra en la subrutina y a 1 la variable que sea.
#INT_EXT
ext_isr()
{ movimiento=1;
}


el problema es que quiero hacer lo mismo con el otro grupo de acelerometros pero utilizadno la interrupcion de cambio de estado del puerto b
#INT_RB
linterrupcion()
{ aviso=1;
}
pero siemrpe que activamos un acelerometro se cuelga denro de la subrutina. he puesto en la subrutina un led a parpadear y cuando entra se enciende el led y se queda encendido no se apaga

#INT_RB
lunarota()
{ output_high(PIN_E0);
delay_ms(500);
output_low(PIN_E0);
aviso=1;
}

¿que puede pasar?

por cierto. si pongo esto :
#INT_RB
linterrupcion()
{ disable_interrupts(int_rb);
aviso=1;
}

entra en la subrutina hace lo que tiene que hacer y sale, pero al volver a activar la subrutina entra en ella continuamente sin que nadie le avise.
(tengo enviando datos en el programa principal por uart por software pero no creo que sea por eso. cuando entra en la subrutina esto deja de enviar porque se colgo el pic entero.)
kudox_dany está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Antiguo 20/06/2009, 23:07   #2
1jabato1
Usuario Activo
 
Avatar de 1jabato1
 
Fecha de ingreso: 02/mar/2006
Mensajes: 153
1jabato1 está en el buen camino
Hola

Yo soy un principiante en esto de los pic,pero creo que no es habitual poner delays ni funciones complejas dentro de las interrupciones.No se cada cuanto tiempo se producen las interupciones de los acelerometros pero es posible que se vuelva a producir una interrupcion dentro de la misma y por eso se cuelga el pic.Con el debugger del proteus puedes seguir paso a paso el codigo en c y buscar la anomalia

Como te he dicho mis conocimientos son muy limitados,a ver si alguien nos responde y aprendemos todos.

Un saludo
__________________
[COLOR="Red"]Sólo dos cosas son infinitas, el universo y la estupidez humana… y no estoy seguro de lo primero.Albert Einstein[/COLOR]
1jabato1 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 21/06/2009, 02:15   #3
kudox_dany
Usuario Registrado
 
Fecha de ingreso: 20/jun/2009
Mensajes: 2
kudox_dany está en el buen camino
muchas gracias por responder.


Si te fijas, no utilizo nada muy complejo en la interrupcion, tan solo estoy poniendo una variable a 1. Voy a ver si intento cargar el Codigo C en proteus y ver lo que falla (yo siempre cargo el hex y le doy a run nunca probe el debug)
kudox_dany está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 21/06/2009, 22:17   #4
1jabato1
Usuario Activo
 
Avatar de 1jabato1
 
Fecha de ingreso: 02/mar/2006
Mensajes: 153
1jabato1 está en el buen camino
hola

Imagino que usas CCS para programar,te dejo el enlace de un libro de CCS y Proteus,aunque a lo mejor ya lo tienes.
http://www.taringa.net/posts/taringa...C-y-Basic.html


Un saludo
__________________
[COLOR="Red"]Sólo dos cosas son infinitas, el universo y la estupidez humana… y no estoy seguro de lo primero.Albert Einstein[/COLOR]
1jabato1 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Respuesta


Usuarios viendo actualmente este tema: 1 (0 usuarios registrados y 1 visitantes)
 
Herramientas

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Activado

Ir al foro


!! ADVERTENCIAS !!: Las informaciones aquí publicadas NO CONTIENEN KEYS para la decodificación de ningún sistema: NO SON OPERATIVOS en sistemas SAT que precisen de su correspondiente suscripción.

ESTA TOTALMENTE PROHIBIDO EL USO DE ESTAS INFORMACIONES PARA LA MODIFICACIÓN O  DEFRAUDACIÓN DE SISTEMAS DE ACCESO CONDICIONAL.

ESTOS FOROS SON MODERADOS Y NO SE PERMITE LA PUBLICACIÓN DE INFORMACIONES ILEGALES POR PARTE DE LOS USUARIOS. EN CASO DE DETECTARSE ESTE TIPO DE INFORMACIONES, LOS USUARIOS SERÁN EXCLUIDOS DE ESTAS PÁGINAS.

USO DE COOKIES: Utilizamos COOKIES y de terceros para mejorar nuestros servicios y navegación por la web. Si continua navegando, consideramos que acepta su uso.  


La franja horaria es GMT +2. Ahora son las 17:29.


-------------------------------------------------------------------- --------------------------------------------------------------------

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
Hispaservicios - J.G.C - 29112549T - Rio Cinca, 2, 30 (50180) SPAIN.
Todos los derechos reservados. Prohibida cualquier reproducion total o parcial.


Foros Patrocinados por anunciantes.