veri1=HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_3);
veri1=veri1*100;
veri2=HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_2);
veri2=veri2*10;
veri3=HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_1);
veri4=veri1+veri2+veri3;
if(veri4==1)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET);
}
else HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
Daha kısa bir kod yazılabilir mi? Acaba üç tane pini nasıl maskeleriz?
yardımcı oacak yokmu
Hocam code etiketlerini kullanırsanız daha iyi olur sanırım.
code etiketi bilmiyorum
muhittin bey kusura bakmayın
[ code]
...
gerekli kodlar
...
[ /code]
Burada bilerek "[" işaretinden sonra bir boşluk
bıraktım belli olması açısından.
...
gerekli kodlar
...
Ek:
Noktalama işaretlerine de dikkat edelim.
GPIOA->IDR & 0x1;
teşekürler
konu hakkında yardımcı olabilirmisin
Maskelemek kastın nedir? Kodunda her pin sanki basamak analizi gibi 1 10 100 çarpmissin maskelemek pinleri ve işlemine tabi tutmak sizin yaptığınız girişleri ağırlık vermek acaba amaç girişleri sensör bağlayıp pid tarzı bir kontrol mu? Konuyla ilgili detay verirseniz. Daha doğru açıklama yapılabilir. Kısa kod for next ile pinleri tek kod ile oku
a=1;
For.....
veri(i)=HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_(i)*a);
a=a*10
Net i
Verix=(GPIOA->IDR & 0x1); //birinci pin oku
Veriy=(GPIOA->IDR & 0x2) >> 1; //ikinci pin oku vs.
Verix=(GPIOA->IDR & 0x1110);
bu şekilde olur mu peki
EK:
Sayın
@bulutay; yazdıklarımı okumamışsınız.
@bulutay Hocam ilk mesajınızda bütün pinlerin durumunu tek tek okumuşsunuz ve pinlerin durumlarını sırayla 100, 10 ve 1 ile çarpmışsınız.
Burada bütün pinler 1 olduğunda veri4 111 değerini alır veya sadece 2. pinin 1 olması durumunda veri4 10 değerini alır.
Yani sadece veri3 pini 1 olduğu zaman veri4 1 olabilir.
Buna göre sadece veri3 pini kontrol ederek istediğimiz işlemi yapabiliriz.
okudum ama anliyamadım.
df = (input_a ()& (0b1110)) ccs c de bu şekilde oluyor. ama stm de aynısını yapamdım. sensor girişleri .
Ccs den cok anlamam ama burda sanki 3 pinden okuma yapmis
Verix=(GPIOA->IDR & 0xE); seklinde okuyabilmen lazim.ilk pini dikkate almamis gibi.