Buton ile sıcaklık kontrolünde takıldım.

Başlatan kaganayanoglu, 29 Mart 2019, 11:50:44

kaganayanoglu

SET           var byte        ' ISI SET DEGERI 
SET1          VAR BYTE        ' ISI ONDALIK SET DEGERI
BUTON1          VAR PORTD.6   'GIRIS
BUTON2          VAR PORTD.5   'GIRIS
MOD_SEC         VAR PORTD.7   'GIRIS


'------------B A Ş L A N G I Ç ---------------    
READ 0,SET
READ 1,SET1     
DRM=0 

BASLA:

IF MOD_SEC=0 THEN 
  
WHILE MOD_SEC=0 : WEND

TOGGLE DRM        
ENDIF

IF DRM=1 THEN
GOTO BTN_KNTRL 
 ENDIF   


 Goto BASLA

'*************ALT PROGRAMLAR**********************
BTN_KNTRL:
  
  LCDOut $FE,$80, "MOTOR ISI: ", DEC2 EKRANISI,  ",", DEC2 ONDA_EKRANISI, Derece,"C " 
  LCDOUT $FE,$C0, "ISI   SET: ", DEC2 SET,    ",", DEC2 SET1, Derece,"C "
  LCDOut $FE,$94, "                    "
  pause 100
  i=0
  BUTTON BUTON1, 0,254,255,i,1,ARTI
  i=0                                                       
  BUTTON BUTON2, 0,254,255,i,1,EKSI
  i=0
  BUTTON MOD_SEC, 0,254,0,i,1,CIK
  GOTO BTN_KNTRL
  
 CIK:
 WHILE MOD_SEC=0
       WEND
        TOGGLE DRM
        IF DRM=0 THEN BASLA 

  ARTI:
  PAUSE 100
  SET1=SET1+1
IF SET1=10 THEN SET1=0:SET=SET+1
IF SET=100 THEN SET=0
  WRITE 0,SET
  WRITE 1,SET1
 GOTO BTN_KNTRL:

 EKSI:
 PAUSE 100
 SET1=SET1-1
 IF SET1=255 THEN SET1=9:SET=SET-1
IF SET=255 THEN SET=100:SET1=0
  WRITE 0,SET
  WRITE 1,SET1
 GOTO BTN_KNTRL
 
END

Bu kod çalışıyor görünüyor ama pic ilk kez başlatıldığında  55,55 değeri ile açılıyor ve 56,00 dan sonra 00,00 oluyor. Daha sonra sorunsuz çalışıyor. Ama ilk açılışta bu sorun var. PİC'e İlk kez enerji verildiğinde örneğin 40 dan başlamasını ve sonra yeniden tekrar enerji kesilip tekrar verilsede kaydedilen değerle devam etmesini nasıl sağlayabilirim.

Teşekkürler 

M.Salim GÜLLÜCE

Set değerlerini eproma yazman gerek.
Her açılışta da epromdaki değeri okuman gerek
Flowcode Ortamında yayınlamıştım.
https://www.picproje.org/index.php/topic,72677.0.html

kaganayanoglu

#2
E
Alıntı yapılan: kaganayanoglu - 29 Mart 2019, 11:50:44ARTI:
  PAUSE 100
  SET1=SET1+1
IF SET1=10 THEN SET1=0:SET=SET+1
IF SET=100 THEN SET=0
  WRITE 0,SET
  WRITE 1,SET1
 GOTO BTN_KNTRL:

 EKSI:
 PAUSE 100
 SET1=SET1-1
 IF SET1=255 THEN SET1=9:SET=SET-1
IF SET=255 THEN SET=100:SET1=0
  WRITE 0,SET
  WRITE 1,SET1
 GOTO BTN_KNTRL

Eproma zaten yazıyorum. Ama eproma açılış değerini "Başla:" dan önce yazarsam her enerji kesintisinde pic baştan başlayacağı için ilk verdiğim değere geri dönüyor. "Başla: " dan sonra yazarsam zaten olmuyor çünkü artı ve eksi tuşlarıyla değiştirmem gerekiyor. :du:

İstediğim şey programlama islemi sonrasında, örneğin 40 rakamının, eproma bir kereliğine yazılıp artık sonrakilerde ayarlanan değeri görmesi.

M.Salim GÜLLÜCE

#3
Alıntı yapılan: kaganayanoglu - 29 Mart 2019, 14:49:15E
Eproma zaten yazıyorum. Ama eproma açılış değerini "Başla:" dan önce yazarsam her enerji kesintisinde pic baştan başlayacağı için ilk verdiğim değere geri dönüyor. "Başla: " dan sonra yazarsam zaten olmuyor çünkü artı ve eksi tuşlarıyla değiştirmem gerekiyor. :du:

İstediğim şey programlama islemi sonrasında, örneğin 40 rakamının, eproma bir kereliğine yazılıp artık sonrakilerde ayarlanan değeri görmesi.
Eproma yazma işini her tuş değişikliğinde yapmalısın.
Böylece yeniden başladığında en son tuşlaman geçerli olacaktır
Loop döngüsünden önce başlangıç değerini okutmalısın.

mustafa_cmbz

Hangi dil bu basic değilmi?  Eprom yazma komutu bana arip geldi nedense

kaganayanoglu

Alıntı yapılan: Mehmet Salim GÜLLÜCE - 29 Mart 2019, 14:57:46Eproma yazma işini her tuş değişikliğinde yapmalısın.
Böylece yeniden başladığında en son tuşlaman geçerli olacaktır
Loop döngüsünden önce başlangıç değerini okutmalısın.

Zaten öyle yapıyorum. Fakat ilk yüklemede bu değer boş olduğu için 255 geliyor ve 55,55 C gözüküyor. 56 dan sonra 00,01 den başlıyor. Anlatamadım heralde. :du:  :du:

M.Salim GÜLLÜCE

Alıntı yapılan: kaganayanoglu - 29 Mart 2019, 15:06:44Zaten öyle yapıyorum. Fakat ilk yüklemede bu değer boş olduğu için 255 geliyor ve 55,55 C gözüküyor. 56 dan sonra 00,01 den başlıyor. Anlatamadım heralde. :du:  :du:
Şimdi anladım.
Epromda hiç değer yokken başlatırsam sapıtık geliyor diyorsun. Doğrumu?

mustafa_cmbz

Epromun default değerini ilk kurulum bilgisi atayarak ve açılışta bunu sorgulayarak aşabilirsin..

Mesela ilk programladın açtın enerjiyi verdiğinde gideril ilk önce ilk kurulum bilgisi atıyorum 10 ise daha önceden ilk kurulum yapılmıştır epromdaki değerleri git oku amailk kurulum 10 değilse şu şu şu değişkenlere şu değeri ata ve eproma yaz dersin sonra ana programa gelmeden bir kez daha okursun. Enerjiyi kesip verdiğinde artık epromda senin kaydettiğin bikgiker kalır ve onları okursun.

Endorfin35+

Baska bir eprom adresinde daha once kayit yapilip yapilmadigini kendine gore bir deger ile sakla. Kod basinda bu adresi sorgula daha once kayit yapilmadi ise soyle yapildiysa boyle devam et...
"İşi bilen yapar, az bilen akıl verir, bilmeyen eleştirir, yapamayan çamur atar."