Nuvoton işlemciler ile projeler yapmak için bir tane geliştirme kartı satın aldım. Freertos ekli örnek yazılımı kendime göre değiştirdim ve üzerinde denemeler yapıyorum işlemci while döngüsününden önceki işlemleri 1 kez yapıyor ve sonra bir daha yapmıyor, diğer task çalışmaya devam ediyor yani işlemci donmuyor.
İşlemci: M031SE3AE
Derleyici: KEIL
FreeRTOS versiyonu: V10.4.3
Not: MotorCounter değeri 10ms'lik bir timer ile azaltılıyor ve debug yaptığımda 0 olduğunu görebiliyorum.
*(Güncelleme)While içindeki normalde MotorPosition değil MotorCounter du buraya atarken yanlış yazmışım
ama yazılımı aşağıdaki gibi 2 şekilde de yazınca sorun olmuyor.
F14 pinine lojik 1 uygulayınca işlemi tekrarlıyor
Diğer task içindeki görev
İşlemci: M031SE3AE
Derleyici: KEIL
FreeRTOS versiyonu: V10.4.3
Not: MotorCounter değeri 10ms'lik bir timer ile azaltılıyor ve debug yaptığımda 0 olduğunu görebiliyorum.
*(Güncelleme)While içindeki normalde MotorPosition değil MotorCounter du buraya atarken yanlış yazmışım
Kod:
/*İşlemcinin takıldığı while döngüsü*/
Stepper.MotorDirection=0;
Stepper.MotorCounter=30;
while(Stepper.MotorCounter>0);
ama yazılımı aşağıdaki gibi 2 şekilde de yazınca sorun olmuyor.
Kod:
/*Bu şekilde çalışıyor*/
Stepper.MotorDirection=0;
Stepper.MotorCounter=30;
while(Stepper.MotorCounter>0){vTaskDelay(pdMS_TO_TICKS(1));};
F14 pinine lojik 1 uygulayınca işlemi tekrarlıyor
Kod:
/*Bu şekilde çalışıyor*/
Stepper.MotorDirection=0;
Stepper.MotorCounter=30;
while(!PF14);
Diğer task içindeki görev
Kod:
PB14=1;
vTaskDelay(pdMS_TO_TICKS(1000));
PB14=0;
vTaskDelay(pdMS_TO_TICKS(1000));
Son düzenleme: