M

16F877 için illegal opcode hatası ve found label after column1. ( device ) uyarı

Başlatan meakdogan, 20 Mayıs 2013, 20:19:11

ete

Yukarıda verdiğin programda 2 hane şifre kullanılmış ve bundan 4 hane şifre değeri çıkartılmaya çalışılmış gibi gözüküyor.
Programın tamamıda olmayınca insan bir anlam çıkartamıyor.
Öncelikle ,4 haneli bir şifre almak için buna uygun kod bloğunun olması gerekir.
Bir karşılaştırma yapılacak ise DTMF tarafından 4 haneli bir rakam alınması gerekir.
Şu anda yalnızca 2 hane alınıyor. Bu ,benzer mantık uygulanarak 4 haneye çıkartılabilir.
Çalışmayan kod'u vermediğin için ne yaptığını bilemiyorum ve buna bağlı olarak daha fazla yorum yapamıyorum. Neden çalışmıyor diye soru sorduğun zaman o kodu da buraya eklemelisinki bakıp neden çalışmadığını söyleyebileyim. Gerçi kod'u doğru yazsan bile DTMF tarafından 2 hane yerine 4 hane gelmez ise o kod elbette çalışmayacaktır sebep bu olabilirmi?

Ete

TA2AI

aynı kod aslında abi bir an çalışıyor onra şifreyi ekleme yapıyorum yada şifreleri değiştiryorum 4 haneli şifre eklemesi çalışmıyor grupta paylaştığım aynı kod bir farklılık yok

TA2AI

@ DEVICE pic16F628A                                                  
@ DEVICE pic16F628A, WDT_OFF              
@ DEVICE pic16F628A, PWRT_ON 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT              
@ DEVICE pic16F628A, PROTECT_ON        
  
  TRISB=%11111111
  TRISA=%00000000
  PORTA=0
  PORTB=0
  
  CMCON=7            
  
  STD var  PORTB.0    '1 STD  8870)TONE enable
  E1  var  PORTB.4    'Q1 du 8870
  E2  var  PORTB.3    'Q2 du 8870
  E3  var  PORTB.2    'Q3 du 8870
  E4  var  PORTB.1  'Q4 du 8870

  SIFRE_1 var  PORTA.2    ' 
  
  b1 VAR BYTE
  b2 VAR BYTE
  b3 VAR BYTE
  b1=0
  b2=0
  b3=0
      
  c1  var BYTE  '1° code DTMF
  c2  var BYTE  '2° code DTMF
  c3  var BYTE  '3° code DTMF
  c4  var BYTE  '4° code DTMF
  Q1  var BIT
  Q2  var BIT
  Q3  var BIT
  Q4  var BIT

BASLA:
DTMF1:    
            BUTTON STD,1,255,0,b1,1,DECODER1    
            PAUSE 20
            BUTTON STD,0,255,0,b2,1,RAZ          
              GOTO DTMF1
DECODER1:    
            Q1=E1        
            Q2=E2
            Q3=E3
            Q4=E4
            c1 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
            GOTO DTMF2
          
DTMF2:    
            b3=0
            WHILE b3<75    
            BUTTON STD,1,255,0,b1,1,DECODER2    
              PAUSE 20
            b3=b3+1
            WEND
            GOTO DTMF1
DECODER2:    
            Q1=E1        
            Q2=E2
            Q3=E3
            Q4=E4
            c2 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
              GOTO DTMF3
        
DTMF3:    
            b3=0
            WHILE b3<75    
            BUTTON STD,1,255,0,b1,1,DECODER3    
            PAUSE 20
            b3=b3+1
            WEND
            GOTO DTMF1
DECODER3:    
            Q1=E1        
            Q2=E2
            Q3=E3
            Q4=E4
            c3 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
            GOTO DTMF4          
            
DTMF4: 
            
            b3=0
            WHILE b3<75    
            BUTTON STD,1,255,0,b1,1,DECODER4    
            PAUSE 20
            b3=b3+1
            WEND
            GOTO DTMF1
DECODER4:    
            Q1=E1        
            Q2=E2
            Q3=E3
            Q4=E4
            c4 =  Q1 + 2*Q2 + 4*Q3 +  8*Q4    
            GOTO SIFRE
              
RAZ:  
      
            Q1=0
            Q2=0
            Q3=0
            Q4=0
              GOTO DTMF1
            END
SIFRE:    
          PAUSE 10    
            IF c1=12 AND c2=3 AND c3=6 AND c4=3 THEN  
          SIFRE_1=1  
          ENDIF
          IF c1=12 AND c2=3 AND c3=6 AND c4=5 THEN  
          SIFRE_1=0
          ENDIF          
            
          c1=0    
          c2=0
          c3=0
            c4=0
          GOTO DTMF1    
      mesela burada 4 haneli yapmış hex var bunu yüklüyorujm fakat 4 hane girdiğimde röle açmıyor
   
 

TA2AI

c1 var BYTE '1° code DTMF
c2 var BYTE '2° code DTMF
c3 var BYTE '3° code DTMF
c4 var BYTE '4° code DTMF
Q1 var BIT
Q2 var BIT
Q3 var BIT
Q4 var BIT
cler tanımlı tanıtıldığı halde duyp röle açmıyr

ete

