pic osilatör sigortası ?

Başlatan bulut_01, 24 Ağustos 2012, 08:26:10

bulut_01

iyi günler arkadaslar benim söyle bir sorum olacak #use delay(4000000) komutu yazdıgım zaman pic de 20 mhz krıstal olursa mcu hangi frekans calısır ? use delay komuttunda ne yazıyıyosa o frekansda mı calısır yoksa ne krıstal takılıysa o frekansda mı calısır?
YENİLMEZ..

XX_CİHAN_XX

Bu direktif osilatör sigortasını değiştirmez. Bu sadece delay_us, delay_ms gibi fonksiyonların sectiğiniz osilatör değerine göre oluşturulması için kullanılır. Siz bu direktife 4Mhz girip osilatörünüzü 20Mhz takarsanız. delay_ms(5) dediğinizde 5ms lik gecikme yerine 1ms lik gecikme ile karşılaşırsınız.
20mhz lik osilatörü aktif yapmak istiyorsanız
#FUSES HS
direktifini kullanmalısınız. Sigorta ayarı buradan yapılır.
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.

bulut_01

peki kristal ne olursa olsun #fuses xt(4000000) gibi yada (2000000) gibi degerler girerek pic istegımız frekans calıstırmak istersek krıstalla oynamadan nasıl bır komut yazmamız lazım ?
YENİLMEZ..

OG

40 veya 20 yazmanız PIC çalışma frekansını değiştirmez. Hangi kristali taktıysanız o frekansda çalışır, tabi gerekli koşullar sağlandıysa.

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

bulut_01

bende dıyorum bu kosulda kristalla oynamada frekans yazılımla nasıl degıstırız yokmudur bunun yolu ?
YENİLMEZ..

XX_CİHAN_XX

4 mhz üstü kristal osilatör için #FUSES HS
4mhz için #FUSES XT yaz

#use delayları da uygun girersen delay fonksiyonlarında tutarsızlık olmaz.
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.

bulut_01

Alıntı yapılan: XX_CİHAN_XX - 24 Ağustos 2012, 09:16:35
4 mhz üstü kristal osilatör için #FUSES HS
4mhz için #FUSES XT yaz

#use delayları da uygun girersen delay fonksiyonlarında tutarsızlık olmaz.
bunu sormuyorm arkadasım yazılımla pıce ıstedıgımız frekansla nasıl calıstırırız. Krıstal oynamadan krıstal sabıt 20 mhz olsun dıyelım.
YENİLMEZ..

halilgalic

bazı işlemcilerde kendi osilatör devreleri bulunuyor bunu kendi istediğin gibi secebiliyosun ccs c de şöyle "setup_oscillator();"

JKramer

Kullandığınız mikrodenetleyicinin kataloğundaki osilatör bölümünü inceleyin. Mesela 16F887'de dahili osilatörü register değerleriyle oynayarak değiştirebiliyorsunuz.

bulut_01

Alıntı yapılan: JKramer - 24 Ağustos 2012, 09:58:35
Kullandığınız mikrodenetleyicinin kataloğundaki osilatör bölümünü inceleyin. Mesela 16F887'de dahili osilatörü register değerleriyle oynayarak değiştirebiliyorsunuz.
buna ornek kod yazabılırmısınız ccs de? Bunun harici osilatör ıcın olanı warsa buraya yazarsanız makbule geçer.
YENİLMEZ..

OG

#10
Alıntı yapılan: bulut_01 - 24 Ağustos 2012, 09:34:59
  bunu sormuyorm arkadasım yazılımla pıce ıstedıgımız frekansla nasıl calıstırırız. Krıstal oynamadan krıstal sabıt 20 mhz olsun dıyelım.

Sorduğun soru ne belli değil.

Harici osilator kullanıyorsan (Kristal, RC gibi) değiştiremezsin. Dedik. Çünkü;

Alıntı Yapiyi günler arkadaslar benim söyle bir sorum olacak #use delay(4000000) komutu yazdıgım zaman pic de 20 mhz krıstal olursa mcu hangi frekans calısır ? use delay komuttunda ne yazıyıyosa o frekansda mı calısır yoksa ne krıstal takılıysa o frekansda mı calısır?

Bu sözde dahili osilatorun adı geçmiyor, kristal diyorsun.

mesaj birleştirme:: 24 Ağustos 2012, 11:37:50

