BASİT AMA BECEREMEDİM!

Başlatan ta7om, 18 Kasım 2012, 00:27:24

ta7om

Selam, Proteus ile denedim ama çalışmadı!. Yanlışlık nerde bilmiyorum.
Proton ile yazdığım Proteus ile gayet güzel ve sorunsuz çalışıyor. Ancak devrede ilk yazımda anlattığım gibi bir gecikmeye neden oluyor.

Maxim

bakın bu iş çok karıştı
pull up dedik, pull down çıktı, bilmem ne direnci yokta aslında varmış.. falan filan vakit kaybı

son devreyi proteus + kodu "eksiksiz" olarak tekrar verin bakalım

emregenc

proteus'ta devre şemasına 10 MHZ kristal bağlamış ama
proton kodunde kristal tanımı yapmamışsın

kudretuzuner

Merhaba
Arkadaşım tarif ettiğiniz gibi çalıştırdım.Butona basılı tuttuğunuz sürece ledler yanar bırakınca önce biri birkaç saniye sonra da ikincisi söner.proteus 7.0 versiyondur herkes açıp bakabilir.Tabiidir ki şemayı biraz değiştirdim daha çalışır hale getirip trıs ayarlarını da ona göre yaptım.Kolay gelsin.
Amatör

ta7om

Alıntı yapılan: ta7om - 25 Aralık 2012, 18:33:37
Selam, Proteus ile denedim ama çalışmadı!. Yanlışlık nerde bilmiyorum.
Proton ile yazdığım Proteus ile gayet güzel ve sorunsuz çalışıyor. Ancak devrede ilk yazımda anlattığım gibi bir gecikmeye neden oluyor.

Bütün içerik rar dosyası içerisinde.

http://www.ta7om.com/buton.rar

kudretuzuner

Merhaba
Arkadaşım sizin dosyanızdaki çalışma da gayet sağlıklı çalışıyor.Protoborda kurup fiziksel olarak çalıştırdığınızda mı?problem var.
Amatör

ta7om

Alıntı yapılan: kudretuzuner - 25 Aralık 2012, 22:10:07
Merhaba
Arkadaşım sizin dosyanızdaki çalışma da gayet sağlıklı çalışıyor.Protoborda kurup fiziksel olarak çalıştırdığınızda mı?problem var.
Evet aynen öyle. Defalarca yazdım ama anlaşılamadım herhalde. Proteusta herşey normal. Devre üzerinde hata yok. Bundan eminim. Ama çalışması esnasında hata başlıyor.

Çalışma şeklini tekrar özetlemek istiyorum;

* 1 Nolu Butona basıldığında LED-1 ve LED-2 yanacak.
* 1 Nolu butonu bıraktığımızda LED-1 sönecek, LED-2  ise 3 - 4 saniye sonra sönecek.
* 2 Nolu butona bastığımızda LED-2 Yanacak, Bıraktığımızda sönecek.

Hepsi bu!!

Sorun ise şudur ki; 1 Nolu butona Bastığımızda her zaman olmasada LED-2 Gecikerek yanmaktadır. Bazen ise yukarıda anlattığımı şekilde normal işlevini yürütmektedir. Ben programın dallanmasında bir sorun olduğunu düşünüyorum. Ama yapamadım.

Ancak LED-2 ye verdiğim gecikmeyi kaldırdığımızda işlev normale dönmektedir. gecikme olmadan normal çalışmaktadır.

****PROTEUS üzerinde herşey normal!!!

Sırf iyi anlaşılsın diye youtube çalışma esnasında kaydettiğim Videoyu attım.

http://www.youtube.com/watch?v=NpRZAKllO4k#ws

bayelektronik

sorun muhtemelen senin butona basışın yüzünden.while döngüsü içerisine 150-200 milisaniyelik bir gecikme koy


  Set_Defaults PROTON_4
  DEVICE 16F628A

  TRISB=%11111111
  TRISA=%00000000
  PORTA=0
 
  '------------------------------------------------------
  SYMBOL COR_RLA=PORTB.5         ' ROLE COR GIRISI (+)
  SYMBOL COR_L=PORTB.6           ' LINK COR GIRISI (+)
  SYMBOL ROLE_TX=PORTA.1         ' ROLE TX CIKISI.
  SYMBOL LINK_TX=PORTA.0         ' LINK TX CIKISI.
  *************
