D

Arkadaslar Proje proteusta çalışıyor fakat kurdum çalışmıyor

Başlatan desperado17, 29 Şubat 2012, 00:20:17

desperado17

HOCAM SORUNU BULDUM ONDALIK HESAP KISMINDA SORUN VAR

MESELA ISI DEGERİ 225

BUNUN EKRANDA 22,5 OLARAK GÖRÜLMESİ İÇİN
ISI1=ISI/10
ISI2=ISI//10

OLARAK MI YAPMAK LAZIM DAHA KOLAY BİR YOLU VAR MI ?

ete

Sorunun set değerinin farklı olmasında sen 24 sanıyprsun ama o 80 olmuş her nasılsa.
Sorun ondalık kısımda değil. Gerek okunan sıcaklıkda gerekse set sıcaklığında ondalık kısmında değerlendirilmesi için her ikisininde 10 ile çarpılmış halleri karşılaştırılıyor.
Set sıcaklığı 24,6 iken set değeri 246 oluyor.
Okunan sıcaklık 23,7 iken HSAP=237 oluyor. Sonuçta HSAP ile SET karşılaştırılması aynı bazda yapılmış oluyor.
Sen asıl programına bak set neden 800 çıkmış.

Sıcaklıkları ondalıklı göstermenin başka yolu yok maalesef. 237 değeri 10 a bölünürse sıcaklığın tam sayı kısmı bulunur.
237/10=23 çıkar. Gerçek hesap makinesinde bu 23,7 çıkar ama pic hesabı ondalıksız olarak yaptığı için sonuç 23 olacaktır.
Ondalık kısmı bulmak için ise MOD işlemi uygulanır. Mod alma işleminde 237 Mod 10 (bunun basic komut karşılığı 237//10 şeklindedir) 237 sayısını 10'a böler kalanı bulur. Dolayısıyla 237 sayısı 10 a bölününce geriye 7 kalacaktır. Buda ondalık kısımdır.

Ete

desperado17

set=set1*10+set2
BU SATIR YÜZÜNDEN ŞAŞIRIYORMUŞ.

BUNU SİLİNCE DÜZELDİ BİRDE HAS OTOMATİK 55 DEGERİ ALIYORDU PROGRAMDA 51' E EŞİT OLUNCA 1 YAP DEMİŞTİM BEN PROGRAMDA ONU DA 51 DEN BÜYÜK OLUNCA 1 YAP DEDİM SIKINTI KALMADI SU ANDA ÇIKIŞI AKTİF VE PASİF YAPMADA PROGRAMI EKLİYORUM HOCAM RİCA ETSEM Bİ İNCELERMİSİNİZ? KESİN ACEMİLİK VE UZUN YOLDAN YAPTIĞIMIZ BİŞEYLER OLMUŞTUR.

(BU ARADA SAYAC KOYMA NEDENİM SÜREKLİ OLARAK EKRANDA KARARSIZ SEKİLDE 28,8 28,9 ŞEKİLDE DÖNMESİN DİYE)

ete

Programı inceledim  ve bir sorun göremedim.
Her şey normal gözüküyor. Bütün seçeneklerini denedim.

Ete

desperado17

Alıntı yapılan: ete - 08 Mart 2012, 07:07:37
Programı inceledim  ve bir sorun göremedim.
Her şey normal gözüküyor. Bütün seçeneklerini denedim.

Ete

Teşekkur Ederim hocam Ellerine sağlık...

erkanert

Ete Hocam öncelikle bu sitenin mükemmel bir başarı olduğunu belirtmek isterim.
benim bir sorum olacak. yazdığım kodu kısa bir şekilde alta yazıyorum.

HIGH PORTA.0
DTMFOUT PORTA.1,300,250,[1,1,1,1]

bu komut dizisi proteusta çalışıyor fakat uygulamada ne yaptıysam A.0 Low oluyor yani DTMFOUT komutuna geldiği anda A.0 low oluyor. Bunun bir çözümü varmıdır acaba. teşekkür ederim.

ete

Şayet kullandığın işlemci aşağıdakilerden birisi ise;
-16F628
-16F877A
-16F876A
bunlarda A portu default olarak Comparatör (analog) açılır. Dolayısıyla digital oalrak pinlere hükmedemezsin.
Bunu önlemek için programın başına CMCON=7 komutunu ilave etmen gerekiyor.
Ayrıca şayet analog pin kullanmıyor isen 16F87x işlemcilerde A portu ADC pini olarak (komparatörden sonra) açılırlar.
Bunu önlemek içinde ADCON1=7 komutunu ilave etmen gerekiyor.

Ete

erkanert

Hocam çok teşekkür ederim. aynen dediğiniz gibi sorun ondanmış. Herhalde 3 gündür filan uğraşıyordum bu problemle. İyi çalışmalar dilerim.

mustafa

Merhaba arkadaşım.İsiste yaptığın devreleri mantık olarak deneyebilirsin özellikle yaptığın bir yazılımın çalışıp çalışmadığını net bir lekilde kontrol edebilirsin.Ancak elektriksel olarak gerçekte çalışacağı anlamına gelmez bu.Yani senin devren isiste mantık olarak çalışıyordur çünkü orda herşey ideal durumda , ancak gercek hayatta öyle değil.Devrelerin çalışmaması için birçok faktör etkili olabilir devrende.Eğer isiste yazılımın düzgün çalışıyorsa ondan endişe etme ama devreni elektriksel bağlantılarını kontrol et...

erkanert

Öncelikle herkese ilgisinen dolayı teşekkürler.
Benim bir sorum daha olacak ETE hocamıza , DTMFOUT komutunda A,B,C,D,*,# dtmflerini gönderemiyorum. Acaba bunun bir yolu varmıdır.

ete

Açıklama ne demiş,  (   DTMFOUT Pin,{Onms,Offms,}[Tone{,Tone...}]   )

"Tones are numbered 0-15. Tones 0-9 are the same as on a telephone
keypad. Tone 10 is the * key, Tone 11 is the # key and Tones 12-15
correspond to the extended keys A-D."
Bu durumda komutu şöyle kullanman gerekiyor;
* tonu için 10
# tonu için 11
A tonu için 12
B tonu için 13
C tonu için 14
D tonu için 15

DTMFOUT PORTA.0,[10,11,12,13,14,15]

Ete



erkanert

Hocam çok teşekkür ederim. Benim kullanım şeklim
DTMFOUT PORTA.0,[A,B,C,D] gibi denemiştim . Çok sağolun hocam

Powered by EzPortal