myurdabak
Üye
- Katılım
- 31 Ocak 2008
- Mesajlar
- 499
- Puanları
- 1
Arkadaşlar 2pic arasında seri iletişim kurmaya çalışıyorum.verici devredeki 1.butona bastığımda alıcı devrede for döngüsü işleme girecek.Yine verici devredeki diğer butona bastığımda alıcı devredeki pic başka bir programa atlicak yani başka bir döngüye atlayamıyorum.bu programı bi türlü yazamadım yardımcı olursanız çok sevinirim.
bu programa ne eklemeliyim? Yapmak istediğim devrenin şemasınıda gönderdim.Butonlara bastığımda step motor kontrolü sağlanacak.Fakat ilk çalıştırmamda herhangi bir butona basınca o buton görevini görüyor ama sonra başka butona basınca for döngüsünden çıkamadığı için devre kilitleniyor orada.For döngüsünden nasıl çıkabilirm yazdğım programın bi kıısmı aşağıda:
verici programım:
basla:
if(input(pin_b0))
{ ver=10;
while(input(pin_b0));
goto gonder;
}
if(input(pin_b1))
{
ver=22;
while(input(pin_b1));
goto gonder;
}
goto basla;
gonder:
putc(ver); //alıcıya ver değişkeni içindeki bilgi gönderiliyor
goto basla;
Alıcı PRORAMI
while(1){
al=getch(); //vericiden gönderilen bilgi alınıyor
if (al==10) //eğer alınan bilgi 10 ise
{
for(i=0;i<8;i++)
{
output_b(sag); // Step motor 1 adım ileri
delay_ms(hiz); // Adımlar arası bekleme süresi
if (i==7) i=-1; // i değişkeni 7 olunca i değeri -1 olsun
//mesela verici devrede diğer butona bastığımda bu döngüden çıkması lazım devrenin
}
}
if (al==22)
{
for(i=0;i<8;i++)
{
output_b(sol); // Step motor 1 adım ileri
delay_ms(hiz); // Adımlar arası bekleme süresi
if (i==7) i=-1; // i değişkeni 7 olunca i değeri -1 olsun
}
}
bu programa ne eklemeliyim? Yapmak istediğim devrenin şemasınıda gönderdim.Butonlara bastığımda step motor kontrolü sağlanacak.Fakat ilk çalıştırmamda herhangi bir butona basınca o buton görevini görüyor ama sonra başka butona basınca for döngüsünden çıkamadığı için devre kilitleniyor orada.For döngüsünden nasıl çıkabilirm yazdğım programın bi kıısmı aşağıda:
verici programım:
basla:
if(input(pin_b0))
{ ver=10;
while(input(pin_b0));
goto gonder;
}
if(input(pin_b1))
{
ver=22;
while(input(pin_b1));
goto gonder;
}
goto basla;
gonder:
putc(ver); //alıcıya ver değişkeni içindeki bilgi gönderiliyor
goto basla;
Alıcı PRORAMI
while(1){
al=getch(); //vericiden gönderilen bilgi alınıyor
if (al==10) //eğer alınan bilgi 10 ise
{
for(i=0;i<8;i++)
{
output_b(sag); // Step motor 1 adım ileri
delay_ms(hiz); // Adımlar arası bekleme süresi
if (i==7) i=-1; // i değişkeni 7 olunca i değeri -1 olsun
//mesela verici devrede diğer butona bastığımda bu döngüden çıkması lazım devrenin
}
}
if (al==22)
{
for(i=0;i<8;i++)
{
output_b(sol); // Step motor 1 adım ileri
delay_ms(hiz); // Adımlar arası bekleme süresi
if (i==7) i=-1; // i değişkeni 7 olunca i değeri -1 olsun
}
}