Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Praktikum Servo
#include <mega32.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>
void nilai_servo(void)
{
// 0-20ms periode dijalankan dalam rutin fungsi disini
// kita hanya perlu mengisi nilai dari servo[1]-servo[5] untuk menggerakkan servo dengan maximal nilai adalah 255
unsigned char pulsa;
for (pulsa=0; pulsa<=200; pulsa++)
{
if (pulsa>=servo[1]) port_servo1=0;
if (pulsa>=servo[2]) port_servo2=0;
if (pulsa>=servo[3]) port_servo3=0;
if (pulsa>=servo[4]) port_servo4=0;
if (pulsa>=servo[5]) port_servo5=0;
delay_us(10);
}
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0xFC;
// Analog Comparator initialization
// Analog Comparator: Off
TCCR0=0x04;
TCNT0=0x39;
OCR0=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
ACSR=0x80;
SFIOR=0x00;
servo[5]=read_adc(4);
lcd_gotoxy(0,0);
sprintf(screen,"%3d %3d %3d ",servo[1],servo[2],servo[3]);
lcd_puts(screen);
lcd_gotoxy(1,1);
sprintf(screen,"%3d %3d ",servo[4],servo[5]);
lcd_puts(screen);
}
}