Ayrıca 16 serisinde çalışma anında dahili osc değerini yeni bir değerle değiştiremiyorsun. Baştan atadığın değer neyse o. 18 serisini bilmiyorum.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

bulut_01

Alıntı yapılan: OG - 24 Ağustos 2012, 11:35:42
Sorduğun soru ne belli değil.

Harici osilator kullanıyorsan (Kristal, RC gibi) değiştiremezsin. Dedik. Çünkü;

Bu sözde dahili osilatorun adı geçmiyor, kristal diyorsun.

mesaj birleştirme:: 24 Ağustos 2012, 11:37:50

Ayrıca 16 serisinde çalışma anında dahili osc değerini yeni bir değerle değiştiremiyorsun. Baştan atadığın değer neyse o. 18 serisini bilmiyorum.
sayın og 20 mhz krıstal deyınce siz dahili anlıyorsanız sızde garıplık war burda bu ısten fazla anlamayana bıle sorsak harıcı oldugunu bılır.
YENİLMEZ..

XX_CİHAN_XX

Alıntı yapılan: bulut_01 - 24 Ağustos 2012, 10:15:58
  buna ornek kod yazabılırmısınız ccs de? Bunun harici osilatör ıcın olanı warsa buraya yazarsanız makbule geçer.
Yukarıdaki arkadaşlar dahili osilatörden bahsediyor sende örnek kod istiyorsun haliyle ne istediğini bilmiyormuş gibi bir anlam çıkıyor.
setup_oscillator() fonksiyonu dahili osilatör ayarlaması ile ilgilidir. Senin işine yaramaz şu durumda.
Ya ben anlamıyorum hala yada sen anlatamıyorsun.
Sorduğun sorunun cevabını yukarıda verdim zaten.
Picde 20Mhz kristal ile çalışmak istiyorsan. Programının başına #FUSES HS yazacaksın.
Bu sayede mikrodenetleyici bu frekansta çalışabilmeye programlanmış olur. Daha açık nasıl yazabilirim acaba

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.

bulut_01

#13
syn cihan cvp ıcın sağol dedigini anladım.bu setup_osillacatör() foksiyonun harıcı ıcın olanı war mı ben bunu arastrıyorum 20 mhz krıstal bır ornek hs oldugunu bende bılıyorum benım yapmak ıstedıgm pıc li devrelerde 20 mhz krıstalım sabıt olsun ben yapdıgm devreeye göre frekans yazılımla degıstırıym ornek bır devre yapdım 18fxx mcu kullandım ben aynı devreyı yazılımla ıster 2 mhz calıstırym ıster 20 mhz calıstırıym bunları yaparken donanımsal ıslem yapmadan krıstal ve kapasıtor degıstırmeden yazdıgım c koduyla osılator ayarları yaparak. devreyı bu dedıgım sekılde calıstırmanın yolu nasıldır ? bu sefer kendımı anlatabılmısımdır umarım.
YENİLMEZ..

XX_CİHAN_XX

Şimdi oldu şunu baştan böyle anlatsaydın keşke.
16 serisi için konuşursak bu işi yapabilmek için kristal osc kullanmaman gerekir.
16F819 gibi bir çipte 8 adet dahili osc frekansı seçilebilmektedir.
- 8 user selectable frequencies: 31 kHz, 125 kHz,
250 kHz,  500 kHz,  1 MHz,  2 MHz,  4 MHz,  8 MHz
Programın çalışırken bunlardan birini istediğin anda seçebiliyorsun. Bu iş için setup_oscillator() fonksiyonunu kullanabilirsin.
Ancak dediğim gibi sadece dahili osilatörü kullanarak bu işi yapabiliyorsun. Bu durumda 20Mhz lere çıkamazsın.
(Aynı zamanda CCS için konuşursak hazır delay fonksiyonları programın ortasında frekans değiştirmeye kalkarsan bu durumda sağlıklı çalışmayabilir)
İlle de daha yüksek frekanslara (8Mhz in üstüne) çıkmak istersen 18F leri kullanıp kristal kullanarak PLL çarpanları ile oynamak kaydıyla
frekans değiştirmekte mümkün diye düşünüyorum fakat bu konuda kod örneği veremem.
Ek olarak yeni çıkan 16F serileri 32Mhz dahili osilatöre kadar seçilebiliyordu onları da inceleyebilirsin.
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.