butona her bastığımda farklı işlem satırı işi yapmak istiyorum yardım edermisniz

Başlatan sifirzero, 02 Nisan 2016, 21:17:10

ayhani

Alıntı yapılan: sene35 - 05 Nisan 2016, 21:55:08
ustam resimde herşeyi anlatıyor.1.buton süre ikinci buton seçilen süreyi çalıştıracak.Allah razı olsun ustam

Dediğinizi yapan programın hex kodunu aşağıdan indirip deneyin. İstediklerinizi yapıyor, çalıştır butonuna bastığınızda ayar butonu devre dışı kalıyor, yani sistem çalışırken zaman ayarı yapamazsınız(Bunu özellikle yaptım emniyet için).

4 Mhz kristale göre program yazıldı.
https://onedrive.live.com/redir?resid=26160CAC57741911!467&authkey=!AHL8iEBNLuExkuU&ithint=file%2czip
En iyi bildiğim şey hiçbir şey bilmediğimdir.

dursuncemal



}
#include <main.h>
#include <DEFS_628.h>

//////////////////////////////////////////////////////////////////////////////////////////////////////
#define   _sure   ra0
#define   _start  ra1
#define   _stop   ra2

/////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned char _secim_goster[] = {0b00000001,0b00000010,0b00000100};
unsigned char _sureler[] = {5,8,10};

unsigned char _islem_point = 0;
unsigned char buton_gecikme = 5;
unsigned char maske = 0;
unsigned char sure_buf = 0;
unsigned char salise = 250;

/////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned char bitler = 0;
#bit  tus_izin   = bitler.0
#bit  start_biti = bitler.1
#bit  cikis_aktif = bitler.2
 


//////////////////////////////////////////////////////////////////////////////////////////////////////
#INT_RTCC
void  RTCC_isr(void) 
{

    if(cikis_aktif){ 
                           if(salise){salise--;
                           
                                      }else{
                                          salise = 250;
                                           
                                         if(sure_buf){ sure_buf--;}else{ cikis_aktif = 0; maske = 0; }
                                          
                                          }
    
    
                   }
    
    
    
    if( !ra0 & !ra1 & !ra2 ){tus_izin = 1; }
      
    if(buton_gecikme){

                        buton_gecikme -- ;
                        
                                                  if(tus_izin){
                                                          
                                                             if( _sure ){ _islem_point++;  tus_izin = 0; 
                                                             
                                                              
                                                             if(_islem_point == 3  ){ _islem_point =0; }
                                                             
                                                                                   
                                                              }
                                                            
                                                             
                                                             if(_start){   
                                                                        start_biti = 1; 
                                                                        cikis_aktif = 1;  
                                                                        tus_izin = 0;
                                                             
                                                                        
                                                                                       }
                                                             
                                                                if(_stop){maske = 0; cikis_aktif = 0; salise = 250;} 
                                                               
                                                              }
                        

                        }else{buton_gecikme  = 5;}



}

/////////////////////////////////////////////////////////////////////////////////////////////////////

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16|RTCC_8_bit);      //4,0 ms overflow

   enable_interrupts(INT_RTCC);
   enable_interrupts(GLOBAL);
   trisb = 0;
   trisa = 0x00000111;
   portb = 0;
  
   maske = 0;
   
   while(TRUE)
   {

         
    portb =  _secim_goster[_islem_point] | maske;
   
    
    if(start_biti){

                                     
                   maske =  _secim_goster[_islem_point] << 3;
                   
                   sure_buf = _sureler[_islem_point];
             
                   start_biti = 0;
                   }
           
           
      
   }

}
kodun son hali asagidadir anlayamadigin yer yada eksik var ise haberim olsun.
:=

sifirzero

dursun cemal kardeşim #byte PORTA  =0x05  burada hata verdi mainin üzerine yazdım.

enson gönderdiğinde #include <DEFS_628a.h>    burada hata vermeye başladı..ccs c compiler varsa denermisin

mesaj birleştirme:: 07 Nisan 2016, 13:45:49

@ayhani   ustam çalılıyor Allah razı olsun oldu.çok teşekkür ederim. ellerine kollarına sağlık.

mesaj birleştirme:: 07 Nisan 2016, 13:48:23

ayhani kardeşim sen bunu galiba flowcode ile yaptın.kodlardan birşey anlayamadım.flowcode baya iyi galiba.

mesaj birleştirme:: 06 Nisan 2016, 23:54:56

dursuncemal kardeşim  compile ettim enerji verdiğimde led direk yanıyor.led seçim yapıyor ama ikinci buton tek led yakıyor.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

dursuncemal

2. buton tek led yakmayacakmi ben yanlis anlamisim 2. butona basinca 1. gurupta hangi led yaniyorsa 2. gurupta ona karsilik gelen led semadaki uzerinde yazan zaman kadar acik kaliyor.ben boyle yazdim
yanlis anladi isem tam olarak tarif etmelisin. 3u birden uzerlerinde yazan saniye kadar mi calisacak.?
:=

ayhani

Alıntı yapılan: sene35 - 06 Nisan 2016, 23:42:39


