rtl

Re: rtl

de Francisco Veirano -
Número de respuestas: 0
Hola, no hay una forma sistemática de saber cuántos registros se necesitan, ya que esto depende de cada problema. En general, hay que ir viendo si necesito guardar nuevos valores de cosas e ir agregando registros o reutilizando en los casos que se pueda. En tu mensaje mencionas uno para contar tiempo y uno para guardar "cosas". El tema es que en este problema tienes que guardar varias "cosas", entonces no puede ser un solo registro, ya que vas a necesitar esas "cosas" en todo momento.

Vayamos un poco al problema particular. El registro al que tú mencionas para contar el tiempo es el que en la solución se llama CONT_T[8]. Luego es necesario saber hasta cuánto se tiene que contar, con lo cual necesitamos otro registro que nos diga hasta cuánto vamos a contar, T_SAMPLE[8] en el caso de la solución. Por otro lado, este valor de tiempo el cual tenemos que contar puede ser actualizado mediante una interfaz serie (con señales DAT y NUE). Un error muy común en este caso sería usar el mismo registro T_SAMPLE[8] para recibir los datos serie. El problema con eso es que en paralelo hay que ir contando el tiempo y verificando que no se haya llegado a T_SAMPLE, con lo cual no podemos modificarlo mientras llegan los bits serie (ya que tendríamos un T_SAMPLE la mitad vieja y la mitad del nuevo), sino que hay que esperar a que llegue todo el byte para actualizar T_SAMPLE. Para esto, en la solución se usa un registro AUX[8] que recibe el dato serie y, al finalizar la recepción, actualiza T_SAMPLE. Por último, está el tema de manejar la memoria externa en la cual se deben ir escribiendo los valores obtenidos del A/D. Para esto, es necesario tener un registro que guarde el valor de la última dirección de la memoria externa en la cual escribí.

El identificar cuántas memorias se necesitan en cada problema es algo que van a ir agarrando con la práctica y, para ello, es importante intentar hacer varios ejercicios. Luego verás que te vas a dar cuenta más rápido de cuándo necesito un nuevo registro y cuándo no.

(Como en este problema hay una memoria externa, traté de hablar de registros cuando me refería a memorias internas del RTL. En general, les decimos memoria o registro indistintamente.)

Saludos,