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/roboti/solarni/dalsi_verze/main.c 1 19.09.05 20:39 Jakub $ */
#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 kdyz
{ // sepnuto)
port_b_pullups (false); // vypnuti pullapu
goto chyba; // kdyz 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
}