Merhaba Arkadaşlar. Bu aralar Uğraştığım I2C eepromlarlar Resim Basma uygulamamı toparlayıp sizlere sunmak istiyorum. Aslında I2C eepromlar (24C16, 24C32, 24C64, 24C128) bu işte biraz yavaş kalıyorlar. Gerçekte görüntünün tamamının ekrana basılması tahminimce 300-400 ms Sürüyor. Resim Basılmasını göz görebiliyor. (Yani Birden Ekranda Belirmiyor).
Kullandığım İşlemci PIC18F452, 20Mhz de çalıştırıyorum. İşlemci Frekansını Yükseltmem bi sonuç Vermedi. 32 Ve 40 Mhz de denedim böyle olunca eepromdan okunan Resim Dataları bozulmaya başlıyor. Kısacası Sapıtıyor 😀
Eğer PC yazılım dillerinden birini bilseydim Resimleri Bin dosyası olarak kaydedip Direk Pickit2 İle eeproma yükleyebilirdim. Fakat Böyle bir imkanım olmadığı İçin FxDev ‘in de Tavsiyesi ile Bu işi De Pice yaptırdım. 😀
Toplamda 28 Tane Resim gösterdim GLCD de Resimleri 3 adet 24C64 ve 1 adette 24C32 ye yazdım. Eeprom Sayısı arttırılarak veya Daha yüksek Hafızalı eepromlar kullanılarak Dahada Fazla resim gösterilebilir. Fakat Eepromları Resim datalarıyla doldurmak için Resimleri 18F452 nin program hafızasına yüklemek gerekiyor. 18F452 ‘nin içine 28 Tane Resim sığdırabildim. Zaten işlemcinin Hafızasının doluluk oranı %99,16 😀 Ağzına kadar dolu..
Daha çok Resim istiyorsanız İlk Önce Eepromları programlamak için Daha yüksek Hafızalı Bir pic seçilebilir. Okumak için ise 16F877 bile yeter.
Ben ilk Başta 18F452 ye Eeproma yükleme yazılımını yükleyip, eepromları programlıyordum. Yükleme işlemi bitince 18452 ye okuma yazılımını yükleyip, eepromdan dataları okuyup GLCD ye postalıyordum 😀
Yükleme işlemi epeyce sürüyor. Kronometreyle ölçtüğümde yaklaşık 10dk da tüm resimleri yazmış oldu.
Devre şeması aşağıdaki gibidir
Resime bakarsanız 3 adet 24C64 ve 1 adette 24C32 kullanmışım. Eepromaların A0, A1, A2 Bacaklarını kullanarak Farklı farklı adresledim. Bu sayede tekbir Hattan tüm eepromalara veri yükleyip okuyabildim. Yine Resimlere Bakarsanız Eepromlara ait Yazma ve okuma adreslerini görebilirsiniz.
Yazma işlemi bu şekilde
Buda yazma işleminin bitmiş hali
Bunları Gerçekte çekmek isterdim ama fotoğraf makinamın makro özelliği berbat. Yazılar iç içe giriyor.
Resimleri Düzenlemek İçin FastLCD Programını kullandım. Bu program ile resimleri düzenleyip Bitmap olarak kaydediyorum. Sonra Pixelv1.2 programı ile Bu resim dosyalarını .inc dosyası haline getiriyorum. Yazılımda ise bu .inc dosyalarını programa dahil edip yazma sırsı geldiğinde sırasıyla dataları okuyup eeproma yazıyorum.
Eepromları programlamak için hazırladığım yazılım;
Device 18F452 Config_Start OSC = HS ; HS osc OSCS = OFF ; Disabled PWRT = On ; Enabled BOR = OFF ; Disabled WDT = OFF ; Disabled STVR = OFF ; Disabled LVP = OFF ; Disabled Debug = OFF ; Disabled Config_End Xtal 20 TRISA=%00000000 TRISB=%00000000 TRISC=%00000000 TRISD=%00000000 TRISE=%00000000 PORTA=0:PORTB=0 PORTC=0:PORTD=0 PORTE=0 PORTB.5=1 'GLCD RESET=1 All_Digital= TRUE 'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ LCD_DTPort = PORTD 'GLCD DATA PORTLARI PORTD'YE BAĞLI LCD_RSPin = PORTB.0 'GLCD RS PİNİ PORTB.0 BAĞLI LCD_ENPin = PORTB.2 'GLCD ENABLE PİNİ PORTB.2 BAĞLI LCD_RWPin = PORTB.1 'GLCD RW PİNİ PORTB.1 BAĞLI LCD_CS1Pin = PORTB.4 'GLCD CS1 PİNİ PORTB.4 BAĞLI LCD_CS2Pin = PORTB.3 'GLCD CS2 PİNİ PORTB.3 BAĞLI LCD_Type = Samsung 'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR Declare Internal_Font = On Declare Font_Addr = 0 Declare GLCD_STROBE_DELAY = 5 Declare Optimiser_Level 3 ;GLCD_EXTERNAL_PRINT = PPRINT Declare SCL_Pin = PORTC.3 Declare SDA_Pin = PORTC.4 Declare Slow_Bus On Symbol WRITE_LED=PORTB.7 Dim ADDR As Word Dim ADRS As Word Dim YPOS As Byte Dim XPOS As Byte Dim CHAR As Byte Dim KONT As Byte Dim RESIM As Byte Cls Print At 1,1,"LUTFEN BEKLEYiNiZ" Print At 2,1,"KAYDEDiliYOR..." DelayMS 100 BASLA:WRITE_LED=1 KONT=$A0:RESIM=1 For ADDR = 0 To 1023 CHAR = CRead RESIM1+ADDR ADRS=ADDR:GoSub I2C_YAZ Next RESIM=2 For ADDR=0 To 1023 CHAR = CRead RESIM2+ADDR ADRS=1024+ADDR:GoSub I2C_YAZ Next RESIM=3 For ADDR = 0 To 1023 CHAR = CRead RESIM3+ADDR ADRS=2048+ADDR:GoSub I2C_YAZ Next RESIM=4 For ADDR = 0 To 1023 CHAR = CRead RESIM4+ADDR ADRS=3072+ADDR:GoSub I2C_YAZ Next RESIM=5 For ADDR = 0 To 1023 CHAR = CRead RESIM5+ADDR ADRS=4096+ADDR:GoSub I2C_YAZ Next RESIM=6 For ADDR = 0 To 1023 CHAR = CRead RESIM6+ADDR ADRS=5120+ADDR:GoSub I2C_YAZ Next RESIM=7 For ADDR = 0 To 1023 CHAR = CRead RESIM7+ADDR ADRS=6144+ADDR:GoSub I2C_YAZ Next RESIM=8 For ADDR = 0 To 1023 CHAR = CRead RESIM8+ADDR ADRS=7168+ADDR:GoSub I2C_YAZ Next KONT=$A2:RESIM=9 For ADDR = 0 To 1023 CHAR = CRead RESIM9+ADDR ADRS=0+ADDR:GoSub I2C_YAZ Next RESIM=10 For ADDR = 0 To 1023 CHAR = CRead RESIM10+ADDR ADRS=1024+ADDR:GoSub I2C_YAZ Next RESIM=11 For ADDR = 0 To 1023 CHAR = CRead RESIM11+ADDR ADRS=2048+ADDR:GoSub I2C_YAZ Next RESIM=12 For ADDR = 0 To 1023 CHAR = CRead RESIM12+ADDR ADRS=3072+ADDR:GoSub I2C_YAZ Next RESIM=13 For ADDR = 0 To 1023 CHAR = CRead RESIM13+ADDR ADRS=4096+ADDR:GoSub I2C_YAZ Next RESIM=14 For ADDR = 0 To 1023 CHAR = CRead RESIM14+ADDR ADRS=5120+ADDR:GoSub I2C_YAZ Next RESIM=15 For ADDR = 0 To 1023 CHAR = CRead RESIM15+ADDR ADRS=6144+ADDR:GoSub I2C_YAZ Next RESIM=16 For ADDR = 0 To 1023 CHAR = CRead RESIM16+ADDR ADRS=7168+ADDR:GoSub I2C_YAZ Next KONT=$A4:RESIM=17 For ADDR = 0 To 1023 CHAR = CRead RESIM17+ADDR ADRS=0+ADDR:GoSub I2C_YAZ Next RESIM=18 For ADDR = 0 To 1023 CHAR = CRead RESIM18+ADDR ADRS=1024+ADDR:GoSub I2C_YAZ Next RESIM=19 For ADDR = 0 To 1023 CHAR = CRead RESIM19+ADDR ADRS=2048+ADDR:GoSub I2C_YAZ Next RESIM=20 For ADDR = 0 To 1023 CHAR = CRead RESIM20+ADDR ADRS=3072+ADDR:GoSub I2C_YAZ Next RESIM=21 For ADDR = 0 To 1023 CHAR = CRead RESIM21+ADDR ADRS=4096+ADDR:GoSub I2C_YAZ Next RESIM=22 For ADDR = 0 To 1023 CHAR = CRead RESIM22+ADDR ADRS=5120+ADDR:GoSub I2C_YAZ Next RESIM=23 For ADDR = 0 To 1023 CHAR = CRead RESIM23+ADDR ADRS=6144+ADDR:GoSub I2C_YAZ Next RESIM=24 For ADDR = 0 To 1023 CHAR = CRead RESIM24+ADDR ADRS=7168+ADDR:GoSub I2C_YAZ Next KONT=$A6:RESIM=25 For ADDR = 0 To 1023 CHAR = CRead RESIM25+ADDR ADRS=0+ADDR:GoSub I2C_YAZ Next RESIM=26 For ADDR = 0 To 1023 CHAR = CRead RESIM26+ADDR ADRS=1024+ADDR:GoSub I2C_YAZ Next RESIM=27 For ADDR = 0 To 1023 CHAR = CRead RESIM27+ADDR ADRS=2048+ADDR:GoSub I2C_YAZ Next RESIM=28 For ADDR = 0 To 1023 CHAR = CRead RESIM28+ADDR ADRS=3072+ADDR:GoSub I2C_YAZ Next Cls Print At 3,4,"YAZMA iSLEMi" Print At 4,3,"TAMAMLANMISTIR.." WRITE_LED=0 Stop I2C_YAZ: Print At 3,1,"DATA $",Hex2 CHAR Print At 4,1,"ADRES = ",Dec4 ADRS Print At 5,1,Dec RESIM,". RESIM YAZILIYOR" Print At 6,1,"DEVICE ADRES = $",Hex2 KONT BusOut KONT,ADRS,[CHAR]:DelayMS 10 Return Include "RESIM1.inc" Include "RESIM2.inc" Include "RESIM3.inc" Include "RESIM4.inc" Include "RESIM5.inc" Include "RESIM6.inc" Include "RESIM7.inc" Include "RESIM8.inc" Include "RESIM9.inc" Include "RESIM10.inc" Include "RESIM11.inc" Include "RESIM12.inc" Include "RESIM13.inc" Include "RESIM14.inc" Include "RESIM15.inc" Include "RESIM16.inc" Include "RESIM17.inc" Include "RESIM18.inc" Include "RESIM19.inc" Include "RESIM20.inc" Include "RESIM21.inc" Include "RESIM22.inc" Include "RESIM23.inc" Include "RESIM24.inc" Include "RESIM25.inc" Include "RESIM26.inc" Include "RESIM27.inc" Include "RESIM28.inc" Include "FONT.inc" End
Eepromaları okuma işlemi ise benzer bir şekilde oluyor. Her bir eeprom için her bir resmin bir başlangıç adresi vardır. Bir resim 1023 byten tan oluştuğu için okumalar Başlangıc adresi + resim data adresi şeklinde oluyor.
Eeprom okuma programı ise budur.
'**************************************************************** '* Name : UNTITLED.BAS * '* Author : FERHAT YOL * '* Notice : Copyright (c) 2011 KULUÇKA KONTROL CİHAZI * '* : All Rights Reserved * '* Date : 20.11.2011 * '* Version : 1.0 * '* Notes : 4 adet eeprom kullanılmıştır.(3x26C64,1x24C32) * '* : Toplamda 28adet resim ekranda gösteriliyor. Eeprom* ' : Sayısı arttırılarak Resim sayısı arttırılabilir. * ' : Resimler 4 farklı efektle ekranda gösterilir * '**************************************************************** Device 18F452 Config_Start OSC = HS ; HS osc OSCS = OFF ; Disabled PWRT = On ; Enabled BOR = OFF ; Disabled WDT = OFF ; Disabled STVR = OFF ; Disabled LVP = OFF ; Disabled Debug = OFF ; Disabled Config_End Xtal 20 TRISA=%00000000 TRISB=%00000000 TRISC=%00000000 TRISD=%00000000 TRISE=%00000000 PORTA=0:PORTB=0 PORTC=0:PORTD=0 PORTE=0 PORTB.5=1 'GLCD RESET=1 All_Digital= TRUE 'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ LCD_DTPort = PORTD 'GLCD DATA PORTLARI PORTD'YE BAĞLI LCD_RSPin = PORTB.0 'GLCD RS PİNİ PORTB.0 BAĞLI LCD_ENPin = PORTB.2 'GLCD ENABLE PİNİ PORTB.2 BAĞLI LCD_RWPin = PORTB.1 'GLCD RW PİNİ PORTB.1 BAĞLI LCD_CS1Pin = PORTB.4 'GLCD CS1 PİNİ PORTB.4 BAĞLI LCD_CS2Pin = PORTB.3 'GLCD CS2 PİNİ PORTB.3 BAĞLI LCD_Type = Samsung 'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR Declare Internal_Font = On Declare Font_Addr = 0 Declare GLCD_STROBE_DELAY = 5 ;GLCD_EXTERNAL_PRINT = PPRINT Declare SCL_Pin = PORTC.3 Declare SDA_Pin = PORTC.4 Declare Slow_Bus On Declare Optimiser_Level 2 Symbol READ_LED=PORTB.6 Dim ADDR As Word Dim ADRS As Word Dim YPOS As Byte Dim XPOS As Byte Dim CHAR As Byte Dim KONT As Byte Dim X As Byte DelayMS 200 Cls READ_LED=1 ;Okuma yapılıyor. BASLA: KONT=$A1 ;1. Eeprom seçildi(24C64) For X=0 To 7 Select Case X Case 0 ADRS=0:GoSub YATAY_D ;1.Resmin Başlangıc adresi $0000h Case 1 ADRS=1024:GoSub YATAY_T ;2.Resmin Başlangıc adresi $0400h Case 2 ADRS=2048:GoSub DIKEY_T ;3.Resmin Başlangıc adresi $0800h Case 3 ADRS=3072:GoSub DIKEY_D ;4.Resmin Başlangıc adresi $0C00h Case 4 ADRS=4096:GoSub YATAY_T ;5.Resmin Başlangıc adresi $1000h Case 5 ADRS=5120:GoSub YATAY_D ;6.Resmin Başlangıc adresi $1400h Case 6 ADRS=6144:GoSub DIKEY_D ;7.Resmin Başlangıc adresi $1800h Case 7 ADRS=7168:GoSub DIKEY_T ;8.Resmin Başlangıc adresi $1C00h EndSelect DelayMS 1800 ;Resım arası bekleme süresi Next KONT=$A3 ;ikinci eprom seçildi(24C64) For X=0 To 7 Select Case X Case 0 ADRS=0:GoSub DIKEY_D ;1.Resmin Başlangıc adresi $0000h Case 1 ADRS=1024:GoSub YATAY_T ;2.Resmin Başlangıc adresi $0400h Case 2 ADRS=2048:GoSub DIKEY_T ;3.Resmin Başlangıc adresi $0800h Case 3 ADRS=3072:GoSub YATAY_D ;4.Resmin Başlangıc adresi $0C00h Case 4 ADRS=4096:GoSub YATAY_T ;5.Resmin Başlangıc adresi $1000h Case 5 ADRS=5120:GoSub DIKEY_D ;6.Resmin Başlangıc adresi $1400h Case 6 ADRS=6144:GoSub YATAY_D ;7.Resmin Başlangıc adresi $1800h Case 7 ADRS=7168:GoSub DIKEY_T ;8.Resmin Başlangıc adresi $1C00h EndSelect DelayMS 1800 ;Resım arası bekleme süresi Next KONT=$A5 ;3. Eeprom seçildi(24C64) For X=0 To 7 Select Case X Case 0 ADRS=0:GoSub DIKEY_D ;1.Resmin Başlangıc adresi $0000h Case 1 ADRS=1024:GoSub YATAY_D ;2.Resmin Başlangıc adresi $0400h Case 2 ADRS=2048:GoSub DIKEY_D ;3.Resmin Başlangıc adresi $0800h Case 3 ADRS=3072:GoSub YATAY_T ;4.Resmin Başlangıc adresi $0C00h Case 4 ADRS=4096:GoSub DIKEY_D ;5.Resmin Başlangıc adresi $1000h Case 5 ADRS=5120:GoSub DIKEY_T ;6.Resmin Başlangıc adresi $1400h Case 6 ADRS=6144:GoSub YATAY_D ;7.Resmin Başlangıc adresi $1800h Case 7 ADRS=7168:GoSub DIKEY_T ;8.Resmin Başlangıc adresi $1C00h EndSelect DelayMS 1800 ;Resım arası bekleme süresi Next KONT=$A7 ;4.Eeprom seçildi(24C32) For X=0 To 3 Select Case X Case 0 ADRS=0:GoSub YATAY_T ;1.Resmin Başlangıc adresi $0000h Case 1 ADRS=1024:GoSub YATAY_D ;2.Resmin Başlangıc adresi $0400h Case 2 ADRS=2048:GoSub DIKEY_T ;3.Resmin Başlangıc adresi $0800h Case 3 ADRS=3072:GoSub YATAY_T ;4.Resmin Başlangıc adresi $0C00h EndSelect DelayMS 1800 ;Resım arası bekleme süresi Next GoTo BASLA YATAY_D: ; Yukarıdan aşağıya doğru döşe For YPOS = 0 To 7 For XPOS = 0 To 127 ADDR = (Ypos*128)+XPOS ADDR = ADRS + ADDR GoSub I2C_OKU LCDWrite YPOS,XPOS,[CHAR] Next Next Return YATAY_T: ; Aşağıdan yukarıya doğru döşe For YPOS = 7 To 0 Step - 1 For XPOS = 0 To 127 ADDR = (Ypos*128)+XPOS ADDR = ADRS + ADDR GoSub I2C_OKU LCDWrite YPOS,XPOS,[CHAR] Next Next Return DIKEY_D: ; Soldan Sağa doğru döşe For XPOS = 0 To 127 For YPOS = 0 To 7 ADDR = (Ypos*128)+XPOS ADDR = ADRS + ADDR GoSub I2C_OKU LCDWrite YPOS,XPOS,[CHAR] Next Next Return DIKEY_T: ;Sağdan sola doğru Döşe For XPOS = 127 To 0 Step - 1 For YPOS = 0 To 7 ADDR = (Ypos*128)+XPOS ADDR = ADRS + ADDR GoSub I2C_OKU LCDWrite YPOS,XPOS,[CHAR] Next Next Return I2C_OKU: CHAR = BusIn KONT,ADDR ;Eeprom oku Return End
Aslında menü uygulamaları için eeprom un yavaş çalışması sorun olabilir ama ben burada bu sorundan faydalandım biraz. Resimleri birkaç efektlerle basıyorum. (Sağdan sola, Soldan sağa, Yukarıdan aşağı gibi). Resim geçişleri bu şekilde oluyor.
Seri birkaç tane eeprom olduğu için eeprom devresini board üzerine kurup deney seti ile header kablosu üzerinden bağlantıyı yaptım.
Artık Bu tip eepromlarla işim bitti Daha yüksek hızlı eepromlar alıp birkaç deneme daha yapacağım 🙂
Şifre-Pass: 320volt.com
Yayım tarihi: 2011/11/21 Etiketler: eeprom bitmap, fast lcd, fastlcd, GLCD, glcd bitmap, grafik lcd, i2c eeprom, lcd resim basma, microchip pic projeleri, PIC18F452 örnekleri
Görüntünün yavaş yüklenmesi sorunu frame-buffer yöntemi ile çözülebiliyor.Ancak PIC içinde programsal multithread yerleştirilmesi gerekli…
Hocam anlayacağım şekilde anlatabilrmisiniz. Demek istediğiniz şey okunana datayı önceden ram’e yerleştirip ram üzerindenmi ekrana basmak?
Öncelikle 16f877 RAM’i bu iş için pek elverişli değil.
Ama 18f serisi yeter gibi duruyor. Sorun işlemci hızı değil RAM miktarı.
Önce çoklu iş parçacığı (multithread) yöntemi programa entegre edilmil olmalı. Yani bilgisayarlardaki işlem yönetimi sistemi PIC’e uygulanacak.Bunun için farklı makaleler var internette.( PIC Multithreading). Frame-Buffer :
[ C Dili ] 128×64 bytelık bir dizi oluşturulur.PIC saniyede eş aralıklı 30 kez bu dizinin değerlerini ekrana basar.
Arada boş kalan sürelerde de PIC, EEPROM dan veriyi okur ve diziyi günceller.Hem okuma konusunda yavaşlama olmaz.Hemde PIC ekran için gereğinden fazla zaman ayırmaz.Yalnız bu anlattıklarım CCS C için geçerli…Basic dilinde nasıl olur bilmiyorum.Ayrıca anlattığım sistem günümüz pc işletim sistemlerinde aynen kullanılıyor.
Hocam şöyle bir durum var fakat. Sadece resim göstermek için hazırlanan bir sistem olsa dediğiniz gibi olabilir. Ama ben bunu bir sisteme gömeceğim. Menü var kısacası. Her menüde bu resimler gösteriliyor. resimler(menüler) arası geçiş butonlarla oluyor. Menüde Resim geçişleri picin program hafızasındayken bu işlem çok hızlı bir şekilde gerçekleşiyor. Resim Ekranda direk beliriyor. Videodaki gibi bir gecikme olmuyor.
Menüde 7-8 seçenek var ve her seferinde ekrana yeni bir resim basılıyor. Sizin dediğiniz gibi olsa Her seferinde dataları ram’e yükleyip oradan LCD ye basılabilir. Ama zaten eepromdan datalar rame yüklenene kadar bir gecikme yaşanacak. E birde ramden glcd ye basılacak. Bu sefer 2. bir iş olmuş oluyor. Ha eğer menüye girdiğimde tüm resimleri ram’e yükleyebilseydim dediğiniz gibi olurdu. Fakat o kadar rami hiçbir MCU da göremedim olmazda zaten. Onun yerine Paralel bir eeprom alınıp hız sorunu çözülür. Fakat kullandığım mcu da paralel eeproma ayırabileceğim fazla bir I/O yok malesef. Yukarıda Bahsettiğim menülü sistemin birde alt menüleri var tabi. Oradada birçok resim göstermek gerekiyor.Şimdilik daha hızlı ramlerle denemeyi düşünüyorum. 23A256,24C512,25A512 gibi eepromlardan satın aldım sayılır. Gelince Denemelerime devam edeceğim.
Hocam Sizin saniyede 30 kez dizi değişkeninin değerini ekrana basma işini anlamadım. Resim hareket etmiyor. Dolayısıyla resim dataları sabit. GLCD ye gönderilen datalar (Görüntü) kendi kendine silinmediğine göre neden ard arda glcd deki görüntü yenileniyor. 1 kez basılıp bırakılsa yetmez mi?
Aslında siz birazda sanırım Rtosdan Bahsediyorsunuz. Tamda aslında Rtos uygulanabilecek bir sistem. Fakat Ne C bilgim var nede teori dışında rtos hakkında bilgim var.
23A256,24C512,25A512 Bu elemanlara eeprom diyecektim. Yanlış anlamayın.
İşte dediğim gibi o hızlı çalışan sistemlerde de multithread yöntemi kullanıyor.Ekran yönetimi de framebuffer benzeri kod sistemleri sağlar.Ayrıca eeprom yerine çok daha hızlı ve veri saklamak için daha uygundur.
Ayrıca evet bahsettiğim RTOS… Dizi olayı da sadece C de var…Bu yüzden C tercihimdir…
Ayrıca eeprom yerine “flash” çok daha hızlı ve veri saklamak için daha uygundur.
Hocam C de Rtos ve MutiThread veya mMltiTasking gibi çoklu işlemler sıklıkla kullanılmaya başladı. Ben bu tür bi iş paylaşımını protonada rahatlıkla uyarlayabileceğimi düşünüyorum. Siz yeterki bana aklınızda bu tür GLCD ye resim basmak için nasıl bir sistem yada iş bölümü paylaşımı düşünüyorsunuz. Bana onu söyleyin. İş paylaşımı yapılabilir. Gelen datayı ramde bir bufferede yerleştirebilirim. Fakat iş bölümünü nasıl yapacağım ? Her bir iş parçacığı için gereken süreyi nasıl hesaplayacağım? İş sırasını nasıl belirleyeceğim? Bu tür soruların cevabını arıyorum.
Gerçekten C hakkında bir bilgim yok ama Yabancı forumlarda protonun kendi sitesinde Rtos hakkında kitap yapılacak düzeyde bilgiler anlatılmış. Doğal olarak hepsi ing. Bana bu tür konularda yardımcı olursanız bu işi rahatlıkla başarabileceğimi düşünüyorum.
Hocam birde flash hafızalardan bahsetmişsiniz. Bu konu hakkında ayrıntılı bilgi verebilirmisiniz. Ben eeprom yerine ufak hafızalı bir Sd kart düşünmüştüm.
E-posta adresini verirsen bu konuyu daha detaylı anlatabilirim.Buradan biraz zor oluyor.
Tabi hocam Buyrun
[email protected]
buna benzer bir uygulama GLCD yerine ledlerle ekran olusturularak yapılabilir mi ??
Zor birşey değil. 128X64 bir ekran yaptıktan sonra resmi ekrana basmak kolay olur.
hocam bununla ilgili daha başka neler yapabilirsiniz
Ne gibi mesela?
hocam bu yaptıgınız lcdyi ünide proje olarak aldım hayırlı olsun takılırsam umarım size ulaşabilirim 🙂
Hello,
I don’t know if you can help me with that but a i have queation about the number of bytes when writing to the i2c 24c…
Every picture is saved from 0 to 1023 , how do you come on the number 1023 is there a rule for that?
Best regards Pascal.
hocam merhaba okul projem varda bana yardımcı olabilir misiniz acaba bu kodların ccs c programında nasıl yazılacağını öğrenmek istiyorum veya belli bi ücret karşılığında yardımcı olabilir misiniz ?