Subversion Repositories svnkaklik

Rev

Go to most recent revision | Blame | Last modification | View Log | Download

/* Program pro ovladani slunecniho robota */
/* (chodi se zapojenim Dark Walker rev.3  */
/* $Header: /programy/PIC_C/robot/solarni_robot/dalsi_verze/main.c 7     14.05.03 23:21 Kaklik $ */

#include "D:\@Kaklik\programy\PIC_C\robot\solarni_robot\dalsi_verze\main.h"

#define LED       PIN_B3   // LED
#define ON_TIME   75       // Cas sepnuti rele
#define meridlo   PIN_B2   // Napetovy supervisor
#define RESET     PIN_B0   // Pridrzeni RESETu

void rele1()   // Sepnuti prvniho rele
{
   output_low(PIN_A1);
   output_low(PIN_B4);
   delay_ms(ON_TIME);
   output_high(PIN_A1);
   output_high(PIN_B4);
}

void motor()   // Sepnuti motoru
{
   output_low(pin_A2);
   output_low(pin_B1);
   output_low(PIN_A4);
   delay_ms(ON_TIME);
   output_high(pin_A2);
   output_high(pin_B1);
   output_high(PIN_A4);
}


void main()
{

   setup_counters(RTCC_INTERNAL,WDT_18MS);

   output_high(RESET);                       // vypnuti resetu od supervizoru

   port_b_pullups (true);                    // zapnuti pullapu ,aby se poznal sepnuty
                                             // nebo rozepnuty kontakt

   output_high(LED);                         //
   delay_ms(ON_TIME);                        // bliknuti LED
   output_low(LED);                          //

     if (!input(pin_B5))                     // zmereni spravneho sepnuti rele1 (spatne kdys
     {                                       // sepnuto)                                                                        
         port_b_pullups (false);             // vypnuti pullapu
         goto chyba;                         // kdys je uz sepnuto nemusi se znova spinat
                                             // ani cekat na nabiti kondenzatoru
     }

   port_b_pullups (false);                   // vypnuti pullapu za spravneho prubehu
   rele1();                                  // sepnuti rele1

   delay_ms(28000);                          // cekani na nabiti kondenzatoru (casovy limit
                                             // pred rozjetim je 30 vterin 2 vteriny jsou
                                             // rezerva na nabiti kondenzatoru pro PIC)

chyba:
   motor();                                  // zapnuti motoru
   output_low(RESET);                        // zapnuti resetu od supervisoru
}