Ustam bu kartı ben satın aldım kullandım birkaç sefer ama hani hem programı çözmek hem de özelliğini incelemek açısından öyle hobi tarzında birkaç tane program yazdım örnek vermek gerekirse kartın üzerindeki butonlar ile yine kartın üzerindeki led leri yakıp söndürmek ve birde 2*16 karakter lcd ekrana yazılar yazdırmak gibi çok basit sayılacak programlar yazdım hani çok prof programlarım oldu desem yalan söylemiş olurum
Evet tek sorun C dili ve saz arkadaşları fakat bu karta maalesef şu an benim bildiğim iki tane program ile yazılım yükleniyor birisi Hi-tech diğeri ise mikro c
Ben hi-tech ile hiç ilgilenmedim çünki kütüphaneler vs yüzünden hiç tavsiye etmediler biraz fazla prof bir programmış kendileri
o yüzden ben mikroC ile işimi çözme yoluna gittim.
Bunun yanında mikroC ile program yazmaya başlamadan önce bir tane kitap aldım mikroc ile arm adında bir kitap yeni çıktı sayılır fiyatı da işine göre çok ucuz diyebilrim.
Kitapta yazılanlardan anladığım kadarı ile bu işlemciye iki çeşit program yazılabiliyor birincisi tamamen registerleri kullanarak program yazıyorsunuz
Diğeri ise mikro c dilinin bu arm işlemcisi ( stm32f407 ) için olan kütüphanesini kullanarak bildiğimiz mikro c kodları ile program yazılabiliyor ben ikisini de denedim sayılır ama mikro c nin kütüphanesi bana biraz daha kolay ve kolay olduğu için de mantıklı geldi
Lafı uzatmadan yaptığım programlardan bir iki örnek vereyim en azından şeklini kafandırmanızda bir faydası olur belki .
///program 1 :
void calis(void){
gpiod_odr.b12=1;
gpiod_odr.b13=1;
gpiod_odr.b14=1;
gpiod_odr.b15=1;
delay_ms(250);
gpiod_odr.b12=0;
gpiod_odr.b13=0;
gpiod_odr.b14=0;
gpiod_odr.b15=0;
delay_ms(250);
}
void main() {
gpio_digital_input(&gpioa_base, _gpio_pinmask_0);
gpio_digital_output(&gpiod_odr, _gpio_pinmask_12);
gpio_digital_output(&gpiod_odr, _gpio_pinmask_13);
gpio_digital_output(&gpiod_odr, _gpio_pinmask_14);
gpio_digital_output(&gpiod_odr, _gpio_pinmask_15);
while (1){
while (gpioa_idr.b0 ==1 ){
calis();
}}}
////////////////////////////////
////Program 2:
sbit LCD_RS at GPIOc_ODR.B14;
sbit LCD_EN at GPIOe_ODR.B6;
sbit LCD_D4 at GPIOe_ODR.B4;
sbit LCD_D5 at GPIOe_ODR.B2;
sbit LCD_D6 at GPIOe_ODR.B0;
sbit LCD_D7 at GPIOb_ODR.B8;
void bekle(void){
delay_ms(500);}
void calis(void){
lcd_out(1,1,"murat
");
lcd_out(2,1,"yagci
");
gpiod_odr.b12=1;
delay_ms(70);
gpiod_odr.b12=0;
delay_ms(70);
gpiod_odr.b13=1;
delay_ms(70);
gpiod_odr.b13=0;
delay_ms(70);
gpiod_odr.b14=1;
delay_ms(70);
gpiod_odr.b14=0;
delay_ms(70);
gpiod_odr.b15=1;
delay_ms(70);
gpiod_odr.b15=0;
delay_ms(70);
}
void main() {
Lcd_Init();
bekle(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);
gpio_digital_input(&gpioa_base, _gpio_pinmask_0);
gpio_digital_input(&gpioc_base, _gpio_pinmask_0); //C portu
gpio_digital_output(&gpiod_odr, _gpio_pinmask_12);
gpio_digital_output(&gpiod_odr, _gpio_pinmask_13);
gpio_digital_output(&gpiod_odr, _gpio_pinmask_14);
gpio_digital_output(&gpiod_odr, _gpio_pinmask_15);
while (1){
Lcd_Cmd(_LCD_CLEAR);
while (gpioa_idr.b0 ==1 ){
calis();
}}}
//////////////////////////////////
Yani program olarak bu ve benzeri birkaç programlarım oldu ama iş güç meselesinden dolayı daha fazla da uğraşamadım kafa bir milyon
Uğraşıp öğrenmeye değer mi sorunuza verebileceğim en güzel cevap şu ki KESİNLİKLE DEĞER MİKRO C bence şu an en baba dil diyebilirim çünki mikro e firması bu dil ve komutlar ile pic,arm,atmega gibi bir dünya alamet işlemci ve denetleyicilere uygun yazılım tabanı ve kütüphaneleri oluşturmuş durumda yani bir dil öğreniyorsunuz bu dili ister pic programlamak ister arm programlamak ister atmel programlamakta kullanabiliyorsunuz NEDEN DEĞMESİN Kİ ?
Tek tavsiye edebileceğim şey mutlaka mikro c ile arm adlı kitaptan edinmeniz kitabın içerisinde gerçekten güzel olduğuna inandığım bilgiler var Sonra gerisi de sizin çaba ve çalışıp harcayacağınız zamana bağlı diyebilirim.