Autor Tema: ayuda assembler en ccs pic18 subrutina en assembler  (Leído 3529 veces)

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

Desconectado yallegara

  • PIC10
  • *
  • Mensajes: 5
ayuda assembler en ccs pic18 subrutina en assembler
« en: 17 de Octubre de 2009, 20:45:19 »
saludos soy nuevo en el foro y tengo un problema que es el siguiente:

Estoy haciendo un programa en PIC C CCS para el pic 18f4550, el programa funciona muy bien, el problema es que para lograr tiempos de 4 us el comando delay_us no logra hacerlos (comprobado y recontra comprobado en laboratorio con un osciloscopio) entonces introduci parte en assembler en la que llamo a una subrutina, al compilarlo todo bien pero en la simulación con proteus pasa lo siguiente:

#asm

movlw 0
movwf contador  

bucle_dato:
   btfss canal1,0
   bcf LATA,1
   btfsc canal1,0
   bsf LATA,1
   RRNCF canal1// canal 1 de un byte
   incf contador
   call retardo
   btfss contador,3// condición para que salga del bucle
goto bucle_dato

//el problema es que cuando sale del "bucle_dato" se salta "retardo:"(lo que considerio que esta bien) pero no se salta las sentencias que siguen (nop) y tampoco la sentencia return y como el return no esta funcionando como parte de una subrutina ya que se salto "retardo:" return vuelve a 0x00 y como esa dirección esta fuera del programa el programa muere
//PD: como compila bien hice la prueba del programa quemandolo en el pic lo que resulata en el mismo problema
//PD: AYUDA PORFABOR no encontre nada en ningun lado que explique porque sucede esto!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

retardo:
nop
nop
nop
nop
nop
nop
return

#endasm


GRACIAS POR ADELANTADO A SU AYUDA
PD: espero haber sido claro en la explicación de mi problema y no habver creado un tema donde no debe ser gracias :)
estoy en calidad de desesperado
« Última modificación: 17 de Octubre de 2009, 21:06:00 por yallegara »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: ayuda assembler en ccs pic18 subrutina en assembler
« Respuesta #1 en: 17 de Octubre de 2009, 22:05:44 »
La función delay_xx es muy precisa únicamente cuando el apuntador de programa no salta para atender interrupciones.

Si tu programa incluye interrupciones entonces la duración de los delays nunca será precisa.

Desconectado yallegara

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda assembler en ccs pic18 subrutina en assembler
« Respuesta #2 en: 18 de Octubre de 2009, 17:13:29 »
muchas gracias por tu respuesta hare la prueba enseguida, pero tengo una duda con respecto a tu respuesta. mi duda es que estoy usando interrupción del puerto usb osea que es necesesaria porlotanto no puedo usar el delay o eso creo por lo que dices, en todo caso hice correr el programa sin usar subrutinas en assembler y funciono muy bien, el problema es que necesito usar sub rutinas en assembler ya que el programa seria muy largo y con repeticiones ede codigo que no tendrian sentido ademas que en este proyecto el diseño que hice exprime al máximo la memoria de programa osea eso es lo optimo para el proyecto.

hojala puedas ayudarme
de antemano muchas gracias por tu ayuda!!!!


Desconectado yallegara

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda assembler en ccs pic18 subrutina en assembler
« Respuesta #3 en: 18 de Octubre de 2009, 18:25:00 »
problema solucionado!!!!!!!!!!!! yeah!!!!!!!!!!!!!

no se si es porque soy malo muy malo para assembler del pic pero lo logre aqui esta el codigo con la solución

     #asm

movlw 0
movwf contador   
goto bucle_dato//con este salto se arreglo mi problema
retardo:
nop
nop
nop
nop
nop
nop
nop
return

bucle_dato:
   btfss canal1,0
   bcf LATA,1
   btfsc canal1,0
   bsf LATA,1
   RRNCF canal1
   call retardo
   incf contador
   btfss contador,3
goto bucle_dato


#endasm

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: ayuda assembler en ccs pic18 subrutina en assembler
« Respuesta #4 en: 18 de Octubre de 2009, 22:09:37 »
Hola yallegara, que bueno que te haya salido bien y que bueno es que vaya apareciendo más gente de Bolivia por acá, de que ciudad eres?

Un saludo.
.

Desconectado yallegara

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda assembler en ccs pic18 subrutina en assembler
« Respuesta #5 en: 19 de Octubre de 2009, 02:51:58 »
hola que tal, yo soy de lapaz, y tu?

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: ayuda assembler en ccs pic18 subrutina en assembler
« Respuesta #6 en: 20 de Octubre de 2009, 16:14:37 »
Soy de Cocha, bienvenido o bienvenida al foro!!!!! de parte de tu amigo Cryn!

saludos! :-/ ya somos más bolivianos
.


 

anything