Haberler:

Değerli Üyelerimiz,
Forumumuzun altyapısını, sizlere daha iyi bir deneyim sunabilmek adına güncelledik. 2.0.14 sürümünden 2.1.4 sürümüne geçiş yaparak güvenlik, performans ve kullanım kolaylığı açısından önemli iyileştirmeler sağladık.

Main Menu

usb 18f4550 de döngüyü durdurmak

Başlatan fkg2003, 08 Ocak 2012, 20:58:47

« önceki - sonraki »

fkg2003


void ProcessIO(void)
{         

    //Blink the LEDs according to the USB device status
    if(blinkStatusValid)
    {
        BlinkUSBStatus();
    }

    // User Application USB tasks -fff
    if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) return;
   
    if(!HIDRxHandleBusy(USBOutHandle)) //Check if data was received from the host.
    {   
        switch(ReceivedDataBuffer[0]) //Look at the data the host sent, to see what kind of application specific command it sent.
        {
            case 0x80:  //Toggle LEDs command
{
                        while(birdegisken<1000)//durdurmak istediğim döngü bu
                       //işleyen kodlar burda...
                         }
         }

    {

arkadaşlar Picdem fs usb adlı yazılımda yukarıdaki kısımdaki gibi bir kodum var. bahsettiğim yerdeki döngü sonlanmadan usb den gönderdiğim sinyalle döngüğü sonlandırmak istiyorum. bunu nasıl yapabilirim?

Uykusuz

Merhaba, öncelikle hoş geldiniz.

Hocam öncelikle belirteyim daha önce usb ile ilgilenmedim. Bahsettiğiniz döngüdeki birdegisken adlı değişkene döngünün içindeyken 1000 veya daha büyük bir değer atadığınızda programınız döngüden çıkacaktır. İstediğiniz şart gerçekleştiğinde yapmanız gereken bu değişkene 1000 veya daha büyük bir sayı atamak. Umarım sorunuzu yanlış anlamamışımdır.

Saygılar.
Projelerimiz için tıklayın http://www.lugatek.com/
Sipariş ve Bilgi için satis@lugatek.com ile irtibata geçiniz.
Lütfen teknik sorularınızı forumda sorunuz özel mesaj göndermeyiniz

fkg2003

merhaba uykusuz hocam. 1000 üzerinde bir sayı atadığımda sonlanacağı kesin. benim istediğim şey şu; bu döngü kendi halinde ilerlerken zaten o değişken 1000e kadar tek tek sayıyor ve çıkıyor. benim istediğimse daha bine ulaşmadan arada bir yerde döngüyü sonlandırmak. bunu da usb den gönderdiğim komutla yapmak istiyorum. bu sorunun cevabını bilen var mı?

Uykusuz

Hocam büyük ihtimalle ben sorunuzu anlayamadım. C dilinde istenilen herhangi bir durum neticesinde o anki döngüyü sonlandıran komutlar var. Örneğin goto ve continue komutları.

continue komutu kullanıldığı anda mevcut yenilemenin (döngünün) geri kalanının atlanmasını sağlıyor.

Umarım probleminiz en kısa sürede çözülür benim bildiklerim bu kadar  :)
Projelerimiz için tıklayın http://www.lugatek.com/
Sipariş ve Bilgi için satis@lugatek.com ile irtibata geçiniz.
Lütfen teknik sorularınızı forumda sorunuz özel mesaj göndermeyiniz

ertan2002

selam,


  while(birdegisken<1000)//durdurmak istediğim döngü bu
                       //işleyen kodlar burda...

işleyen kod kısmında birdeğişkeni arttırman lazım.. ancak şöyle bir durum var. program sürekli olarak bu döngüden dışarı çıkmaz. o yüzden burada thread mantığı vardır programlamada.

pic de ise şöyle yapılabilir. interrupt kullanabilirsin. bir girişten bir veri aldığında birdegisken =1000 dersin bu da döngüden çıkmasını sağlatır. eğer interrupt kullanmazsan o döngüyle iş bitilmeden çıkılmayacaktır. interrupt ise, bir olay olduğunda pic yaptığı işi yarıda kesip o kesmeye bakar. ondan sonra kaldığı yerden devam eder.

kısacası araştırmanız gereken konu inerrupt (kesmeler)

kolay gelsin