ayhani kardeşim sen bunu galiba flowcode ile yaptın.kodlardan birşey anlayamadım.flowcode baya iyi galiba.



Flowcode bence süper bir program. Eğer flowcode bilseydiniz bu devreyi en fazla 15-20 dakikada  yapardınız.

Programın ekran görüntüsü aşağıda karar sizin. (Görüntü tam sayfaya sığsın diye biraz ufalttım, program karışık gibi gelebilir ama aslında basit)





mesaj birleştirme:: 07 Nisan 2016, 00:33:54

Alıntı yapılan: dursuncemal - 07 Nisan 2016, 00:03:59
2. buton tek led yakmayacakmi ben yanlis anlamisim 2. butona basinca 1. gurupta hangi led yaniyorsa 2. gurupta ona karsilik gelen led semadaki uzerinde yazan zaman kadar acik kaliyor.ben boyle yazdim
yanlis anladi isem tam olarak tarif etmelisin. 3u birden uzerlerinde yazan saniye kadar mi calisacak.?

Hocam burda arkadaş süre seçmeli yıldız üçgen yolverme rölesi yapmaya çalışıyor. 1. buton ile süreyi seçiyorsun. İkinci butona basıldığında hat ve yıldız kontaktörü çekecek, ayarlanan süre sonunda yıldız bırakıp üçgen çekecek. Üçüncü buton stop butonu.
En iyi bildiğim şey hiçbir şey bilmediğimdir.

sifirzero

Hocam super bu flowcode crackli ful surumu varmi nereden indirebiliriz.

mesaj birleştirme:: 07 Nisan 2016, 01:03:52

Bende kod yazcam diye uğraşiyorum.hex e çeviriyormu program bunu microchip aldi diye duymuştum dogrumu bilmiyorum
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

dursuncemal

:)=)) 12 volltan daha buyuk voltaj gormedigim gibi konuyada fransiz kalmisim. peki stopta hat kontaktorude brakacak mi.

:=

ayhani

Alıntı yapılan: sene35 - 07 Nisan 2016, 01:02:38
Hocam super bu flowcode crackli ful surumu varmi nereden indirebiliriz.

mesaj birleştirme:: 07 Nisan 2016, 17:03:52

Bende kod yazcam diye uğraşiyorum.hex e çeviriyormu program bunu microchip aldi diye duymuştum dogrumu bilmiyorum

Evet hexe kendi çeviriyor, microchip aldığına dair bir şey duymadım.

6 sürümü var ama ben size daha sade arayüzlü olan 5 sürümünü tavsiye ederim.
Aşğağıdaki linkte ücretsiz sürümü var, ücretsiz sürüm ile belli başlı picleri 2kb'a kadar programlayabiliyorsunuz.

http://www.matrixmultimedia.com/flowcode/portal.php?u=0&v=5.01&p=Flowcode_PIC&k=F2P0JH-WUK7B9&d=0&l=Professional&r=yes&t=tr



Birde aşağıdaki linkte anlattığım şekilde flowcode'un kendi sitesinde 6 versiyonunu indirip cracksız sınırsız kullanabilirsiniz . 6 versiyonunu flowcodun kendi sitesinden indirin(30 gün full özellikte çalışıyor)

https://www.picproje.org/index.php/topic,59321.msg458818.html#msg458818




mesaj birleştirme:: 08 Nisan 2016, 00:40:30

Alıntı yapılan: dursuncemal - 07 Nisan 2016, 01:46:12
:)=)) 12 volltan daha buyuk voltaj gormedigim gibi konuyada fransiz kalmisim. peki stopta hat kontaktorude brakacak mi.



Evet stopta tüm çıkışlar kapatılacak.
En iyi bildiğim şey hiçbir şey bilmediğimdir.

sifirzero

Stopta evet birakacak.startta hat yildiz caliscak belirlenen surede yildiz duracak ucgen yanacak
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

dursuncemal

bu sefer tamamdir sanirsam denedikten sonra sonucu yazarsan sevinirim.
#include <main.h>
#include <DEFS_628.h>

//////////////////////////////////////////////////////////////////////////////////////////////////////
#define   _sure     ra0
#define   _start  ra1
#define   _stop   ra2

/////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned char _secim_goster[] = {0b00000001,0b00000010,0b00000100};
unsigned char _sureler[] = {5,8,10};

unsigned char _islem_point = 0;
unsigned char buton_gecikme = 5;
unsigned char maske = 0;
unsigned char sure_buf = 0;
unsigned char salise = 250;

/////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned char bitler = 0;
#bit  tus_izin   = bitler.0
#bit  start_biti = bitler.1
#bit  cikis_aktif = bitler.2

