PIC16F88 ADC ve LCD sorunu

Gözden kaçmış olmalı.


...lcd.c ve lcd.h dosyalarına...


CCS C derleyicide wizard ile başlarsanız bir çok ayarı (config) sizin yerinize hazırlar.
 
@KAZIMUGUR

teşekkürler hocam. şuanda CCS C de yazdım ve bir sorun yok gibi görünüyor. Sadece proteus ADC clock u için anlayamadığım bir hata veriyor.
 
16F88 Datasheet'ten alıntı yapıyorum..

"The seven possible options for TAD are:

• 2TOSC
• 4TOSC
• 8TOSC
• 16TOSC
• 32TOSC
• 64TOSC
• Internal A/D module RC oscillator (2-6 μs)"

"T[SUB]AD [/SUB].....but no less than 1.6 μs and not greater than 6.4 μs."

Buradan yola çıkarsak, minimum değerde

* fosc = 1 / (1.6 x 10[SUP]-6 [/SUP]) =625000 Hz
* f[SUB]AD[/SUB] = 2 * f[SUB]osc[/SUB] = 1.25 MHz

Ki zaten datasheet te cihazın maksimum frekansları yer almaktadır.

Ayrıca örneğin 10 MHz'lik bir osilatör kullanılırsa minimum seçilecek olan T[SUB]AD [/SUB]zamanı 16T[SUB]OSC[/SUB] seçilmelidir ki minimum şartı olan 1.6μs sağlanabilsin.

Saygılarımla,
 
etuzuner hocam.
Üst limit için hatalı bir söylemde bulunduğum için sanırım tekrardan açıklama gereğinde bulundunuz bu kadar. 4MHz için uygun olan ...div_8 ...div_16 dır. Bu değerleri kullandığımda da hala Proteus hata veriyorsa; verilen hata yersizdir diyorum.
 
Evet, dediğinizi yanlış anlamışım. Bug falan olabilir belki de.. Bunlara rağmen hala uyarı veriyorsa diyebileceğim ya da düşünebileceğim başka bir neden yok sanırım.. :)
 
Arkadaşlar bu picteki dahili osilatör sadece 4mhz olarak değil 8 mhz olarakda seçilebiliyor ve bu ayar oscon registerı ile ayarlanıyor.Yani yazılımda sadece clock frekansını seçmeniz yetmez,seçtiğiniz clock frekansına uygun birde register ayarı yapmalısınız.

Ayrıca programda herşey kapatılmış ama comparatörler kapatılmamış.

Datasheet de ayrıntılı olarak anlatmış,incelemenizde fayda var.
 
@kumanda-cı

Komparatörleri eklediğim kodda da aynı hatayı verdi. CCS C de direk registera değer atamayı nasıl yapabilirim ?

Teşekkürler
 
CCS C'deki internal osilatör kodu setup_oscillator( OSC_8MHZ ); ancak siz harici osilatör kullanmıyor musunz?

Benim için yukarıdaki hesaplamalar şimdiye kadar yeterli olmuştu.

"Yani yazılımda sadece clock frekansını seçmeniz yetmez,seçtiğiniz clock frekansına uygun birde register ayarı yapmalısınız."

Harici osilatör kullanılırken neden OSCCON register ını değiştirmeye ihtiyacımız var acaba? Değiştirmek problem değil, sonuçta her şeyi datasheet te belli de öğrenmek istediğim için soruyorum. ( Register 4-2; Sayfa 42 ) Ayrıca ilgili mesafeyi koruduktan sonra harici kullanmak daha sağlıklı değil mi?

Saygılarımla,
 
4 mhz olunca benim kafam direk dahili osilatöre gitti kusura bakmayın,harici osilatör kullanıldığında herhangi bir register ayarı gerekmiyor,sadece dahili de 4mhz için ayrı 8mhz için ayrı osccon ayarı yapmak lazım.

Ccs bunu setup_oscillator( OSC_8MHZ ); bu satır ile yapıyordur büyük ihtimal.
 
Adım adım öğren acele etme.
Verdiğim dosyadaki lcd header leri driver klasörü içine at ayrıca yedekte sakla.
İstediğin pine bağlamak için açıp içinde gereken değişikliği yapman yeterlidir.
 

Forum istatistikleri

Konular
128,371
Mesajlar
917,084
Kullanıcılar
450,244
Son üye
halilsezen

Yeni konular

Geri
Üst