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

Temas similares

23/08/2010 #1

Avatar de alexus

Duda con Escritura Prolija de Programa en Microcode.
hola amigos, como estan? espero que bien.

hace 5 meses que incursione en el tema de programacion de microcontroladores pic, en lenguaje BASIC, para lo cual, utilizo el compilador, MICROCODE STUDIO PLUS.

Resulta, que estoy escribiendo el programa para mi prueba final, y me he encontrado con que no sse cual sera la manera correcta de escribirlo.

El tema es el siguiente:

El proceso es para una dosificadora de pintura.

1º)
Tengo que tener un sistema controlador de temperatura, con valor minimo y maximo, eso lo escribi asi:

IF temperatura < 25 THEN calentar
IF temperatura > 30 THEN enfriar

de ser verdadera o falsa cada condicion, se ejecuta la instruccion correspondiente, eso es facil.

el tema es que tengo que mantener siempre a "temperatura" dentro de ese rango, ahi mi primer problema,

¿como hago para que el programa (corriendo otras rutinas aun) este siempre pendiente del
controlador de temperatura?

2º) Necesito contar el numero de veces que se repite una rutina, y cuando ese numero sea = a 100 ejecutar otra rutina "x" (que es poner en alto un pin durante 10 segundos), para lo cual habia pensado lo siguiente, encerrar un FOR dentro de otro FOR.

Ahora mi primer problema, "el FOR encerrado", lo puse porque tengo que poner en alto (HIGH) un pin durante 15 segundos, y mi idea era esta:

Dosificacion:
FOR dosificacion = 0 TO 15 STEP 1
HIGH SolenoideDosif
PAUSE 1000
NEXT dosificacion
LOW SolenoideDosif


lo cual con el FOR para contar el numero de ciclos me quedaria:

FOR 100 (numero de repeticiones) = 0 TO 100 STEP 1
Dosificacion:
FOR dosificacion = 0 TO 15 STEP 1
HIGH SolenoideDosif
PAUSE 1000
NEXT dosificacion
LOW SolenoideDosif
NEXT 100


Es correcto lo que escribi?

resumiendo: tengo que ejecutar 100 veces una rutina que pone en alto un pin durante 15 segundos, y cuando hayan pasado las 100 veces ejecutar otra rutina que pone en alto otro pin durante 10 segundos, y luego reiniciar el ciclo y la cuenta, comenzando con la rutina de los 15 segundos.

Tambien siemore estar pendiente de la temperatura.

Como seria la mejor manera de escribirlo?

desde ya agradeco su ayuda, los saluda desde uruaguay, Alexus.

Un abrazo.
23/08/2010 #2


Respuesta: Duda con Escritura Prolija de Programa en Microcode.
Hola compatriota!.. no se como estas manejando tu temperatura o como la estas leyendo, pero no podras setearla para que interrumpa al pasar un cierto valor? De ser asi, puedes configurar el puerto y decirle que interrumpa cuando se salga de rango. Asi dejas "tiempo" para tu programa. Para el tema de la rutina la ejecucion de 100 veces es para lograr los 15 segundos? De ser asi puedes usar algun timer para lograr el tiempo, y liberando otra vez "tiempo" para tu programa. Lamento no ser de mucha ayuda. Saludos desde.... bueno desde Uruguay!
23/08/2010 #3

Avatar de alexus

Respuesta: Duda con Escritura Prolija de Programa en Microcode.
primero, para la temperatura, utilizo el canal 0 del conversor A/D, por lo tanto, utilizo:

ADCON1 = 00001110

la idea es que el programa no corra hasta que le temperatura se encuentr dentro de los 25º y 30º.

eso por un lado, en cuanto a las 100 veces, tengo que repetir una rutina que dura 15 segundos, 100 veces, osea esto:

inicio:
pongo en alto un pin
lo mantengo en alto 15 segundos (for o pause 15000? jeje)
lo pongo en bajo

tengo que repetir 100 veces la rutina inicio, y cuando el numero de repeticion haya llegado a 100:

inicio2:
poner en alto un pin
mantenerlo en alto 10 segundos
lo pongo en bajo

y luego repetir el ciclo de 15 segundos 100 veces nuevamente,

habia pensado, en sensar la tempraura al inicio de cada rutina de los 15 segundos.

gracias por tu ayuda!
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.