Bunları biliyor musunuz? Birkaç püf nokta.

Başlatan 707yunus, 02 Ağustos 2008, 21:58:36

707yunus

slm arkadaşlar ccs de birkaç bilgi söylicem.bilginiz olsun.

ccs de xt osc seçipte 20Mhz clock seçerseniz isiste çalışabilir ama gerçekte kesinlikle devreniz çalışmaz.onun için 20Mhz kullanacaksanız mutlaka hs osc seçmelisiniz.


ccs de genelde kod yazarken kod sonuna ';' işareti koyarız.elimizde alışkanlık olduğu için kazayla aşağıdaki for döngüsünde kullanırsanız program çalışmaz.
for döngüsünde aşağıdaki yazım hatalıdır,çalışmaz, fakat HATA VERMEZ DERLEME ESNASINDA..

for(i=0;i<10;i++);
{
..............
}

onun için

for(i=0;i<10;i++)
{
..............
}

yapmalısınız


selamlar....

Tagli

20 MHz kristali ilk kullandığımda bu ayrıntıyı unutmuştum. Hatta kristallerin bozuk olduğunu düşünüp başka bir yerden yenilerini almıştım  :oops:. Tabi onlar da çalışmayınca sorunun bende olduğunu farkettim.

Söz konusu ayarı programda yapmak şart değil. Pek çok (aslında sanırım hepsi) programlayıcı program (mesela icprog) hex dosyasının atılması sırasında config word'un ayarlanmasına izin veriyor. Bunun nasıl yapıldığını tam bilmiyorum ama sanırım orada işaretlenen kutucuklara göre orijinal hex dosyasını değiştirip öyle atıyor.
Gökçe Tağlıoğlu

OG

Alıntı yapılan: "707yunus"
ccs de xt osc seçipte 20Mhz clock seçerseniz isiste çalışabilir ama gerçekte kesinlikle devreniz çalışmaz.onun için 20Mhz kullanacaksanız mutlaka hs osc seçmelisiniz..
Tabi bunun sebebi ccs değil, pic yapısı xt hızdaki ayarı ile 20MHz de çalışmıyor. Diğer derleyiciler için de geçerlidir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

707yunus

arkadaşlar bu arada adc ile kanal değitirdikten sonra mutlaka 15-20 us lik gecikme koyun yine söyleyebilirim ki isiste hata vermiyor fakat gerçekte çok sıkıntı yapıyor..


selamlar..

Tagli

Bu konuda 16F87XA'nın datasheet'i diyor ki:

EQUATION 11-1:     ACQUISITION TIME

 TACQ  = Amplifier Settling Time + Hold Capacitor Charging Time + Temperature Coefficient
       = TAMP + TC + TCOFF
       = 2 µs + TC + [(Temperature – 25°C)(0.05 µs/°C)]
 TC    = CHOLD (RIC + RSS + RS) In(1/2047)
       = - 120 pF (1 kΩ + 7 kΩ + 10 kΩ) In(0.0004885)
       = 16.47 µs
 TACQ  = 2 µs + 16.47 µs + [(50°C – 25°C)(0.05 µs/°C)
       = 19.72 µs


Aradaki sayıları nerden bulmuş bilmiyorum ama sanırım bazıları sabit, diğerleri de varsayım. Emin değilim ama gereğinden fazla beklersen sorun çıkmaz sanırım (ben bekleme algoritması yazmaya üşendiğimden ve pek de zaman sorunum olmadığından 1ms bekletiyordum - ne büyük bir israf :) ).
Gökçe Tağlıoğlu

707yunus

ardadaşlar üzerinde çalıştığım bi proje var.bu projede kesme kullanıyorum.ccs için bir kitapta şöyle okudum.ccs c derleyicisi kesmeye gittiğinde bayrağı kendisi otomatik siler.bnde buna güvenerek programımı yazdım ama sürekli sorunluydu.hatta ilk çalışmada lcd deki değer doğru okunuyor sonraki bütün değerler saçmaydı.bi türlü nedenini çıkaramadım.dün uyurken aklıma geldi kesme bayrağını kendim sıfırladım devre çok iyi çalıştı.bilginiz olsun:

ccs de kesme kullanacaksanız bayrağınızı sıfırlayın.

Tagli

