Autor Tema: HSERIN & HSEROUT - Todo un dilema...  (Leído 25328 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #60 en: 27 de Abril de 2004, 15:45:00 »
Voy a tener que cambiarme el NICK a
DrQUESTIONS!!!

Cuantas llamadas a funciones mediante call/gosub, pueden ser anidadas???

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #61 en: 27 de Abril de 2004, 17:36:00 »
El 16F876 tiene 8KWords de programa, solo debes paginarlas correctamente o dejar que lo haga el PBP....
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #62 en: 27 de Abril de 2004, 17:38:00 »
Call/Gosub en ASM puedes anidar hasta ocho ese es el maximo nivel de pila del ensamblador, pero ojo, si estas mezclando asm y basic usa solo 4 niveles, que es el maximo del PBP...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #63 en: 27 de Abril de 2004, 18:46:00 »
Gracias MGL
Con saber que puedo anidar 4 llamadas a funciones desde PBP, me sirve.
De momento, no necesito anidar mas de 3

Sobre el tema del tamaño del pic...
El problema, me lo da el microcode studio.
Cuando le doy a compilar... ahora me dice que estoy utilizando 1560 Words...
y en cuanto me paso de las 2000, me dice, que no se puede compilar... O algo asi, creo recordar. sabes donde puede estar el problema???
Porque con 2000 me quedo corto, pero con 8000 me sobraría espacio considerablemente.

Ahora surge la duda, de si es problema del microcode studio, o un problema mio de entendimiento...

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #64 en: 27 de Abril de 2004, 21:35:00 »
gosub getbuf ":
while (bufchar <> 34) "leemos buffer hasta encontrar las primeras "
 gosub getbuf ""
wend
cont = 0
gosub getbuf "capturamos el primer caracter del ID
   while ((bufchar <> 34) or (cont < 12)) "leemos el buffer hasta encontrar las siguientes " o que el contador sea 11
      write cont , bufchar
        gosub getbuf
      cont = cont + 1
   wend

Asi no me funciona!!!
while ((bufchar <> 34) or (cont < 12))
Si embargo si solo le pongo la comparación por codigo 34, si funciona
while (bufchar <> 34)

será que en PBP, no está permitida la doble comparación en el while???

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #65 en: 28 de Abril de 2004, 00:19:00 »
Anda Abago , buscate algun 18f252 / 452 . que ya hemos superado el año 2.000.
Tendras mas memoria , mas words , mas velocidad , se ababaron las pajinaciones y ...mas...mass. +++++++++++++


Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #66 en: 29 de Abril de 2004, 22:42:00 »
Gracias sispic
Ya me he informado un poquito...

Ahora!!!
PREGUNTA!!!
--------------------------------
tmp = 0
inicio:
        high PORTB.7              
        pause 10                  
        low PORTB.7
        pause 25                  
        gosub capturaterminal
goto inicio      


capturaterminal:

while (INDEX_IN <> INDEX_OUT)
high portb.1
 gosub getbuf
 write tmp, bufchar
 tmp = tmp + 1
low portb.1
wend
return
-----------------------------------------------
Ahora, teniendo en cuenta la base del programa que colgó Marques, para gestionar la usart en ASM...
tengo un problema...
trabajando con el hiperterminal...
empiezo a escribir el ABCDARIO....
saco el pic del circuito, Lo leo y en la eeprom tengo un bonito listado del abecedario... FUNCIONA!!!!!

ahora mi sorpresa.... conecto un modem
llamo desde mi movil, a la linea en la que está conectado el modem
detecto que lee algún dato, al ver parpadear el led de portb.1
sabo el pic del circuito, lo leo, y sorpresa... me ha leido el comando ring...
este comando, va acompañado del parrafón del identificador de llamada...
para amargar la existencia a mi circuito... he dejado el buffer a 10 caracteres... Entonces al entrar una llamada al modem, consigo leer parte de los datos, en grupos de 10 elementos, pero parece que el pic, no tiene fuerza, para pillar al buffer y limpiarlo, según vamos procesando el módulo principal... Y mira que es sencillo...


Alguna idea???



Desconectado MarquesSalsero

  • PIC18
  • ****
  • Mensajes: 467
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #67 en: 01 de Mayo de 2004, 05:58:00 »
Escrito originalmente por Abago

El problema, me lo da el microcode studio.
Cuando le doy a compilar... ahora me dice que estoy utilizando 1560 Words...
y en cuanto me paso de las 2000, me dice, que no se puede compilar... O algo asi, creo recordar. sabes donde puede estar el problema???
Porque con 2000 me quedo corto, pero con 8000 me sobraría espacio considerablemente.

Ahora surge la duda, de si es problema del microcode studio, o un problema mio de entendimiento...


Creo que te refieres a un mensaje que te indica que has sobrpasado las 2048 palabra, pero no es un error sino simplemente una indicacion. El programa te compilara correctamente.
Hay 10 tipos de personas las que entienden binario y las que no

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #68 en: 01 de Mayo de 2004, 09:49:00 »
Gracias por tu aclaración marques....
Bueno, realmente, debería darte las gracias por al menos un 60% del proyecto... Que fue el código de gestión de USART en asm...
Gracias a vuestras aclaraciones, y comentarios, parece que la cosa empieza a funcionar....

Desconectado MarquesSalsero

  • PIC18
  • ****
  • Mensajes: 467
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #69 en: 02 de Mayo de 2004, 06:52:00 »
Escrito originalmente por Abago
Gracias por tu aclaración marques....
Bueno, realmente, debería darte las gracias por al menos un 60% del proyecto... Que fue el código de gestión de USART en asm...
Gracias a vuestras aclaraciones, y comentarios, parece que la cosa empieza a funcionar....



Las gracias no me las des a mi sino a MPLABS que no solo han creado en compilador de Basic sino que ademas en su web tienen una cantidad de informacion muy interesante.
Hay 10 tipos de personas las que entienden binario y las que no

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #70 en: 02 de Mayo de 2004, 13:07:00 »
MPLAB  and MELABS --->MPLABS


Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado manu2097

  • PIC10
  • *
  • Mensajes: 17
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #71 en: 04 de Mayo de 2004, 15:10:00 »
Hola, siento las molestias, pero acabo de retomar el tema de intentar utilizar la usart con interrupciones mediante picbasic y cuando pruebo este programa en el pic se queda bloqueado cuando le entra un carácter por el serie, creo que es por culpa de la interrupción. No llega a encender el led que está en el portb.6 que es la primera instrucción que hay en la rutina cuando salta la interrupción del buffer de recepción lleno.  Después de encender el led quiero que vuelva a enviar por el serie el carácter que le ha llegado pero lo dicho, el pic se queda bloqueado.

"programa simple para saber si consigo que funcione la USART con interrupción.

define OSC 20
include "bs2defs.bas"
DEFINE LOADER_USED 1
ADCON1=6

"inicializamos la USART
        TRISC = %10111111       " Set TX (PortC.6) to out, rest in
        SPBRG = 64              " establece el baud rate a 4800 asíncrono con velocidad baja
        RCSTA = %10010000       " activamos el puerto serie y la recepción continua
        TXSTA = %00100000       " transmisión habilitada


INTCON = %11000000      " activamos las interrupciones y las de periféricos
ON INTERRUPT GoTo serie      " Declare interrupt handler routine
PIE1.5 = 1            " activamos la interrupción de recepción de la USART  

char var byte

loop:
    high portb.7
    pause 100
    low portb.7
    pause 100
goto loop

enable

serie:
    high portb.6
    hserin [char]
    hserout [char]
    if PIR1.5=1 then serie
resume

disable

end
     

Desconectado manu2097

  • PIC10
  • *
  • Mensajes: 17
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #72 en: 05 de Mayo de 2004, 03:15:00 »
perdonad, ya he encontrado el error, se me ha ido la chapa y he puesto  enable  y luego disable, y no es así primero disable y luego enable, por eso cuando se activa la interrupcion se queda bloqueado por que no puede entrar a la rutina de interrupción.

Ahora el problema que tengo es que cuando mando muchos caracteres se me bloquea supongo que será por el tema de saturación del buffer

Desconectado MarquesSalsero

  • PIC18
  • ****
  • Mensajes: 467
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #73 en: 05 de Mayo de 2004, 03:46:00 »
Jo, otra vez que se demuestra que los teclados y yo estamos peleados.

No queria decir MPLABS sino MELABS.

Algun dia aprendere a escribir con lago mas de dos dedos y a no confundir las letras ( lo que es un gran problema al programar).
Hay 10 tipos de personas las que entienden binario y las que no

Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: HSERIN & HSEROUT - Todo un dilema...
« Respuesta #74 en: 05 de Mayo de 2004, 12:22:00 »
manu, hechale un vistazo al código que dejé colgado hace varios post.
Creo que te puede ser de utilidad, para mejorar el funcionamiento de la usart.
Y sobre todo, te recomiendo que te leas los link que dejó nuestro amigo marques en la primera página del post.
Tienes un ejemplo en asm, que es como lo estoy tratando yo...
Y otro en PBP.
Estos ejemplos hacen lo que aparentemente necesitas, con la salvedad de que no encienden el led.

Un saludo, y espero que aprendas tantas cosas como yo he aprendido, gracias a nuestros amigos Marques, sispic y MGL...
Si me dejo alguno, que se de por aludido...

Para cualquier duda, ya sabes donde estamos.