Picc18 hız sorunu asm çözüm arıyorum.

Başlatan emrez, 13 Nisan 2011, 20:50:02

airforce

Alıntı yapılan: FxDev - 13 Nisan 2011, 23:58:42
Elbete düzelmedi. Chrome'da var bu sorun. Cep telefonuyla yazdığımda olmuyor. Anlamadım ben de nedenini.
Sağolsun bu sayede bilgisayarım jet gibi oldu o ayrı..

Fxdev e chrome kullanıcısından saygılar sevgiler.Yazdıklarınız üzerine şuan deniyorum alıntıyı.Bende kullanıyorum chrome her hangi bir sorunla karşılaşmadım.

z

@emrez

Alternatif C yazimlari ardindan sonuc ne oldu?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

emrez

selam arkadaşlar, rem sorununu ses için yaptığım örneklemeleri ufak bir hile ile aynı tonda ancak çok daha az data ile ve  const unsigned char x[128] yerine  const rom kullanarak biraz yer kazandım şimdi spi için kurulum yapıp çok daha hızlı yazma yapacağım, asm biraz karmaşık yada makro yazmak kolay değil, kısa kodlar yazdım ancak yinede pin üzerinden yazılım ile spi yavaş oluyor, 7 bit kaydırmayı asm ile ilk ve son 4 biti yer değiştir gibi kodlar kullanatak yaptım 10 uslara kadar en iyi gelebildim, yazdığım veri gönderdiğim ile tutmuyordu bir yerde hata vardı sanırım, sonra bir kaç değişiklik yaptım derleyici hata verdi asm tarafını sildim, öyleki pin bcf PORTB,3  bsf PORTB,3 yapınca bile bu kısımları çalıştırmadı bcf 0xf81, 0x3 olarakta denedim kod uzayınca alt kısımları yapmadı pin kontrolümü istiyor anlamadım ancak yazılımın en az ve öz olanı asm bunu öğrenmek lazım. bugün spi deneyeceğim sonucu paylaşacağım arkadaşlar teşekkür ederim.

emrez

pic18f4620 yi HSPLL ile 10*4 40 mhz çalıştırıyordum acaba deyip önce 12 mhz sonra 16 en son 20 mhz kristal takıp denedim sonu. hayret verici pic 80 mhz, pin testleri bariz hız artışını onaylar durumda rev7 çipler, tabi bu hız ile hata oranı ve stabil çalışma ömrü bilinmez buna göre tasarlanmamış olabilir malum kataloğunda 40 mhz yazıyor, ram için hack yöntemi ararken buldum, 18 serileri genelde 4 kb ram oluyormuş ancak bu daha az ram hafızasına sahip picler için uygulanabilir durum anladığım site fransızcaydı, http://atariamiga.free.fr/hackpic.php
denenebilir.

piedos

#19
Alıntı yapılan: emrez - 14 Nisan 2011, 09:27:50
pic18f4620 yi HSPLL ile 10*4 40 mhz çalıştırıyordum acaba deyip önce 12 mhz sonra 16 en son 20 mhz kristal takıp denedim sonu. hayret verici pic 80 mhz, pin testleri bariz hız artışını onaylar durumda rev7 çipler, tabi bu hız ile hata oranı ve stabil çalışma ömrü bilinmez buna göre tasarlanmamış olabilir malum kataloğunda 40 mhz yazıyor, ram için hack yöntemi ararken buldum, 18 serileri genelde 4 kb ram oluyormuş ancak bu daha az ram hafızasına sahip picler için uygulanabilir durum anladığım site fransızcaydı, http://atariamiga.free.fr/hackpic.php
denenebilir.

hiz artisi bircok pic18 de mevcut, uzun donem performansi bilinmemekle birlikte...

benim elde ettigim hizlar:

PIC18F4520: 68MHz
PIC18F4620: 63MHz

bu arada PIC18F4620 ve PIC18F4520 ye 20MHz kristal baglar ve HSPLL secerseniz hiziniz 80MHz değil 63 ve 68 MHz oluyor!
tabi her chipin davranisi da farkli olabilir

Einstein: "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."

emrez

spi ile 4,8 us işlem tamamdır. teşekkürler arkadaşlar. şimdi bol miktarda remim var ;)

void initS_SPI()
{
   SSPSTATbits.SMP=0;
   SSPSTATbits.CKE=1;  // clock 1 de veriyi yolla    
   SSPCON1bits.CKP=0;    // clock pals start 0 olmalı. sd kart devrede varsa iki ayrı set hazırlanmalı.
   SSPCON1bits.SSPM0=0;  //sram başlarken initS_SPI() çıkarken cs pin 1 ve sd kart için spi yeniden set edilmelidir.
   SSPCON1bits.SSPM1=1;  // hız çok iyi
   SSPCON1bits.SSPM2=0;
   SSPCON1bits.SSPM3=0;
   SSPCON1bits.SSPEN=1;
}

emrez

spi sramda sdcart ve sram aynı anda kullanılamayacağından lcd ye yazıyor veya okuyormuş gibi programlamam gerekti, sram.byte / bit olarak  struct yaptım. çok hızlı oldu. 6 - 6,5 us böylece buraya veriyi atıp "yaklaşık 11 kb kesintisiz gelen data" buradanda hiç rama aktarmadan doğrudan spi ile sd karta yada sd karttan sram içine ram takası yapmadan veri aktarabiliyorum.