Slm arkadaŞlar...16f877 de analog dİjİtal dÖnÜŞÜmÜ yaparken voltaji daha fazla bÖlmek İstİyorum..yanİ ÖrneĞİn 5 voltu 4 e bÖlÜyor ve her 1.25 voltta dİjİtal ÇikiŞ deĞİŞİyor..mesela portb den ÇikiŞimi aliyorum..1.24 voltta 0 ,,1.25 de 1,,1.50 de 2,,1,75 de de 3h sayisini aliyorum...yanİ demek İstedİĞİm mesela her 0.5 voltta ÇikiŞi deĞİŞtİrebİlİrmİyİm...deĞİŞtİremessem bu pİc İn ÖzellİĞİmİ?..fosc yi değiştirdim fayda etmedi..
5 voltu 4 e değilde 8 e bölüp, her bir dilimde başka şey yapayım diyorsan yazılımı değiştireceksin. Yok 2.5 voltu 4 e böleyim diyorsan (ve 2.5 volt üstünü vermeyecek isen) bir şansın olabilir. Eğer ADC refransını internal almamış ise yani Vref+ hariçten verilmiş ise onu 2.5 Volta indirmen yerelidir. İçerden alınmış ise şansın yok, yazılımla düzelteceksin.
yazılım üzerinde oynadım ama değişen bişey olmadı...Vref+ ı kullanmayı biliyorum ordan istediğimz voltaj aralığını belirleyebiliryoruz..dediiin gibi 8 e 16 ya bölmke istiyorum
ADRESH ve ADRESL 'i kullanarak değerinizi tespit ediyorsunuz sanırım.
En basit haliyle deger = (ADRESH * 256+ADRESL)/200; ve PORTX = deger; ile 5V luk kaynak gerilimini 1 V hassasiyette portta görebilirsiniz 200 değilde 400 alırsanız 0,5 V ta 1 -- 1 V ta 2 -- 5V ta 10 u porta gönderebilirsiniz. Tabi bu basit uygulamalarda kullanabileceğiniz bir örnek.
Kolay Gelsin.
teorik olarak; ADC çözünürlüğü 10 bit olduğu için, yani bu da desimal olarak 1024 basamak demektir. ADC giriş değerini (Referansa bağlı olarak) 1024 e bile bölebilirsiniz. fakat şunu anımsamak gerekir; ADC referans girişi malesef belirli bir gerilim aralığında olmalıdır. Yani ADC referans gerilimini 1v yapamayız. bu değerler ve histerisizi ilgili pic lerin pdf dosyalarında belirtilmiştir.
Bu bilgiler ışığında, geriye kalan sadece program içinde kıyaslama sayısını artırmak ve programa ilavelerle değişiklik yapmaktır.
yazılım üzerinde oynadım ama değişen bişey olmadı...Vref+ ı kullanmayı biliyorum ordan istediğimz voltaj aralığını belirleyebiliryoruz..dediiin gibi 8 e 16 ya bölmke istiyorum
Yazılımı okutup siz mi disassemble ettiniz yoksa kaynak kodları mevcut assembly, c, basic ile mi yazılmış? Kodu görmeden bir şey söylemek zor. Eğer c veya basicte yazılmış ise işin çok kolay olur.
ben disassebley yaptım...c veya basic kullanmadım normal komutlarla yazdım...arkadaşta saolsun bişeyler anlatmış..fakat nerde nasıl kullanacağımı tam kestiremiyorum..
A21 VREF+ Reference voltage High AVDD - 2.5V AVDD + 0.3V V
A22 VREF- Reference voltage low AVSS - 0.3V VREF+ - 2.0V V
A25 VAIN Analog input voltage VSS - 0.3 V — VREF + 0.3 V V
LF serisi bir MCU kullanmamiz durumunda teorik olarak Vref+ yi 500mv olarak verebilmemiz mumkun gorunuyor. Yanildigim/atladigim bir nokta var ise ogrenmek isterim.