// n2conhecer2016.c - Criado pelo studio UNO 2.3
// 28 June 2016 1:30:46 pm
#include <uno.h>
// Declaracao das Variaveis
unsigned int Tempo;
int encdir;
int encesq;
int velocidade;
// Prototipos
void zeroencoder(void);
void leencoders(void);
void freio(void);
void Resgate(void);
void reto(void);
//Funcoes do Usuario
void zeroencoder(void)
{
__SmartSensorCmd(1, 1, 9, 0);
__SmartSensorCmd(1, 2, 9, 0);
encesq = 0;
encdir = 0;
}
void leencoders(void)
{
encesq = __EncoderGetValue(1);
encdir = __EncoderGetValue(2);
__delay(5);
}
void freio(void)
{
__motor_curso(__REVERSE);
__delay(30);
__motor_curso(__STOP);
}
void Resgate(void)
{
bitset(__TRIS_PWM, __DIGITAL1);
__PWM1 = 180;
__motor_curso(__FORWARD);
__timer_sistema = 0;
while(!(__analog_in(0) > 150)) { __delay(10); }
Tempo = __timer_sistema;
freio();
__PWM1 = 40;
__motor_curso(__BACKWARD);
__delay(Tempo);
freio();
__PWM1 = 180;
}
void reto(void)
{
if ((encesq > encdir)) {
__motor(1, 0);
__motor(2, velocidade);
}
if ((encdir > encesq)) {
__motor(1, velocidade);
__motor(2, 0);
}
if ((encesq == encdir)) {
__motor(1, velocidade);
__motor(2, velocidade);
}
}
//Funcao Principal
void main(void)
{
__inicializa;
__SmartSensorCmd(1, 1, 8, 0);
zeroencoder();
while(TRUE) {
leencoders();
velocidade = 800;
reto();
}
while(TRUE) { }
}