Autor Tema: Catalizador  (Leído 2372 veces)

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

Desconectado Leodan Cuquis

  • PIC10
  • *
  • Mensajes: 1
Catalizador
« en: 21 de Septiembre de 2016, 17:09:47 »
Hola a todos los del foro.
Hoy en este mes eh comenzado a trabajar en un proyecto interesante de un catalizador, en el cual, como todos sabemos, se necesita un sistema de control.
Para ello voy a necesitar hacer un programa en el PIC16F887 y en el PIC18F4550.

1.- Primero que nada, el sistema sera en tiempo discreto, para empezar necesito...

Checar (muestrear) cada 10ms dos bit de puertos su estado (Si esta en 0 o 1). Entonces tengo que tener 100 muestras en 1 seg, pero como puedo guardar esos datos en la mamoria del pic (pic's). Eh estado leyendo Eso de la memoria EEPROM, pero realmente no comprendo bien como usarlo.

Si alguien me pudiera explicar o conseguir alguna informacion mas entendible se lo agradeceria.

Programare en lenguage C en la plataforma CCS.
Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Catalizador
« Respuesta #1 en: 21 de Septiembre de 2016, 19:44:36 »
Si es un sistema de control y las muestras que queres tomar se deben actualizar a medida que van sucediendo, entonces:

- Crea una interrupcion con un timer de 10ms.
- Crea un array de 100 lugares de 8 bits, suponete valores[100]
- Crea una variable de 8bits que funcione como indice.

En el 16F887 estarias ocupando aproximadamente 1/3 de la memoria RAM en eso. en el 18F4550 tendrias de sobra espacio.
Luego es ir guardando y mantener un indice que te diga donde estas guardando.

Código: C
  1. #INT_TMR0
  2. void int_tim(void)
  3. {
  4.     valor[i] = dato;
  5.     i++;
  6. }

Si tenes que guardar si o si las muestras y que no se borren cuando se apague el micro aca si vas a tener que usar la EEPROM. Sino no te conviene, por que la EEPROM tiene una cantidad de escrituras y vas a quemarla en un ratito.

Luego si queres ahorrar espacio, como son 2 bits, podrias hacer un arreglo para que en una variable de 8bits entren 4 muestras de 2 bits. y eso reduciria la cantidad de bits necesarios a solo 25. Pero complica un poquito mas la logica de guardalos ( no demasiado ).

Lo que planteas pienso que es muy basico en C, y luego encima tenes que realizar la parte de control lo cual no se como vas a hacer si esto ya se te complica. Pero obviamente nadie nacio sabiendo y todo se aprende.