İnt16 türünde tanımlanan encoder ismindeki değişken int_ext kesmesi ile değeri motor yönüne bağlı olarak artıyor veya azalıyor. Bu kodu encoder okumada kullanıyoruz, sorunum ise bu değişken olan değeri usb ttl ile bilgisayar ekranında görebilmek.
#int_ext
void ext_kesmesi ()
{
if(input(pin_b0)==1&&input(pin_b1)==1) if(encoder>0) encoder--;
if(input(pin_b0)==1&&input(pin_b1)==0) encoder++;
rpm_buffer++;
output_high(pin_c5); // Enable pinini aktif ettik.
printf("encoder");
enchata=0;
}
Kesme meydana gelince encoder ismindeki değişken artıyor veya azalıyor ben o andaki artışı veya azalışını seri haberleşme ile ekranda görmek istiyorum.
printf("encoder"); ile gönderiyorum ekranda ise encoder ifadesini görüyorum, encoder yerine encoderin değerini nasıl görebilirim?
Sorunumu çözdüm int16 türündeki ifadeyi gönderirken %ld
kullanılıyormuş. %d int8 içinmiş.
if(input(pin_a3)==0)
{
output_high(pin_c5); //Enable pini 1 yapıldı.
printf("\rEnkoder Degeri-> %ld",encoder); // İnt16 türündeki veri gönderildi.
output_low(pin_c5); // Enable pini 0 yapıldı.
}