İKİ AYRI YAZILIMI TEK İŞLEMCİ İLE CALIŞTIRMA

Başlatan sozkarabacak, 14 Mart 2009, 09:40:16

sozkarabacak

SELAMLAR,
Elimizde bir sistemde kullanılan iki adet yazılım var ikiside aşağıdaki halde ayrı ayrı iki adet işlemci entegre ile çalışıyor. Bu iki yazılımı birleştirip tek yazılım halinde iki işi bir pic işlemciye yaptırabilir miyiz? Ben bazı denemelerde bulundum. Şöyle bir durum oldu döngü kısımlarında ikiside döngüdeyken pic kafasına göre bir işlem yapıyor başaramadım yani aşağıdaki iki yazılımı ikiside sürekli döngü halinde çalışacak şekilde nasıl düzenleyebiliriz?
1. YAZILIM
Alıntı YapTRISB=%11111111
 TRISA=%00000000
 PORTA=0
@ DEVICE pic16F84A                                                    
@ DEVICE pic16F84A, WDT_OFF              
@ DEVICE pic16F84A, PWRT_ON              
@ DEVICE pic16F84A, PROTECT_OFF          
 
 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.1    '
 SIFRE_2 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=5 AND c3=2 AND c4=5 THEN   ' # 5 2 5 ROLE1 KAPAMA
          SIFRE_1=1    
          ENDIF

          IF c1=12 AND c2=5 AND c3=2 AND c4=4 THEN   ' # 5 2 4 ROLE1 AÇMA
          SIFRE_1=0      
          ENDIF
           
        IF c1=12 AND c2=5 AND c3=2 AND c4=3 THEN   ' # 5 2 3 ROLE2 AÇMA
          SIFRE_2=1    
          ENDIF

          IF c1=12 AND c2=5 AND c3=2 AND c4=2 THEN   ' # 5 2 2 ROLE2 KAPAMA
          SIFRE_2=0      
          ENDIF
           
       c1=0    
         c2=0
         c3=0
           c4=0
         GOTO DTMF1      
2. YAZILIM
Alıntı Yap
@ DEVICE pic16F628                                                    
@ DEVICE pic16F628, WDT_OFF              
@ DEVICE pic16F628, PWRT_ON
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT              
@ DEVICE pic16F628, PROTECT_OFF  
'***********************  DEĞİŞKEN VE SABİTLER  ******************
DTT VAR PORTA.1
CL VAR PORTA.0  
LE VAR PORTA.2    
REF VAR Word      
SW VAR Bit      
N VAR Word        
A VAR Byte        
X VAR WORD    
'***********************  AYARLAR  ********************************
CMCON=7                
OPTION_REG.7=1  
'***********************  GİRİŞ ÇIKIŞ AYARLARI  *******************
TRISA=%11111000  
TRISB=%11111111  
'*******************  DEĞER ATAMASI  ******************************
SW=0    
REF=320
N=115  
A=48    
'*******************  PROGRAM ANA BÖLÜM  ***************************
BASLA:
GoSub GONDER
GoTo BASLA
'*******************  PLL ENTEGRESİNE VERİ GÖNDER (ara program)  ****
GONDER:
DTT=0:CL=0:LE=0      
shiftout DTT,CL,1,[SW\1,REF\13,1\1]  
PulsOut LE,10
PAUSE 50                      
shiftout DTT,CL,1,[N\11,A\7,0\1]    
PulsOut LE,10                      
PAUSE 50
DTT=%0:CL=%0:LE=%0      
Return    

End
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]

piedos

iki programın da flow chartını oluşturup gönderirsen daha kolay yardımcı olabiliriz
Einstein: "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former."

karbal656

Yazılımı hangi pic için uyarlayacaksın?
16f628 mi ? 16f84a mı?

sozkarabacak

Kullandığım işlemci 16f628
http://picasaweb.google.com/33elektronik http://www.33elektronik.tr.cx MSN: [email]sukruozkarabacak@hotmail.com[/email]