Picproje Elektronik Sitesi

PICPROJE PROGRAMLAMA DERSLERİ => STM32 Örnekleri => Konuyu başlatan: bulutay - 21 Haziran 2017, 02:41:29

Başlık: keil de input pin
Gönderen: bulutay - 21 Haziran 2017, 02:41:29

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?
Başlık: Ynt: keil de input pin
Gönderen: bulutay - 21 Haziran 2017, 22:03:25
yardımcı oacak yokmu
Başlık: Ynt: keil de input pin
Gönderen: muhittin_kaplan - 21 Haziran 2017, 22:38:28
Hocam code etiketlerini kullanırsanız daha iyi olur sanırım.
Başlık: Ynt: keil de input pin
Gönderen: bulutay - 25 Haziran 2017, 13:29:47
code etiketi bilmiyorum
Başlık: Ynt: keil de input pin
Gönderen: bulutay - 25 Haziran 2017, 13:30:38
muhittin bey kusura bakmayın
Başlık: Ynt: keil de input pin
Gönderen: mehmet - 25 Haziran 2017, 18:23:34
[ 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.
Başlık: Ynt: keil de input pin
Gönderen: Yuunus - 26 Haziran 2017, 02:14:39

GPIOA->IDR & 0x1;
Başlık: Ynt: keil de input pin
Gönderen: bulutay - 26 Haziran 2017, 09:50:49
teşekürler
Başlık: Ynt: keil de input pin
Gönderen: bulutay - 26 Haziran 2017, 09:51:33
konu hakkında yardımcı olabilirmisin
Başlık: Ynt: keil de input pin
Gönderen: Jamesbond79 - 26 Haziran 2017, 14:31:27
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
Başlık: Ynt: keil de input pin
Gönderen: Yuunus - 26 Haziran 2017, 14:55:18

Verix=(GPIOA->IDR & 0x1); //birinci pin oku
Veriy=(GPIOA->IDR & 0x2) >> 1; //ikinci pin oku vs.
Başlık: Ynt: keil de input pin
Gönderen: bulutay - 29 Haziran 2017, 00:31:27

Verix=(GPIOA->IDR & 0x1110);


bu şekilde olur mu peki



EK:
Sayın @bulutay; yazdıklarımı okumamışsınız.
Başlık: Ynt: keil de input pin
Gönderen: fatal16 - 29 Haziran 2017, 20:17:24
@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.
Başlık: Ynt: keil de input pin
Gönderen: bulutay - 30 Haziran 2017, 07:53:41
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 .
Başlık: Ynt: keil de input pin
Gönderen: Yuunus - 30 Haziran 2017, 09:38:30
Ccs den cok anlamam ama burda sanki 3 pinden okuma yapmis
Verix=(GPIOA->IDR & 0xE);  seklinde okuyabilmen lazim.ilk pini dikkate almamis gibi.