Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

GLCD ve F4

Başlatan muhittin_kaplan, 09 Haziran 2014, 02:13:49

muhittin_kaplan

#30

kantirici

@muhittin_kaplan hocam kütüphanenin port işlemleri ile ilgili biraz bilgi verebilir misiniz?

muhittin_kaplan

Yayınlayacağım hocam

kantirici


muhittin_kaplan

http://www.4shared.com/rar/IjGgPZGXce/u8_online.html

hocam GPIO ayarlarını u8g_arm.h dosyasından yapıyorsunuz. Proje Bu Haliyle Discovery kit te çalışıyor. Ben CoIDE+GCC kullandığım için KEIL ile derlenebilir hale getirmeniz gerekebilir.

muhittin_kaplan

kendi optimizasyonumu kendim yapayım dedim
daha önce LTO (linker time optimizasyon) ve OS seviyesi op. seçiliydi. Bunun sebebi Font Dosyasının yoğunluğuydu, kendim sildim gerekli olanları bıraktım. Daha sonra NO OPtimizasyon u seçtim ve LTO yu kaldırdım. Program Çalışmadı :(

Optimizasyonu değiştirdin O1 yaptım düzensiz çalıştı neden olabililir ?
LTO yu kaldırdığımda da Problemli Çalışıyor.

newpronik

muhittim hocam merhaba kodu paylaştığınız için çok teşekkür ederim. 3 gündür u8glib stm32f0 ve coocox ide ile uğraşıyorum.

microc for arm'da kendi kütüphanesi ile stm32f407 de grafik lcd çalıştırmak çok kolay ancak keil ve coocoxta hiç başaramadım. Arduinoda zaten mükemmel kütüphane önce sormak istediğim

ben sizin kodu derliyip atıyorum ekrana görüntü gelmiyor. Acaba bu u8g_arm.h dosyasındaki A0 grafik lcd'nin RS bağlantısı mı oluyor. D0-D7 tamam R/W E RST CS1 CS2 tüm ayarlar doğru

microc ve kendi kütüphanesiyle ekrana veri yazabiliyorum ancak coocox'ta aynı pin ayarlarını yaparak ekrana veri yazamıyorum.

#define	 LCD_A0						GPIO_Pin_8
#define	 LCD_A0_PORT		GPIOE
	 
#define	 LCD_E	 					GPIO_Pin_10
#define	 LCD_E_PORT	  		GPIOE
	 
#define	 LCD_RW						GPIO_Pin_9
#define	 LCD_RW_PORT    	GPIOE
	 
#define	 LCD_RESET					GPIO_Pin_13
#define	 LCD_RESET_PORT 	GPIOE
	 
#define	 LCD_CS1					GPIO_Pin_12
#define	 LCD_CS1_PORT		GPIOE

#define	 LCD_CS2					GPIO_Pin_11
#define	 LCD_CS2_PORT		GPIOE

#define	 LCD_8BIT_PORT		GPIOE
#define	 LCD_BIT_START			0

/////////////////////////////////////////////////////

#define	 LCD_BL						GPIO_Pin_8
#define	 LCD_BL_PORT		 	GPIOA

#define	 LCD_VCC					GPIO_Pin_10
#define	 LCD_VCC_PORT			GPIOA

#define	 HC164_CLK				GPIO_Pin_1
#define	 HC164_CLK_PORT		GPIOC

#define	 HC164_DATA				GPIO_Pin_0
#define	 HC164_DATA_PORT	GPIOC



LCD_BL         
LCD_VCC         
HC164_CLK   
HC164_DATA            

bu bağlantıların amacı nedir acaba bunları micro c de girmiyorum sadece ilk bölümdeki pinleri setleyip (A0 -> RS) çalışıyor.

yardımcı olabilirsen çok sevinirim.                        

muhittin_kaplan

Üstad Merhaba, Nezamandır bamıyordum, iyi oldu
BL backlight yani bu pinle lcd nin ışığını açıp kapatabiliyorsunuz
VCC de açıp kapatmak için 164 ler ise kullanılmıyordu diye hatırlıyorum. ama şu Güç kaynağı projesine bir bakayım.

newpronik

peki E portunun 8 numaralı pine bağladığımız LCD_A0 grafik lcd nin RS pini mi oluyor.

muhittin_kaplan

Projeyi buldum içeriğine not düşmüşüm

// Lcd Pinlerinin Set/Reset Tanimlamalari
#define	 LCD_A0						GPIO_Pin_8  //RESET
#define	 LCD_A0_PORT		GPIOD
	 
#define	 LCD_E	 					GPIO_Pin_10 //
#define	 LCD_E_PORT	  		GPIOD
	 
#define	 LCD_RW						GPIO_Pin_9
#define	 LCD_RW_PORT    	GPIOD
	 
#define	 LCD_RESET					GPIO_Pin_13  //RS
#define	 LCD_RESET_PORT 	GPIOD
	 
#define	 LCD_CS1					GPIO_Pin_12
#define	 LCD_CS1_PORT		GPIOD

#define	 LCD_CS2					GPIO_Pin_11
#define	 LCD_CS2_PORT		GPIOD

#define	 LCD_8BIT_PORT		GPIOE
#define	 LCD_BIT_START			0

newpronik

yine olmadı :( size ulaşabilmem için mail adresinizi alabilir miyim.

newpronik

#41
mikroc pro for arm'da kendi glcd kütüphanesiyle derleyip çalıştırdığımda ekrana veri yazabiliyorum. Bacak bağlantılarımda problemim yok.

Mikroc gpio pin setleri

unsigned long GLCD_DataPort_Input  at GPIOE_IDR;        // Grafik LCD data pinleri
unsigned long GLCD_DataPort_Output at GPIOE_ODR;    // 0.-7. bitlere bağlanıyor.

sbit GLCD_CS2           at GPIOE_ODR.B12;
sbit GLCD_CS1           at GPIOE_ODR.B11;
sbit GLCD_RS             at GPIOE_ODR.B8;
sbit GLCD_RW            at GPIOE_ODR.B9;
sbit GLCD_EN             at GPIOE_ODR.B10;
sbit GLCD_RST           at GPIOE_ODR.B13;


bu şekilde kendi kütüphanesiyle çalışıyor ancak mikroc hem sınır var hemde kütüphaneyi sevmedim u8glibin ekran yenileme özelliği çok güzel mikroc'de büyük bir font eklenirse sil yaz durumlarında çok atlama oluyor frame aralarında hoş gözükmüyor.

coocox ide gpio pin setleri

#define	 LCD_A0						GPIO_Pin_13 // Reset
#define	 LCD_A0_PORT		GPIOE
	 
#define	 LCD_E	 					GPIO_Pin_10 // EN
#define	 LCD_E_PORT	  		GPIOE
	 
#define	 LCD_RW						GPIO_Pin_9 // RW
#define	 LCD_RW_PORT    	GPIOE
	 
#define	 LCD_RESET					GPIO_Pin_8 // RS
#define	 LCD_RESET_PORT 	GPIOE
	 
#define	 LCD_CS1					GPIO_Pin_12 // CS1
#define	 LCD_CS1_PORT		GPIOE

#define	 LCD_CS2					GPIO_Pin_11 // CS2
#define	 LCD_CS2_PORT		GPIOE

#define	 LCD_8BIT_PORT		GPIOE   // [D0,D7]
#define	 LCD_BIT_START			0



bu şekilde aynen ayarlıyorum ancak ekrana hiçbir görüntü gelmiyor. Verdiğiniz kodlarda sadece bacakları değiştirdim birde main fonksiyonunda d portunu kullanmadığım için devreden çıkardım.

/* GPIO clock Configuration */
  	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);

  	/* GPIO Pin Configuration */
  	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All; // GLCD port out yapiliyor
  	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  	GPIO_Init(GPIOD, &GPIO_InitStructure);
  	GPIO_Init(GPIOE, &GPIO_InitStructure);

		u8g_InitComFn(&u8g, &u8g_dev_ks0108_128x64_fast, u8g_com_sw_spi_fn);




kullandığım grafik lcd'nin bacak bağlantıları

1 GND
2 VCC
3 pot orta bacak
4 RS
5 R/W
6 E
7 DB0
8 DB1
9 DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 CS1
16 CS2
17 RST
18 Vee (Pot negative)
19 LEDA
20 LEDK



neyi yanlış yapıyorum bir türlü anlamadım.

muhittin_kaplan

üstad  derlenmiş dosya vardı onu deneyiniz, ama akşam bakayım