Metallian
Üye
- Katılım
- 21 Ara 2012
- Mesajlar
- 2
- Puanları
- 1
#include<16f877.h>
#fuses HS,NOWDT
#use Delay(Clock=20000000)
#byte port_a=5
#byte port_b=6
#byte port_d=8
/*Port kurulumu*/
io_set(){
set_tris_a(0xff);
set_tris_b(0xff);
set_tris_d(0x00);
}
main(){
io_set();
while(1){
/* +90 Yönünde dönüş için Port B'den gelen sinyallere göre bilgi çıkışı*/
switch(~port_b&0x1f){
case 1: output_bit(pin_D0,1); delay_ms(1.1);
output_bit(pin_D0,0); delay_us(18.9);
break;
case 2: output_bit(pin_D1,1); delay_ms(1.1);
output_bit(pin_D1,0); delay_us(18.9);
break;
case 4: output_bit(pin_D2,1); delay_ms(1.1);
output_bit(pin_D2,0); delay_us(18.9);
break;
case 8: output_bit(pin_D3,1); delay_ms(1.1);
output_bit(pin_D3,0); delay_us(18.9);
break;
case 16: output_bit(pin_D4,1); delay_ms(1.1);
output_bit(pin_D4,0); delay_us(18.9);
break;
}
/* -90 Yönünde dönüş için Port A'den gelen sinyallere göre bilgi çıkışı*/
switch(~port_a&0x1f){
case 1: output_bit(pin_D4,1); delay_ms(2);
output_bit(pin_D4,0); delay_us(18);
break;
case 2: output_bit(pin_D3,1); delay_ms(2);
output_bit(pin_D3,0); delay_us(18);
break;
case 4: output_bit(pin_D2,1); delay_ms(2);
output_bit(pin_D2,0); delay_us(18);
break;
case 8: output_bit(pin_D1,1); delay_ms(2);
output_bit(pin_D1,0); delay_us(18);
break;
case 16: output_bit(pin_D0,1); delay_ms(2);
output_bit(pin_D0,0); delay_us(18);
break;
}
}
}
Merhabalar. Günlerdir arayıp sonuç bulamadığım bir problemle ilgili yardımınıza ihtiyacım var, bu forum da yeniyim. Bu ulaştığım kaynaklardan biri, C++ dilini bilmiyorum. Sizlerden ricam bu yardım iştediğim paylaşımı mı düzenlermisiniz ? Bu kodlarla servo motor + 90 ve - 90 yönlerde hareket sağlıyor. Butona bastığım sürece dönmesi ve bıraktığım an durması konusunda 2 haftadır toplamadığım döküman kalmadı ufak uygulamalar var elimde ama 5 servo kontrolüne sıra geldiğinde gerekli düzenlemeyi yapamıyorum. Yardımlarınızı bekliyorum şimdiden teşekkür ederim. Hayırlı forumlar
#fuses HS,NOWDT
#use Delay(Clock=20000000)
#byte port_a=5
#byte port_b=6
#byte port_d=8
/*Port kurulumu*/
io_set(){
set_tris_a(0xff);
set_tris_b(0xff);
set_tris_d(0x00);
}
main(){
io_set();
while(1){
/* +90 Yönünde dönüş için Port B'den gelen sinyallere göre bilgi çıkışı*/
switch(~port_b&0x1f){
case 1: output_bit(pin_D0,1); delay_ms(1.1);
output_bit(pin_D0,0); delay_us(18.9);
break;
case 2: output_bit(pin_D1,1); delay_ms(1.1);
output_bit(pin_D1,0); delay_us(18.9);
break;
case 4: output_bit(pin_D2,1); delay_ms(1.1);
output_bit(pin_D2,0); delay_us(18.9);
break;
case 8: output_bit(pin_D3,1); delay_ms(1.1);
output_bit(pin_D3,0); delay_us(18.9);
break;
case 16: output_bit(pin_D4,1); delay_ms(1.1);
output_bit(pin_D4,0); delay_us(18.9);
break;
}
/* -90 Yönünde dönüş için Port A'den gelen sinyallere göre bilgi çıkışı*/
switch(~port_a&0x1f){
case 1: output_bit(pin_D4,1); delay_ms(2);
output_bit(pin_D4,0); delay_us(18);
break;
case 2: output_bit(pin_D3,1); delay_ms(2);
output_bit(pin_D3,0); delay_us(18);
break;
case 4: output_bit(pin_D2,1); delay_ms(2);
output_bit(pin_D2,0); delay_us(18);
break;
case 8: output_bit(pin_D1,1); delay_ms(2);
output_bit(pin_D1,0); delay_us(18);
break;
case 16: output_bit(pin_D0,1); delay_ms(2);
output_bit(pin_D0,0); delay_us(18);
break;
}
}
}
Merhabalar. Günlerdir arayıp sonuç bulamadığım bir problemle ilgili yardımınıza ihtiyacım var, bu forum da yeniyim. Bu ulaştığım kaynaklardan biri, C++ dilini bilmiyorum. Sizlerden ricam bu yardım iştediğim paylaşımı mı düzenlermisiniz ? Bu kodlarla servo motor + 90 ve - 90 yönlerde hareket sağlıyor. Butona bastığım sürece dönmesi ve bıraktığım an durması konusunda 2 haftadır toplamadığım döküman kalmadı ufak uygulamalar var elimde ama 5 servo kontrolüne sıra geldiğinde gerekli düzenlemeyi yapamıyorum. Yardımlarınızı bekliyorum şimdiden teşekkür ederim. Hayırlı forumlar