Bu yakinlarda z.lib kutuphanesine dahil edecegim LCD rutinlerini yazmaya henuz baslamistim ki LCD menulerde gezinmek icin ileri, geri ve sec gibi en az 3 butona ihtiyac oldugunu gordum.
STM32F4 Discovery de sadece 1 kullanıcı butonu oldugundan portlalara iki tane daha buton bağlamak yerine mavi butona 3 görev atadim.
Debounce free buton okuma rutinleri nerede ise 0 CPU yükü ile ASM olarak yazildi. Yani hand made.
Tek tık, Menülerde İLERLE yada GERİLE.
Çift tık ilerleme yönünü toggle et.
Uzun sureli basış ENTER.
Z.LIB kutuphane dosyasini indirmek icin tiklayin (http://www.cncdesigner.com/wordpress/?p=3950&preview=true)
LCD rutini de z.lib'e dahil edildiginde BIOS rutinlerimiz bitmis olacak ve artik daha ust seviyede programlar yazmaya baslayabilecegiz.
#include "STM32F4xx.h"
#include "Zystem.h"
#define Mavi 0x8000
#define Kirmizi 0x4000
#define Kavunici 0x2000
#define Yesil 0x1000
#define TekTik 1
#define CiftTik 2
#define Enter 3
unsigned short Delay;
void BirMiliSaniye()
{
if(Delay) Delay--;
}
int main()
{
while(1)
{
switch(getch())
{
case TekTik: {
GPIOD->BSRRL=Yesil;
break;
}
case CiftTik:{
GPIOD->ODR^=Mavi; // Cift tik yapilinca mavi led toggle edilsin
break;
}
case Enter: {
GPIOD->BSRRL=Kirmizi;
break;
}
}
if(Buton) // getch fonksiyonu basilan tusu Buton degiskenine yaziyor.
{
Delay=500; while(Delay);
GPIOD->BSRRH=Kirmizi|Yesil;
}
}
}
MVI 0017 (http://www.youtube.com/watch?v=irPj_ncHXtg#)
arkadaslar bu uygulamayı yaparken boyle bi hata alıyorum sebebi ne olabilir
(http://s4.postimg.cc/z7h83chex/123.jpg) (http://postimg.cc/image/z7h83chex/)
bu ozelligi kullanmam gerekiyorda yardımcı olursanız sevinirim