0,0 → 1,64 |
/* 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 |
} |