#device PIC18F4680
#include <18f4680.h>
#fuses xt,nowdt,noprotect, nobrownout, nolvp, noput, nowrt, nocpd
#use delay (clock=4000000)
#include <stdio.h>
unsigned int16 sayac = 0, hedef = 0;
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1,stream=deneme)
char islem;
void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_timer_2(T2_DIV_BY_16,155,1); //16,0 us overflow, 16,0 us interrupt
setup_ccp1(CCP_PWM);
set_tris_c(0x00);
output_c(0x00);
set_tris_b(0x00);
output_b(0x00);
while(1)
{
hedef=20; //400*8
sayac=0;
output_high(pin_b0);
delay_ms(3000);
output_low(pin_b0);
delay_ms(1000);
printf("\n\rYapmak istediginiz islemi seciniz>");
islem=getch();
putc(islem);
if(islem=='r' || islem=='R')
{
do
{
output_high(pin_c3);// motor aktif
delay_ms(100);
output_high(pin_c1);// motor yönü belirlendi
delay_us(50);
sayac++;
set_pwm1_duty((int16)1);
}while(sayac<=hedef);
hedef=20; //400*8
sayac=0;
do
{
output_high(pin_c3);// motor aktif
delay_ms(100);
output_low(pin_c1);// motor yönü belirlendi
delay_us(50);
sayac++;
set_pwm1_duty((int16)1);
}while(sayac<=hedef);
set_pwm1_duty((int16)0);
}
}
}