Autor Tema: Dudas sobre #USE I2C(...)  (Leído 1827 veces)

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

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Dudas sobre #USE I2C(...)
« en: 20 de Febrero de 2008, 03:32:55 »
Hola!

Pues eso. No tengo bien claro algunos parametros en esa directiva y quisiera que me ayudaran.

Cuando especificas: RESTART_WDT. ¿Esto lo hara solo una vez al escribir "i2c_read" o lo hara siempre (como dentro de un While) hasta que se reciba algo por i2c_read?

Tengo unas mas. Pero por no romper alguna regla del foro y, por comprender mejor, lo dejo ahi  :mrgreen:

Gracias.
Salu2  :P

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Dudas sobre #USE I2C(...)
« Respuesta #1 en: 20 de Febrero de 2008, 09:06:27 »
Dependiendo de si usas I2C por hardware o software, el I2C puede esperar la llegada de un mensaje, dentro de un loop.
Si no pones que haga un reseteo del watch dog, se te resetearia el PIC si supera el valor del mismo.
Lo que hace la instruccion es calcular el tiempo e insertar en el codigo un reset del Watch dog...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Dudas sobre #USE I2C(...)
« Respuesta #2 en: 20 de Febrero de 2008, 14:24:04 »
Que diferencia hay si lo uso ya sea por hardware o por software?

Si, pero a lo que me refiero esque si solo lo inserta ese reset una vez o si, hasta que llege algo, estara constantemente reseteando el wdt ?


Gracias.
Salu2.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Dudas sobre #USE I2C(...)
« Respuesta #3 en: 20 de Febrero de 2008, 21:21:35 »
Basicamente, cuando haces i2c_read, el programa esperará a que haya un byte a ser recibido. No se que pic/dspic usas, pero la dinamica es la misma siempre. Se activa un flag de recepcion, y se espera a que se baje, que será cuando ya se haya recibido todo el byte. Entonces se coge el contenido del registro de recepcion.

El restart_wdt tiene que ser continuo, pues la espera al dato puede ser mas o menos larga. Si el esclavo tardara demasiado en mandar, el wdt podria ladrar y resetear el trasto.

Un saludo

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Dudas sobre #USE I2C(...)
« Respuesta #4 en: 21 de Febrero de 2008, 00:01:28 »
Ah, entonces mientras que no se haya recibido nada siempre el i2c_read() reseteara el wdt hasta que llege algo no? Pero y que tal si no hay dispositivo conectado? Entonces el WDT, ahi, no serviria de nada  :?

Tengo otra pregunta  :mrgreen: Y esque cuando tu quieres especificar la velocidad a la que quieres que trabaje el i2c (con LOW y FAST), depende, claro, del dispositivo esclavo verdad? Pero...¿Cual es la velocidad que, por defecto, el CCS pone? Low? Y a cuanto se refiere esta?


Gracias.


 

anything