BASLA:   
       ROLE:
           IF COR_RLA=1 THEN
         WHILE COR_RLA=1
         PortA=%11111111 
                   pause 200              // bu satıra bunu ekle
         WEND
          PortA=%11111110
         PAUSE 2000
         PortA=%00000000
         ENDIF
      LINK:
         IF COR_L=1 THEN
        WHILE COR_L=1
        HIGH ROLE_TX
        WEND
        PAUSE 10
        PortA=%00000000
        ENDIF      
GOTO BASLA                     

pcb

#23
Set_Defaults PROTON_4
Device 16F628A 

TRISB = %00000000
TRISA = %00000000

PORTA = 0
Input PORTB.5
Input PORTB.6

Symbol COR_RLA=PORTB.5         ' ROLE COR GIRISI (+)
Symbol COR_L=PORTB.6           ' LINK COR GIRISI (+)
Symbol ROLE_TX=PORTA.1         ' ROLE TX CIKISI.
Symbol LINK_TX=PORTA.0         ' LINK TX CIKISI. 

BASLA:    
   ROLE:
    If COR_RLA = 1 Then
        Set LINK_TX
        Set ROLE_TX
        Repeat :Until COR_RLA = 0
        Low LINK_TX
        DelayMS 4000
        Low ROLE_TX
        DelayMS 100
   EndIf
LINK:
    If COR_L = 1 Then
        Set ROLE_TX
        Repeat :Until COR_L = 0
        Low ROLE_TX
        DelayMS 100
    EndIf       
GoTo BASLA


mesaj birleştirme:: 26 Aralık 2012, 02:24:44


Maxim

birde bunu dene bakalım

Device 16F628A
Config FOSC_HS, WDTE_OFF, PWRTE_ON, MCLRE_OFF, BOREN_ON, LVP_OFF, CPD_OFF, CP_OFF
Declare Xtal 10
  
  TRISB=%11111111
  TRISA=%00000000
  PORTA=0

All_Digital = TRUE
CMCON=7  

  '------------------------------------------------------
  Symbol COR_RLA=PORTB.5         ' ROLE COR GIRISI (+)
  Symbol COR_L=PORTB.6           ' LINK COR GIRISI (+)
  Symbol ROLE_TX=PORTA.1         ' ROLE TX CIKISI.
  Symbol LINK_TX=PORTA.0         ' LINK TX CIKISI.
'  *************
BASLA:    
    	ROLE:
           If COR_RLA=1 Then
		   While COR_RLA=1
		   PORTA=%11111111  
		   Wend
	       PORTA=%11111110
		   DelayMS 2000
		   PORTA=%00000000
		   EndIf
		LINK:
	      If COR_L=1 Then
		  While COR_L=1
		  High ROLE_TX
		  Wend
		  DelayMS 10
		  PORTA=%00000000
		  EndIf  	  
 GoTo BASLA

ta7om

Yardımcı olan herkese çok teşekkür ederim.

Aşağıdaki şekilde çözdüm.

  Device 16F628A 
 
  CMCON=7
  TRISB=%11111111
  TRISA=%00000000
  PORTA=0
  
  '------------------------------------------------------
  Symbol COR_RLA=PORTB.5         ' ROLE COR GIRISI (+)
  Symbol COR_L=PORTB.6           ' LINK COR GIRISI (+)
  Symbol ROLE_TX=PORTA.1         ' ROLE TX CIKISI.
  Symbol LINK_TX=PORTA.0         ' LINK TX CIKISI.
  Dim a As Word
'  *************
BASLA:    
    	ROLE:
			If COR_RLA=1 Then
				PAUSE 50			' 
				While COR_RLA=1
					PORTA=%11111111  
				Wend   
				PAUSE 50			' 
				For a=0 To 500		' 
					PORTA=%11111110		'
					PAUSE 20			' 
					If COR_RLA=1 Then	' 
						GoTo BASLA		' 
					End If
				Next					
				PORTA=%00000000			' 
			EndIf
		LINK:
			If COR_L=1 Then
				PAUSE 50
				While COR_L=1
					High ROLE_TX
				Wend
				PAUSE 10
				PORTA=%00000000
			EndIf  	  
 GoTo BASLA