Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

07/11/2008 #21


A ver es masomenos sencillo,

tienes tu palabra de 8 bits en una variable como dato.

lo que vas a hacer es mandar bit a bit, no lo veas como la palabra completa.

por ejemplo:

yo programo en ensamblador pero creo que es mas sencillo en C

movlw 0x61 ; que en binario seria b'10100001'
movwf dato ; se carga la variable

;necesitas un contador para checar que los 8 bits se han enviado

movlw 0x08
movwf contador

etiqueta1 decfsz contador ;decrementas en 1 a 1 al contador hasta que se cumplan los 8 bits
goto etiqueta2 ; sino se completan los 8 bits sigue enviando
goto new_dato ; si ya se completaron va por la sig palabra


;lo que vas a hacer es enviar la palabra completa al puerto b, puedes reducir los bits a usar
;enmascarando para que no uses todo el puerto

etiqueta2 movf dato,w ; guardas el valor de dato en el registro w
movwf portb ; y lo pasas al puerto b

rrf dato,w ; con esta instruccion rotas a la derecha la palabra un bit a la vez

goto etiqueta 1

espero te sirva, no recuerdo si al rotar puedes giardar en el registro w pero mas o menos funciona asi


Exito.
07/11/2008 #22

Avatar de Moyano Jonathan

La verdad que con ASM se complica un poco pero no tanto... aunque se puede tener más rendimiento del firm.
En C de CCS , es más sencillo pero ocupas más código y capaz que el fim no hace exactamente lo que vos has programado.
Igual si vos sabés programar bien en assembler te admiro ya que es un lenguaje que a veces es un poco complicado de entender bien.

pd: Me gustaría manejar el usb del pic18f2550 en asm = un sueño de un programador muy loco..jaajaj
07/11/2008 #23

Avatar de Meta

Gradmaster dijo:
A ver es masomenos sencillo,

tienes tu palabra de 8 bits en una variable como dato.

lo que vas a hacer es mandar bit a bit, no lo veas como la palabra completa.

por ejemplo:

yo programo en ensamblador pero creo que es mas sencillo en C

movlw 0x61 ; que en binario seria b'10100001'
movwf dato ; se carga la variable

;necesitas un contador para checar que los 8 bits se han enviado

movlw 0x08
movwf contador

etiqueta1 decfsz contador ;decrementas en 1 a 1 al contador hasta que se cumplan los 8 bits
goto etiqueta2 ; sino se completan los 8 bits sigue enviando
goto new_dato ; si ya se completaron va por la sig palabra


;lo que vas a hacer es enviar la palabra completa al puerto b, puedes reducir los bits a usar
;enmascarando para que no uses todo el puerto

etiqueta2 movf dato,w ; guardas el valor de dato en el registro w
movwf portb ; y lo pasas al puerto b

rrf dato,w ; con esta instruccion rotas a la derecha la palabra un bit a la vez

goto etiqueta 1

espero te sirva, no recuerdo si al rotar puedes giardar en el registro w pero mas o menos funciona asi


Exito.
Muchas gracias, voy a investigar.
07/11/2008 #24

Avatar de Meta

Moyano Jonathan dijo:
La verdad que con ASM se complica un poco pero no tanto... aunque se puede tener más rendimiento del firm.
En C de CCS , es más sencillo pero ocupas más código y capaz que el fim no hace exactamente lo que vos has programado.
Igual si vos sabés programar bien en assembler te admiro ya que es un lenguaje que a veces es un poco complicado de entender bien.

pd: Me gustaría manejar el usb del pic18f2550 en asm = un sueño de un programador muy loco..jaajaj
Cuanto te metas a complicarte con ASM, luego en C es muy fácil de entender.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.