//////////////////////////////////////////////////////////////////////////////////////////////////////
#INT_RTCC
void  RTCC_isr(void) 
{

       
    
     if(sure_buf){  
                  if(salise){salise--;}else{salise = 250; sure_buf--;}
                  if(!sure_buf){maske = 0b00011000;}
                 } 
    
    
    
   
      
    if(buton_gecikme){ buton_gecikme -- ;}else{
                        
                                                  if(tus_izin){
                                                          
                                                             if( _sure ){ if(_islem_point < 2){ _islem_point++; }else{ _islem_point = 0; } tus_izin = 0;  }
                                                                                                                       
                                                             if(_start){ start_biti = 1; tus_izin = 0; }
                                                             
                                                             if(_stop){ maske = 0;  salise = 250; } 
                                                               
                                                              }
                        
                                                               buton_gecikme = 5;
                                                   }


                       if( !ra0 & !ra1 & !ra2 ){tus_izin = 1; } 
}

/////////////////////////////////////////////////////////////////////////////////////////////////////

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16|RTCC_8_bit);      //4,0 ms overflow

   enable_interrupts(INT_RTCC);
   enable_interrupts(GLOBAL);
   trisb = 0;
   trisa = 0x00000111;
   portb = 0;
  
   maske = 0;
   
   while(TRUE)
   {


         
    portb =  _secim_goster[_islem_point] | maske;
   
    
    if(start_biti){

                   maske =  0b00101000;
                   
                   sure_buf = _sureler[_islem_point];
                   
                   salise = 250;
             
                   start_biti = 0;
                   
                   }
           
           
      
   }

}
:=

sifirzero

ustam olmamış kusuruma bakma bunu yazmak istemezdim gayretini yardımını takdir ediyorum Allah razı olsun kandilin mübarek olsun.butona bastığımda ikinci bastığımda yine aktif oluyor ilk bastığımda tekrar basmama izin vermemsi gerekiyor.  ledlerin sırası yanlış yanıyor.enerji verdiğimde ilk led yanıyor.ellerine sağlık.
sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir

dursuncemal

#include <main.h>
#include <DEFS_628.h>

//////////////////////////////////////////////////////////////////////////////////////////////////////
#define   _sure     ra0
#define   _start  ra1
#define   _stop   ra2

/////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned char _secim_goster[] = {0b00100000,0b00010000,0b00001000};
unsigned char _sureler[] = {5,8,10};

unsigned char _islem_point = 0;
unsigned char buton_gecikme = 5;
unsigned char maske = 0;
unsigned char sure_buf = 0;
unsigned char salise = 250;

/////////////////////////////////////////////////////////////////////////////////////////////////////

unsigned char bitler = 0;
#bit  tus_izin   = bitler.0
#bit  start_biti = bitler.1
#bit  cikis_aktif = bitler.2

//////////////////////////////////////////////////////////////////////////////////////////////////////
#INT_RTCC
void  RTCC_isr(void) 
{

       
    
     if(sure_buf){  
                  if(salise){salise--;}else{salise = 250; sure_buf--;}
                  if(!sure_buf){maske = 0b00000101;}
                 } 
    
    
    
   
      
    if(buton_gecikme){ buton_gecikme -- ;}else{
                        
                                                  if(tus_izin){
                                                          
                                               if(!sure_buf){
                                                             if( _sure ){ if(_islem_point < 2){ _islem_point++; }else{ _islem_point = 0; } tus_izin = 0;  }
                                                                                                                       
                                                             if(_start){ start_biti = 1; tus_izin = 0; }
                                                             }
                                                          
                                                             if(_stop){ maske = 0;  salise = 250; sure_buf = 0; tus_izin = 0;}
                                                               
                                                              }
                        
                                                               buton_gecikme = 5;
                                                   }


                       if( !ra0 & !ra1 & !ra2 ){tus_izin = 1; } 
}

/////////////////////////////////////////////////////////////////////////////////////////////////////

void main()
{
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16|RTCC_8_bit);      //4,0 ms overflow

   enable_interrupts(INT_RTCC);
   enable_interrupts(GLOBAL);
   trisb = 0;
   trisa = 0x00000111;
   portb = 0;
  
   maske = 0;
   
   while(TRUE)
   {


         
    portb =  _secim_goster[_islem_point] | maske;
   
    
    if(start_biti){

                   maske =  0b00000011;
                   
                   sure_buf = _sureler[_islem_point];
                   
                   salise = 250;
             
                   start_biti = 0;
                   
                   }
           
           
      
   }

}
sanada hayirli kandiller kardesim.
olmayacagini tahmin etigim icin donus yap diyorum surekli.ayrica programdaki kritik durumlari ben bilememki senin belirtmen gerekir.led dizilimlerindeki sikintilari duzeltebilecegini tahmin ederek hic dikkat etmedim.ayrica programi calistirma sansimda yok dolayisi ile surekli geri donus beklemem ondan. bak bakalim buda olmamismi?
:=

sifirzero

sifirzero.blogspot.com [email]sifirrzero@gmail.com[/email] iman hem nurdur hem kuvvettir


t2

sene35,  Denemek için kodu hexe çevirmiyor musunuz? 
kod başka bir derleyicide veya editörde derlenip hex olabiliyor mu ki?   

Alıntı yapılan: sene35 - 08 Nisan 2016, 06:01:18
USTAN SEN BU kodları nerede yazıyorsun.dev c++ damı yoksa pic c compiler damı.