Autor Tema: puertos por hardware  (Leído 1517 veces)

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

Desconectado sebapostigo

  • PIC10
  • *
  • Mensajes: 4
puertos por hardware
« en: 19 de Noviembre de 2007, 15:25:50 »
busque bastantes pero no encontrar un tema con respuestas asi q lo planteo nuevamente, mas otras consulta q no he podido resolver:

es posible utilizar los puertos i2c en los pic, con pic basic, pq solo he visto los ejemplos de ellos corriendo por software

lo otro, el comando hserout, no tiene el pin flow control q tiene el serout, se puede implementar o solo queda la opcion de hacerlo manualmente (lo q no es nada complejo)

por ultimo, deseo escribir en un bus i2c un vector completo (de 95 byte) pero de una vez no me ha funcionado mandarlo completo y no puedo esperar los 10mS para al liberacion del bus y si escribo las 96 variables extendere el codigo innecesariamente, se le ocurre a alguien un metdo mejor.

ojala alfguien sepa alguna dato de mi pedido, de antemano gracias

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: puertos por hardware
« Respuesta #1 en: 19 de Noviembre de 2007, 19:05:26 »
Hola!
Con pic basic pro puedes utilizar las instrucciones i2cin e i2cout para cualquier micro que tenga o no hardware para el manejo del protocolo i2c ,por ejemplo el pic16F84 no tiene hardware para i2c pero con la ayuda de pic basic pro se puede comunicar de esta forma.
el p16F876 tiene hardware para comunicarse via i2c por lo que puedes utilzar el hardware que este micro trae y haces la rutina tu, cosa que no creo que sea muy dificil  :mrgreen:  o utilizas las instrucciones indicadas arriba.

hserout como dices no posee el pin para flow control, pero con la instruccion serout y serin puedes por software resolver ese problema sin complicarte la vida yo la he utilizado y trabaja fino!
Lo otro es que para utilizar el hseout tu micro tiene que tener hardware USART de lo contrario no la podras utilizar, tambien debes tomar en cuenta que el buffer de recepcion solo soporta dos byte asi que si envias muchos bytes y no los lees con la suf¡ciente velocidad podrias desbordarlo y perder datos  :shock:

Los 95 bytes que envias se los mandas a otro micro o a una memoria? porque los 10ms tienes que respetarlos en el caso de ser una memoria i2c, ojo con eso. Ahora bien si los byte se los envias a otro micro no veo cual es el problema, porque alli el funcionamiento depende de la rutina que hallas creado.

Saludos


 

anything