Autor Tema: alarma para casa  (Leído 3307 veces)

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

Desconectado tazma

  • PIC10
  • *
  • Mensajes: 10
alarma para casa
« en: 06 de Mayo de 2011, 16:16:16 »
hola buenas como ya e dicho en otros hilos soy novato y tengo un problema tengo este codigo en ccs no es mio  el caso es que este codigo esta preparadopara un solo sensor y quiero poner 6 sensores repartidos por la casa pero no se que tengo que cambiar del codigo para que trabaje con los 6 sensores  pongo un video de la alarma
feature=player_embedded

 main.h

#include <16F628A.h>
 
#FUSES NOWDT                    //No Watch Dog Timer
#FUSES INTRC                    //Internal RC Osc
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOMCLR                   //Master Clear pin used for I/O
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
 
#use delay(clock=4000000)
#use fast_io(b)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
 
typedef enum {INICIO, DETECTA, ALARMA, LLAMADO} ESTADOS;











#include "main.h"
 
ESTADOS estado;
volatile int8 dato;
 
// se ha detectado un movimiento y se pasa al estado de alarma
#INT_EXT
void movimiento()
{
   if(estado == DETECTA)
   {
      estado = ALARMA;
   }
}
 
// se ha detectado un carácter en la cola la USART
#INT_RDA
void lectura()
{
   int8 valor;
   if(kbhit())
   {
      valor = getc();
      if(valor != '\r')
      {
         dato = valor;
      }
   }
}
 
// función genérica que pasa al estado de detección borrando cualquier interrupción anterior y activándola
void deteccion()
{
   estado = DETECTA;
   clear_interrupt(int_ext);
   enable_interrupts(int_ext);
}
 
void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);
   setup_oscillator(OSC_4MHZ);
   // Ponemos a todos los pines del puerto B como entrada excepto el de salida de la USART
   set_tris_b(0xFB);
   // Empezamos por el estado de inicio
   estado = INICIO;
   // La interrupción debe ser cuando pasa de nivel bajo a nivel alto
   ext_int_edge( L_TO_H );
   enable_interrupts(int_rda);
   enable_interrupts(global);
 
   // TODO: USER CODE!!
 
   for(;;)
   {
      switch(estado)
      {
         // En el estado de inicio inicializamos el modem para que no haga eco de los comandos,
         // los valores de respuesta sean numéricos y apague el altavoz del modem, esperando
         // 15 segundos para dejar salir al usuario de la sala y pasamos al estado de detección
         case INICIO:
            delay_ms(2000);
            printf("ATE0V0M0\r");
            delay_ms(13000);
            deteccion();
            break;
         // En el estado de detección esperamos la interrupción en modo sleep para consumir menos
         case DETECTA:
            sleep();
            break;
         // Se desactiva la interrupción y marcamos el número de teléfono que queramos alertar
         case ALARMA:
            disable_interrupts(int_ext);
            dato = 'A';
            printf("ATDTXXXXXXXXX\r");
            estado = LLAMADO;
            break;
         // Esperamos a que termine la llamada para que vuelva al estado de detección
         case LLAMADO:
            if(dato != 'A')
            {
               deteccion();
            }
      }
   }
 
}




Desconectado Miquel_S

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1251
Re: alarma para casa
« Respuesta #1 en: 06 de Mayo de 2011, 17:03:20 »
Hola tazna, a mi parecer estas empezando la casa por el tejado, por lo que quieres hacer no es solo cambiar una linea de codigo por otra o añadir otras lineas es algo mas complicado.

Saludos.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado banistelrroy

  • PIC10
  • *
  • Mensajes: 29
Re: alarma para casa
« Respuesta #2 en: 11 de Mayo de 2011, 00:56:27 »
muy bueno el lenguaje esta c verdad bueno si lo tubieras en microcode te lo agradeceria

Desconectado tazma

  • PIC10
  • *
  • Mensajes: 10
Re: alarma para casa
« Respuesta #3 en: 11 de Mayo de 2011, 04:45:41 »
si esta en ccs y no en microcode no esta no es mio el codigo yo soy aunnovatopara hacer estas cosas lo que quiero es que alguien me explique comopuedo modificarlo


 

anything