4 haneli giriş aslında 3 hane önce "#" tuşuna basıp ardından üç hane rakam girmen lazım şifrenin doğru çalışması için. Şifre kısmında if satırlarına bakarsan;
                IF c1=12 AND c2=3 AND c3=6 AND c4=3 THEN SIFRE_1=1
yani şifre olarak #363 girersen açıyor. #365 girersen kapatıyor olması gerek.
Sen ne giriyorsun acaba?

Ne girdiğini anlamak için programda SIFRE etiketinin altına aşağıdaki satırı ekleyiver.
write $10,c1,c2,c3,c4

Daha sonra derleme yap ve programı çalıştır. Şifre girişi yap yeniden çalışmadığını gör.
Bu aşamada sistemi kapat işlemciyi söküp programlayıcıya tak ve Read butonu ile okut işlemciyi. Epromu özellikle okuyoruz ki ne kaydetmiş ona bakacağız. Epromun $10-11-12-13 nolu adreslerinde
bak bakalım hangi rakamları göreceksin.
Ete



TA2AI

dediğiniz gibi yaptım hexi bu belirttiğiniz 10 11 12 13 bulmadım

TA2AI


TA2AI

yazlımda
SIFRE:   
           PAUSE 10   
            IF c1=2 AND c2=1 theN   
           SIFRE_1=1
           WRITE 10,10:pause 10   
           ENDIF
satırıne c3 ve c4 şifrelerini ekeldiğim de veya sadece c3 şifresi ekeldiğimde çalışmıyor ama c1 ve c2 şifresine indiriğim de direkt çalışıyor acaba okuma süresi ile ilgili bir sorun olabilir mi

TA2AI

olayı çözdüm rahatsızlık verdiysem herkesden özürd dilerim

ete

Bu tür mesajlar sinir bozucu oluyor. İşim bitti hadi bana eyvallah.!!!!!!!
Olayı çözdüm demek yetmiyor burası bir paylaşım sitesi ve nasıl çözdüğünü söylersen bir başkasının işine  işine yarayabilir.

Ete

TA2AI

Estağfurullah o niyette değilim sadece bir kaç test yapayım mihayete vardırayım dedim . Şimdi kod çözücü molarak dtmf ve decoder satılarını şifre hanesi kadar yazdım 3 haneye dtm3 decoder 3 4 hane ise dtm4 decoder 4 şeklinde ben2 hane üzerinden yapıyormuşum o açıdan ama sizlere gönderdiğim kodda 4 orada muhtemelen hata var siye kabul etmedi diye düşündümolay buymuş. Gelecek olursk ikincikez şifreyi değiştirince kod çözücüde sapıtma oluyor algılaması değişiyor okumuyor ama ilk okuyan hex yüklediğimde çalışıyor Buda benim için ilginç bunu çözemedim mesela . Okuyan çalışan pbp dosyasından sadece rakamları değiştiriyorum okumuyor e bende ilk hex den deniyorum bunuda çözeceğim grupta paylaşırım hatta bu konu altında değilde direk ayrı bir paylaşıma izin verirseniz olur

ete

Bu son mesajınıza bakılırsa çözülmüş bir şey yok demekki. Her neyse ,
Asıl sorun şifre girme süresini çok kısa tutmuşsunuz. Bu kadar kısa sürede insan şifre giremez. Daha doğrusu herkes giremez. Bir rakam girildikten sonra ikincisini girmeniz için yaklaşık 1,5 sn gibi bir süre verilmiş (75x20ms=1500ms) bu süre kısa. Belki iki haneli şifreler için yetebilir ama 3-4 hane için yeterli olmaz. Girişlerdeki 75 rakamını en azından 100-150 yapın sorun düzelecektir.

Bir şey paylaşmaya gerek yok. Zaten basit bir program tek ayrıcalığı hiç sevmediğim Button komutunun kullanılıyor olması ki bana kalırsa normal komutlarla çok daha stabil kod yazılabilirdi.
Ete projeleri içinde DTMF programı var epeyce detaylı bir programdır. Belki incelemişsinidr ama incelemedi isen bakmanı öneririm.

Ete


TA2AI

Kodları incelesin grup üzerinde sizin yazım ile ilgili makaleleriniz inceldim sigorta hatasını o şekilde buldum ' @ diye başlaması gerekiyormuş oradan buldum dtmf şifre girme süresi konusunu düşündüm fakat dediiim gibi az bir oynama yapsam pic e yükleyince çalışmıyor bir de 1111 ile aç 3333 ile kapa yaptım çalışıyor ama süre konusu deşiğim gibi deneyeceğim

TA2AI

anlamadığım diğer bir husus şifreyi değiştirdiğimde neden hexi yükeldiğimde kabul etmiyor sizin verdiğiniz satırıda ekeldim orada da göremedim

TA2AI

aslında sorunu bypass etmişim '@ DEVICE pic16F628A yapınca sormadan geç demişim buvesile ile krital de xt kristal seçiyor pıc yüklerken ve bu nedenle her seferinde niye değiştridğimde olmuyo dediğim sonuç bu makaleleri hep okudum pbp dosyası içinde .ınc leri sıkıntı yok sigortlarda sıkıntı yok 200, hatası verdi kısacası başa döndüm çözememekten

Powered by EzPortal