Programa Para Motor Sin Retro Alimentacion
Enviado por 23izaak • 19 de Febrero de 2012 • 1.196 Palabras (5 Páginas) • 999 Visitas
/*
programa para controlar un motor con retro alimentacion
*/
#include "18F45K22.h"
#include "P18F45K22.h"
#DEVICE ADC=8
#FUSES NOMCLR,INTRC_IO,NOPLLEN,PRIMARY_SW
#FUSES NOPBADEN,XINST
#use delay(CLOCK=4000000)
int8 ciclo=13;
int8 q; //revoluciones
//int16 vueltas=25 ; // vueltas que debe dar
int32 tiempo; //tiemppo de muestreo
int8 muestra1;
int8 muestra2;
int8 muestra3;
int8 muestra4;
int8 muestra5;
int8 x1,x2,x3,x4,x5;
float mediaX,mediaY
float sxx,syy,sxy;
float b,a,R2
void main()
{
OSCCON=0x52;
SETUP_CCP1(CCP_PWM); //Configurando módulo para PWM Y MODIFICARLO PARA QUE SEA
// DE 16 BITS COMO RL TMR1 Y PODER HACER LOS WHILE
SETUP_TIMER_2(T2_DIV_BY_4,26,4); //MODIFICAR PARA 16 BITS
// T1CON=0B10000111; // contador externo
T0CON=0xFF; // contador interno
SET_TIMER0(0)
while(1)
{
SET_PWM1_DUTY(ciclo);
tiempo=tiempo+1;
// while(tiempo==55000)
// {
// q=get_timer0();
while(tiempo==40000)
{
q=get_timer0();
muestra1=q;
q=0;
ciclo=ciclo+1;
x1=ciclo;
delay_ms(100);
}
while(tiempo==80000)
{
q=get_timer0();
muestra2=q;
q=0;
ciclo=ciclo+1;
x2=ciclo;
delay_ms(100);
}
while(tiempo==160000)
{
q=get_timer0();
muestra3=q;
q=0;
ciclo=ciclo+1;
x3=ciclo;
delay_ms(100);
}
while(tiempo==200000)
{
q=get_timer0();
muestra4=q;
q=0;
ciclo=ciclo+1;
x4=ciclo;
...