Alıntı yapılan: "707yunus"ardadaşlar üzerinde çalıştığım bi proje var.bu projede kesme kullanıyorum.ccs için bir kitapta şöyle okudum.ccs c derleyicisi kesmeye gittiğinde bayrağı kendisi otomatik siler.bnde buna güvenerek programımı yazdım ama sürekli sorunluydu.hatta ilk çalışmada lcd deki değer doğru okunuyor sonraki bütün değerler saçmaydı.bi türlü nedenini çıkaramadım.dün uyurken aklıma geldi kesme bayrağını kendim sıfırladım devre çok iyi çalıştı.bilginiz olsun:

ccs de kesme kullanacaksanız bayrağınızı sıfırlayın.

Bazı bayraklar kendini sıfırlar. Örnek: USART modülünün bazı bayrakları. Emin olmak için datasheete bakmak lazım.
Gökçe Tağlıoğlu

tayyar

ccs de option reg e nasıl ulaşılır ?

interrupt bayragını bende sıfırlamak istemiştim option reg gibi reglere ulşamadıgım icin asm kodu yerllşetirdim css nin icine ancak help kısmında yazdıgı şekilde yapmama rağmen kabul etmemişti kodları
--EGEMENLİK KAYITSIZ ŞARTSIZ MİLLETİNDİR--

707yunus

hocam  option rege datashetten option reg in  ilgili kısmın adresini ccs de  define olarak tanıt  sonra kullan.çalışmalı.ama bn denemedim.

Tagli

Yanlış hatırlamıyorsam bazı eski 10F ve 12F serisi PIC'lerde OPTION ve TRIS registerları yok. Bunları ayarlamak için özel komutlar var (instruction). Hatta bu komutlar yeni 16F serisinde de çalışıyor diye okumuştum bir yerde ama Microchip uyumluluk sebebiyle yeni PIC'lerde bu komutların kullanılmasını tavsiye etmiyor. Hatta yeni PIC'lerin datasheetlerinde bu komutlardan hiç bahsedilmemiş.

Sonuçta register olmadığı için bu PIC'lerde OPTION_REG = ...... gibi birşeyler de yazılamıyor sanırım (aslında yazılabilmeli ve bunu da PicBasic Pro gerekli ASM koduna çevirebilmeliydi bence). Bu sadece benim varsayımım tabi. Bahsettiğim PIC'leri hiç kullanmadım, sadece datasheetlerine bakmıştım. Ayrıca PicBasic Pro'da fazla ustalaşmadan bırakıp ASM'ye geçtim, o yüzden verdiğim bilgilerin doğruluğunu garanti edemem.

Düzeltme: Kafam dalmış da, şimdi farkettim olayın PBP ile ilgisi yok. CCS'yi ise hiç görmüşlüğüm yok :) Yine de OPTION_REG'le ilgili mantık hepsinde aynı olsa gerek. Aslında "register yok" ifadesi de yanlış; var ama memory map'de adreslenmemiş, o yüzden doğrudan ulaşılamıyor.
Gökçe Tağlıoğlu

707yunus

arkadaşlar  herkes bildiği  püf noktaları buraya yazsa çok iyi olur.herkes birşeyler öğrenir.

selamlar...

XX_CİHAN_XX

Bende bir püf nokta yazayım.
CCS yi bırakın Hi-tech C kullanın.   :lol:
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

707yunus

Alıntı yapılan: "XX_CİHAN_XX"Bende bir püf nokta yazayım.
CCS yi bırakın Hi-tech C kullanın.   :lol:

hocam hi-tech  i bilmiyorum fakat hi-tech  e geçmemiz için bir nedeniniz var mı?yani ccs ye göre üstün olan özelliklerini söyleyebilir misiniz??

M_B

İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Tagli

PIC diye birşey olduğunu öğrenip de elekronik işine gireli 1 buçuk sene oldu. PBP ile başladım ve sonra ASM'ye geçtim. Son 1 senedir de ASM kullanıyorum. Biraz kastırıyor program yazması ama tam kontrol sağlıyor, arka planda ne olduğunu tam olarak bilebiliyorsun. Şimdilik sadece 16F (ve öncesi) için olan ASM'yi biliyorum ama yakın zamanda 18F serisini de öğreneceğim... Herkese ASM tavsiye ederim.  ;)
Gökçe Tağlıoğlu