Rzeszów 24.03.2010
Mikronapędy w systemach komputerowych
Laboratorium 3:
Algorytm komutacji silników skokowych
ze sprzężeniem zwrotnym
Artur Charchut
Mirosław Borek
Gr. L02, 2FD
1. Wstęp
Celem laboratorium było napisanie programu w języku C, realizującego obroty silnika zgodnie z wartością wprowadzoną przez użytkownika.
2. Program napisany na zajęciach:
3. Wniosek:
Efektem działania przedstawionego programu było „kręcenie się” silnika w zależności od wprowadzonej wartości. Program przedstawiony powyżej został napisany na zajęciach i działał poprawnie, wiec nie było konieczności dalszej modyfikacji.
#include <reg515.sfr>
#include <lcd.h>
int tab[4]={8,2,4,1};
int i, a=2, ile_imp=0, hamowanie = 80;
int x;
_interrupt 0 void fun(void)
{
ile_imp++;
if (ile_imp >= x-175) //warunek hamowania
hamowanie++;
if (ile_imp == x) //warunek zakończenia
{
EAL = 0;
ile_imp=0;
}
for (i=0 ; i<hamowanie ; i++);
P1=tab[a];
a++;
if(a==4)
a=0;
}
void main()
{
int znak, poprz, i, liczba=0;
init();
EAL = 0;
IT0 = 1;
EX0 = 1;
znak = get_char();
while(1)
{
poprz=znak;
znak = get_char();
if(znak !='\0' && poprz == '\0' && znak!='g' && znak!='l' &&
znak!='p' && znak!='d')
{
if(liczba==0)
put_instr(0x01);
if(znak != 'e')
{
put_char(znak);
for(i=0;i<20000;i++);
liczba=liczba*10;
liczba=liczba+znak-48;
}
else
{
if (znak=='e' && liczba != 0)
{
x=liczba;
P1 = 8;
for(i=0 ; i<3000 ; i++);
P1= 2;
for (i=0 ; i<1500 ; i++);
EAL =1;
ile_imp=0;
hamowanie = 80;
liczba=0;
}
}
}
}
}