STM32F4 ile Random Number Generator uygulaması :
- Üretilen random sayılar 32 bit .
- Renkler ve dairelere ait kordinatlar üretilen random sayılar ile belirleniyor.
- Renk datası 24 bit
- X ekseni 320 piksel , Y ekseni 240 piksel
- 32 bit'lik random sayılar kullanılacak yere göre ölçülendiriliyor. Örneğin renk için random sayı 256'ya bölündüğünde 24 bitlik skala'ya alınmış oluyor.
- RNG amaçlı bir çalışma olduğundan sadece main.c dosyasını paylaşıyorum.
Bülent hoca'nın şu linkte yapmış olduğu RNG örneğini görsel hale getirdim sadece : https://www.picproje.org/index.php/topic,35896.0.html (https://www.picproje.org/index.php/topic,35896.0.html)
http://www.youtube.com/watch?v=LiQbAo0lsNQ# (http://www.youtube.com/watch?v=LiQbAo0lsNQ#)
main.c :
/*----------------------------------------------------------------------------
* Name: STM32F407XX Denemeleri
* Purpose: Temel Islemler - RNG - Random Number Generator
* Note(s):
*----------------------------------------------------------------------------
* Tarih : 06.01.2013
*----------------------------------------------------------------------------*/
#include "STM32F4xx.h"
#include "GPIO.h"
#include "SSD1963_Driver.h"
#include "delay_ms.h"
unsigned int Random[512];
unsigned int Kor_x[512];
unsigned int Kor_y[512];
//====== Timer 7 Interrupt Handler ============================================
void TIM7_IRQHandler()
{
volatile static char LedFlag = 0;
TIM7->SR = 0; // UIF: Update interrupt flag
LedFlag = (LedFlag+1)&1;
if (LedFlag==1) GPIOD->ODR |= (1<<13); // Ledler yansin
else GPIOD->ODR &=~ (1<<13); // Ledler sonsun
}
//====== Timer7 Init ==========================================================
void Timer7_Init(void)
{
// Timer7 clock 84 MHZ , Prescaler 42.000 -> Her 1/2000 sn 0.5 ms'de bir deger 1 artar.
RCC->APB1ENR |= (1UL << 5); // Enable Timer7 clock ( 84 MHz )
TIM7->CR1 = 0x0080; // 1: TIMx_ARR register is buffered
TIM7->PSC = 42000-1; // Prescaler : 42000
TIM7->ARR = 2000; // Auto-Reload : 2000
TIM7->DIER = 0x0001; // Update interrupt enabled.0;
NVIC->ISER[1] = (1<<55-32); // NVIC ISER 55 , TIM7
TIM7->CR1|=0x0001; // Counter Enable
}
//====== MAIN function ========================================================
int main (void)
{
unsigned short i;
GPIO_Init();
Initial_SSD1963();
Timer7_Init();
Ekran_Doldur(siyah);
Cizgi_Cek(75,10,180,0,1,beyaz);
text_yaz(75,1,"SSD1963 RNG Test - STM32F407VG",1,5,beyaz);
RCC->AHB2ENR |= (1<<6); // RNGEN: Random number generator clock enable
RNG->CR |= (1<<2); // RNGEN: Random number generator enable
for(i=0;i<512;i++) // 512 adet random sayi uretilsin
{
while (!(RNG->SR&1)); // kullanilabilir sayi olusumunu bekle
Random [ i ] = RNG->DR;
}
for(i=0;i<512;i++) // 512 adet random sayi uretilsin
{
while (!(RNG->SR&1)); // kullanilabilir sayi olusumunu bekle
Kor_x [ i ] = RNG->DR;
}
for(i=0;i<512;i++) // 512 adet random sayi uretilsin
{
while (!(RNG->SR&1)); // kullanilabilir sayi olusumunu bekle
Kor_y [ i ] = RNG->DR;
}
while(1) // Loop forever
{
text_yaz(75,110,"Picproje.org",3,20,beyaz);
delay_ms(1500);
for(i=0;i<512;i++)
{
delay_ms(2);
daire_olustur(Kor_x[i]/(4294967296/320),Kor_y[i]/(4294967296/240),21,Random[i]/256);
text_yaz(75,110,"Picproje.org",3,0,beyaz);
}
for(i=512;i>0;i--)
{
delay_ms(2);
daire_olustur(Kor_y[i]/(4294967296/320),Kor_x[i]/(4294967296/240),21,Random[i]/256);
}
for(i=0;i<512;i++)
{
delay_ms(1);
daire_olustur(Random[i]/(4294967296/320),Kor_x[i]/(4294967296/240),21,Kor_y[i]/256);
text_yaz(75,110,"Picproje.org",3,0,sari);
}
for(i=0;i<512;i++)
{
delay_ms(2);
Piksel_Koy_RNG(Kor_x[i]/(4294967296/320),Kor_y[i]/(4294967296/240),6,Random[i]/256);
text_yaz(75,110,"Picproje.org",3,0,sari);
}
for(i=512;i>0;i--)
{
delay_ms(2);
Piksel_Koy_RNG(Kor_y[i]/(4294967296/320),Kor_x[i]/(4294967296/240),6,Random[i]/256);
text_yaz(75,110,"Picproje.org",3,0,mavi);
}
for(i=0;i<512;i++)
{
delay_ms(2);
Piksel_Koy_RNG(Random[i]/(4294967296/320),Kor_x[i]/(4294967296/240),6,Kor_y[i]/256);
text_yaz(75,110,"Picproje.org",3,0,yesil);
}
}
}
Hocam tft ilgi çekiciymiş.Hikayesi nedir?
Hocam Merhaba
Geçenlerde bende SSD1963 çipi 480X272 Çözünürlüğe sahip bir Bir LCD satın almıştım. Finallerden dolayı daha üzerinde hiç uğraşamadım. Mümkünse SSD1963 Driver dosyanızı paylaşabilirmisiniz.
Alıntı yapılan: yldzelektronik - 07 Ocak 2013, 03:00:09
Hocam tft ilgi çekiciymiş.Hikayesi nedir?
Winstar WF57B - Özdisan
Özdisanda başka çeşitleri de var.
@Mucit23
Daha önce OptimusPrime isimli üye driver'ı paylaşmış , SSD1963'e ait , ben de oradan yararlandım. Bu kodları kullanabilirsiniz , kullanırken SSD1963 datasheet ve uygulama pdf'leri de açık olursa , üzerinde istediğiniz gibi değişiklik yapabilirsiniz.
Burası da çok yararlı :
http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963%20Eval%20Board%20Rev2A.htm (http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963%20Eval%20Board%20Rev2A.htm)
http://www.techtoys.com.hk/Components/SSD1963QL9/SSD1963QL9.htm (http://www.techtoys.com.hk/Components/SSD1963QL9/SSD1963QL9.htm)
Hocam Sanırım Buradaki başlıktan bahsediyorsunuz.
https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979 (https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979)
Kodları kullandığım işlemciye göre uygurmam gerekecek.
SSD1963 ile daha önce hiç uğraşmadım. Çok yabancıyım bu çipe.
Bendeki TFT dediğim gibi 480X272,
@OptimusPrime nın verdiği kodları biraz inceledim. .h dosyasında ekranın boyutunu belirleyen parametreler var.
LCD_VERTICAL_MAX 239
LCD_HORIZONTAL_MAX 319
Şeklinde Ekran Boyutunu değiştirmek için Bu iki parametre ile oynamak yeterlimidir?
Alıntı yapılan: Mucit23 - 07 Ocak 2013, 10:12:50
Hocam Sanırım Buradaki başlıktan bahsediyorsunuz.
https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979 (https://www.picproje.org/index.php/topic,37122.msg268979.html#msg268979)
Kodları kullandığım işlemciye göre uygurmam gerekecek.
SSD1963 ile daha önce hiç uğraşmadım. Çok yabancıyım bu çipe.
Bendeki TFT dediğim gibi 480X272,
@OptimusPrime nın verdiği kodları biraz inceledim. .h dosyasında ekranın boyutunu belirleyen parametreler var.
LCD_VERTICAL_MAX 239
LCD_HORIZONTAL_MAX 319
Şeklinde Ekran Boyutunu değiştirmek için Bu iki parametre ile oynamak yeterlimidir?
pardon linki yapıştırmayı unutmuşum.
SSD1963 Zor bir çip değil , dökümanlarınızı hazırlayıp başına oturduğunuzda çözülecektir ki örnek kodlar da var. Ayrıca çip 120 MHz'de çalıştığından STM32F4 ile bile çalışırken hiç bekleme yapmaya gerek kalmıyor. Bu da kolaylık sağlıyor.
Arkadaşın verdiği kodları doğrudan kullanmadım , oradaki akışa bakarak terkrar yazdım.
Doğru bir şekilde init işlemini yaptığınızda olay çözülür.
ssd1963ü 24bit nasıl sürdünüz?
Alıntı yapılan: memo333 - 07 Ocak 2013, 14:20:19
ssd1963ü 24bit nasıl sürdünüz?
Winstar WF57B TFT'lerin arayüzü 8 bit.
Datasheet 13. sayfada da SSD1963'ün arayüz seçenekleri belirtilmiş : http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf (http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf)
Bu durumda kullanılabilecek sadece tek bir format bulunuyor. 8 bit x 3.
SSD1963'ün , set_pixel_data_interface ( 0xF0 ) komutu ile bu ayar da yapılabiliyor. Datasheet : http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf (http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf)
8 bit'lerin son 2 bitleri de kullanılmıyor. Yani aslında 18bit renk , 24 bit formatta gönderiliyor.
6 bit renk çözünürlüğü yetiyormu?
Alıntı yapılan: Mucit23 - 07 Ocak 2013, 15:11:19
6 bit renk çözünürlüğü yetiyormu?
R , G ve B için 6'şar bit , toplam 18 bit. 262144 renk ediyor. Görüntüler renkler fena değil gibi. Tabi 24 bit ekran da deneyip karşılaştıramadım.
(http://img402.imageshack.us/img402/6636/garf.jpg)
Bu tip uygulamalarda soketler beni nedense ürkütüyor.Sizin çözümünüz nasıl oldu?
FFC konnektör genelde TFT satılan yerde bulunuyor. Denemek için ise küçük bir PCB ile DIP dişi konnektöre çevirmek yeterli. Yukardaki resimde ve videodaki küçük kahverengi PCB gibi..
Yada şu :
(http://www.newhavendisplay.com/images/NHD-FFC40-front.jpg)
stm için tft ekran almayı düşünüyorumda ne tür bişey almalıyım daha önce hiç tft kullanmadım ona göre bişeyler önerebilirmisiniz.
TFT alırken Piyasada bol örnek bol driver bulunanları almaya bak. Almakla iş bitmiyor çünkü.
Bana kalırsa SSD1289 lu 3.2" bir TFT uğraşmak için Yeterlidir.
bu ürün uygun gibi fiyatıda iyi alayım bundan birtane.
Alıntı yapılan: camby - 07 Ocak 2013, 14:57:26
Winstar WF57B TFT'lerin arayüzü 8 bit.
Datasheet 13. sayfada da SSD1963'ün arayüz seçenekleri belirtilmiş : http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf (http://www.winstar.com.tw/UserFiles/File/WF57BTIBCDC.pdf)
Bu durumda kullanılabilecek sadece tek bir format bulunuyor. 8 bit x 3.
SSD1963'ün , set_pixel_data_interface ( 0xF0 ) komutu ile bu ayar da yapılabiliyor. Datasheet : http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf (http://www.allshore.com/pdf/solomon_systech_ssd1963.pdf)
8 bit'lerin son 2 bitleri de kullanılmıyor. Yani aslında 18bit renk , 24 bit formatta gönderiliyor.
http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf (http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf)
burada sf 17de aynı tabloda 8*3 olarak 24 bit sürülebildiğini söylüyor.
SSD1963te bir ara kafamı karıştırmıştı bu konu. Bir eski datasheet var bir de yeni ama elinizdeki ssd1963 hangisi?
Psp 1000 lerin tftlerindeki kontrolcü nedir?Bilgisi olan var mı?
Data sı burda
http://www.sharpsme.com/webfm_send/1894 (http://www.sharpsme.com/webfm_send/1894)
yanlız bişey merak ediyorum.Bu tip ekranları sürmek için harici (spi,i2c,usb,usart vs) entegreler muhakkak mevcuttur ancak ne diye aramak gerek?
Alıntı yapılan: memo333 - 07 Ocak 2013, 16:24:20
http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf (http://www.techtoys.com.hk/Displays/SSD1963EvalRev2A/SSD1963_1.1.pdf)
burada sf 17de aynı tabloda 8*3 olarak 24 bit sürülebildiğini söylüyor.
SSD1963te bir ara kafamı karıştırmıştı bu konu. Bir eski datasheet var bir de yeni ama elinizdeki ssd1963 hangisi?
Evet ama dediğim gibi , 8 bit RGB 'lerin düşük değerlikli 2 bitleri kullanılmıyor.
Hocam kullandığınız LCD nin Dokunmatik paneli varmıydı?
yok maalesef , dokunmatiksiz versiyondu..
Özdisana Telefon açtım bana LCD için 85 Dolar fiyat verdi. Dokunmatik varmı diye sordum. Yok onu ayrı getirtmemiz gerekiyor dedi. Şimdi Acaba Özdisanın bana verdiği fiyat içerisine neler dahil? Bu lcd lerin üzerinde SSD1963 bulunan birde kontrol boardı olması lazım. Acaba fiyata o dahilmi? kafam karıştı açıkçası.
Nuray elektronik diye bir firmaya sordum. Onlarda 85 dolar fiyat verdi. Dokunmatiğede 51 dolar fiyat verdi. İkisi birlikte çok pahalı oluyor.
Hem dokunmatik, Hem de Kontrol kartını üzerinde bulunduran bir sürekli satın almada problem çıkarmayacak ortalama 5" civarında TFT nereden bulurum?
Aslında Çinde çok güzel TFT ler var
http://www.ebay.com/itm/5-inch-TFT-800-x-480-LCD-Display-Module-16M-colors-Touch-Panel-Screen-SSD1963-/181004141865?pt=LH_DefaultDomain_0&hash=item2a24b00529 (http://www.ebay.com/itm/5-inch-TFT-800-x-480-LCD-Display-Module-16M-colors-Touch-Panel-Screen-SSD1963-/181004141865?pt=LH_DefaultDomain_0&hash=item2a24b00529)
Mesela bu
Hobby amaçlı üzerinde çalışmak için uygun ama sürekli temin edilebilirliği yok..
Alıntı yapılan: Mucit23 - 30 Ocak 2013, 15:09:20
Özdisana Telefon açtım bana LCD için 85 Dolar fiyat verdi. Dokunmatik varmı diye sordum. Yok onu ayrı getirtmemiz gerekiyor dedi. Şimdi Acaba Özdisanın bana verdiği fiyat içerisine neler dahil? Bu lcd lerin üzerinde SSD1963 bulunan birde kontrol boardı olması lazım. Acaba fiyata o dahilmi? kafam karıştı açıkçası.
Mucit Hocam, videodaki tft ekranın fiyatıdır o. Ekranın arka kısmında kontrol kartı var ve kartta SSD1963 bulunuyor. Bu ekran da WF57B'nin dokunmatiksiz modeli. Modelin tam uzantısı kolayımda yok şuan.
Farklı bit arayüzleri , SSD1963'süz , farklı ekran boyutları ve dokunmatikli gibi çeşitlenmeler var modellerde.
Size verilen büyük ihtimal : 8bit ssd1963 5.7inc dokunmatik ekran yok.
Kitronix 3.5" TFT LCD Module With Touch Panel (K350QVG-V1-F/ FS-K350QVG-V2+konnektörü
40$
fakat minumum 5 adet olarak gönderebilirim.
isteyen olursa. elimdede sürekli mevcut hatta şu an 2000 adet var.
@Camby hocam;
text_yaz(75,1,"SSD1963 RNG Test - STM32F407VG",1,5,beyaz);
fonksiyonun iceriğini görebilirmiyiz.
Veya komple lcd nin driverini.
@Camby hocam;
http://www.aliexpress.com/item/7-inch-TFT-LCD-module-800x480-SSD1963-w-touchpad-PWM-arduino-AVR-STM32-ARM-16190/733449464.html (http://www.aliexpress.com/item/7-inch-TFT-LCD-module-800x480-SSD1963-w-touchpad-PWM-arduino-AVR-STM32-ARM-16190/733449464.html)
urunu aldım. ( Bugun geldi ).
Sizin Kullandığınız Ekranın driveri ni alabilirmiyim. Veya elinizde bu ekrana göre driveriniz varmı?
bu konuda yardımınız dokunabilirmi?
Teşekkürler.