butonla kontrolü led

Başlatan kotan04, 19 Şubat 2011, 20:33:15

dombilik

Çıkış sayısı yeterli değil ise daha fazla I/O su olan bir başka mikrodenetleyiciye geçebilirsin (örneğin;16F877)
ETE hocamın verdiği örnek program kodları hala geçerli.Sadece "device" ayarlarını ve register atamalarını
yeni denetleyiciye göre uyarlaman gerekir.
I/O sayılarını,denetleyiciyi değiştirmeden artırmanın farklı yolları var ama sanırım senin için en pratik yol
F877 kullanman..
Bildiklerini kime miras bıraktın?kimseyemi? O zaman bildiklerinin ne önemi kalır. ******** /////////// ******** PROTON-ASM PROTEUS 7.4 SP3 EAGLE 5.40

kotan04

hocam :S benim bu işlemi 628a ile yapmam gerekli nasıl yapabilirim ??
kkkkoootttaaannn000444

kotan04

uygulanmış halini gördüm başka biryerde
kkkkoootttaaannn000444

kotan04

ete hocam yardımlarınızı bekliyorum sabırsızlıkla
kkkkoootttaaannn000444

ete

Kotan04,
Amacın bize sonuna kadar programı yazdırmak mı? Eğer böyle ise zaten %50 sinden fazlasını hatta bana göre %90'ını yazdık bile zaten.
Geriye diğer pinleri ilave etmek kalıyor. Bunu da kesinlikle senin yapman gerek.
16F628 de toplam 18 adet pin vardır. Bunun 2 adedi besleme olduğuna göre geriye 16 adet pin kalıyor kullanılabilecek.
PortB.0 da buton kullandığına göre ve MCLR pinide giriş olabileceğine göre geriye kalıyor 14 pin.
Sen illaki 15 pinle bunu yapacağım diyorsun.Başka bir yerde de uygulamasını gördüm diyorsun.
Bende olamaz imkansız diyorum. Ayrıca sana tavsiye ediyorum "uygulamayı gördüğün yere git orada araştır bu istediğini".
Umarım aradığını bulursun.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

t2

#20
Çokda imkansız değil, butonu mclrye bağlamışlardır. ya da çıkış pinlerinden biri  direnç üzerinden butona bağlıdır. Bu pin kısa bir  süre giriş olarak davranıyor, buton basıldıysa kabul ediyor. sonra çıkış olarak ledleri sürmeye devam ediyor olabilir.

Maxim

Alıntı yapılan: t2 - 24 Şubat 2011, 15:14:28
Çokda imkansız değil, butonu mclrye bağlamışlardır. ya da çıkış pinlerinden biri  direnç üzerinden butona bağlıdır. Bu pin kısa bir  süre giriş olarak davranıyor, buton basıldıysa kabul ediyor. sonra çıkış olarak ledleri sürmeye devam ediyor olabilir.

evet o şekilde olabilir
ama ete hocaya katılıyorum, birazda kendi yapsın ne yapacaksa, bütün programı bizmi yazacağız ?

kotan04

hocam elbette sizin herşeyi yapmanız etik olmaz ama ete hocam ben kullanacağım  port sayısını belirmediğim için kesme ile örnek verdi şimdide ben diyorumki ben 15 adet pini çıkış olarak kullanacağım dolayısı ile bu yazılımı kesme ile yapmam anlamsız olacak çünkü kesmede rb 0 pinini butona bağlamam gerekiyor şimdide diyorumki kesme dışında bir örnek vermeniz mümkünmü ? örnek bir kod olursa onu referans alabilirim lütfen yardımcı olur arkadaşlar gerisi kendim çabalayarak yaparım inş yeterki kesme dışında bir örnek kod olsun
kkkkoootttaaannn000444

kotan04

ete hocam uygulamasını gördüm dediğimde şu şekilde mclr ucuna buton bağlanmış 15 adet pinide çıkış olarak kullanılmış  dolayısı ile kesmede 14 pin kullanmak gerekiyor bende diyorumki kesme dışında bir örnek vermeniz mümkünmü programı baştan sona yazmasanızda kafi olur referans olur benim için geliştireceğime inanıyorum malesef kesme ile mümkün olmadı olsaydı çok iyi olacaktı sizleri sinirlendirdiysem özür dilerim
kkkkoootttaaannn000444

ete

Biraz çalışsan yada kafanı çalıştırsan her şley,n elinin altında olduğunu anlayacaksın ama bir türlü nedense anlamak istemiyorsun.
İllaki birisi yapıp sana gösterecek.

Madem kesme kullanmak istemiyorsun. Kesme  kısmında yazılı olanları al  MCLR pini için değiştir ve programın üst kısmına yerleştir. Tek ilave etmen gereken şey tuşa basılmış mı onu test etmen. Gerisinde Portb nin bütün pinlerini devreye sok ve PortA nın diğer pinlerinide devreye sok.

Artık yap bir şeylerde kendini aş. Mevcut programa yalnızca bir veya 2 kısa satır ilave edeceksin hepsi bu.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

kotan04

ete hocam haklısınız kafayı zorluyorumda 2 işte çalışmak zor birde buna bakıyorum kafa allak bullak oluyor şimdi whıle wend döngüsü ile yapmaya çalışıyorum işin içinden tam olarak çıkamadım eğer referans bir kod olsaydı :).. neyse sinirlerinizi hoplattım
kkkkoootttaaannn000444

kotan04

#26
sayın ete hocam tek butonla 15 pinde  kontrol yaparak bu şekilde bir uygulama becerebildim devamınıda yazıyorum fakat şöyle bir sorun oluştu buton ile pinleri kontrolü sapıtıyor :S  çünkü led hareketlerinin altına yerleştirdim buton kontrolünü içinden çıkılmaz hale gelecek lütfen yardım edin
@ DEVICE pic16F628A                      'işlemci 16F628                                
@ DEVICE pic16F628A, WDT_on              'Watch Dog timer açık
@ DEVICE pic16F628A, PWRT_ON             'Power on timer açık
@ DEVICE pic16F628A, PROTECT_OFF         'Kod Protek kapalı
@ DEVICE pic16F628A, MCLR_off             'MCLR pini kullanılıyor.
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak 
TrisB=%00000000
TrisA=%00100000
OPTION_REG = $7f
in var PortA.5
PORTB=%00000000
porta=%00000000
CMCON=7
i var byte
i=0
Sayac var byte


clear

'***************************************
BAK:IF in=0 then BAK

   
   
   
   
   
   
   
   
    while  in=1
    
    led1:
    
    PORTB=%00000001
    PAUSE 250                                  
    PORTB=%00000011
    PAUSE 250                                
    PORTB=%00000111
    PAUSE 250
    PORTB=%00000011                                  
    PAUSE 250
    PORTB=%00000001
    if in = 1 then led2 
    wend
    pause 10
    IF in = 0 THEN led1
  

'***************************************
while in=1
LED2:

    PORTB=%00000001
    pause 250                               
    PORTB=%00000011                                 
    pause 250 
    PORTB=%00000111                                 
    pause 250 
    PORTB=%00001111
    pause 250 
    PORTB=%00000001                                
    pause 250 
    PORTB=%00000011                                 
    pause 250 
    PORTB=%00000111                                 
    pause 250 
    PORTB=%00001111

    if in = 1 then led3 
    wend
    pause 10
    IF in = 0 THEN led2
  

'***************************************
while in=1
LED3:
    PORTB=%00000001
    pause 250                                
    PORTB=%00000011
    pause 250                                 
    PORTB=%00000111                                 
    pause 250
    PORTB=%00001111                                  
    pause 250
    PORTB=%00011111 
    pause 250
    PORTB=%00000001                                
    pause 250
    PORTB=%00000011                                  
    pause 250
    PORTB=%00000111                                  
    pause 250
    PORTB=%00001111                                 
    pause 250
    PORTB=%00011111   
    pause 250
    
    if in = 1 then led1 
    wend
    pause 10
     
'***************************************
'if in=1 then led4     '  ...... led 15e kadar bu şekilde yapıyorum



end

kkkkoootttaaannn000444

ete

Kotan04,

Senin bir şey yaptığın yok maalesef. Tamamen kopyalama yaparak bir şeyler yapıyorsun ama yaptıkçada batıyorsun.
Benim gördüğüm sana hazır bir program lazım .
Bak şu yazdıklarına 15 pinden kontrol ancak böyle yapabildim diyorsun ama yaptıkların yalnızca 8 pin kontrolüne ait. Bak bakalım yazdıklarında A portu ile ilgili bir şey varmıdır? yalnızca PortB pinlerini kontrol ediyorsun. Üstelik işin mantığını açıklamış olmamıza rağmen , bir sürü örnek vermiş olmamıza rağmen sen kendi kafandan gidiyorsun. Çünki altyapın sıfır. Dost acı söyler. Bende alt yapını güçlendir otur derslere çalış ve sonra bu projeyi yap diyorum.
Yoksa bu işi yapabilmenin en ufak bir ihtimali bile yok. Bu şekilde bu iş yürümez. Biraz programlama mantığını öğrenmen gerekiyor.
Aksi halde dahada batacaksın. Programın tamamını yazmayacağımı söyledim. Bu işte yardım edilecek bir şey göremiyorum.
Daha öncede söyledim. Programın neredeyse %90 nını yazdım. Geriye bir buton değişikliği ve A portunu ilave etmek kalıyorki bunuda ancak bilen yapar. Ben yapmam .

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

kotan04

Alıntı yapılan: ete - 25 Şubat 2011, 21:03:22
Kotan04,

Senin bir şey yaptığın yok maalesef. Tamamen kopyalama yaparak bir şeyler yapıyorsun ama yaptıkçada batıyorsun.
Benim gördüğüm sana hazır bir program lazım .
Bak şu yazdıklarına 15 pinden kontrol ancak böyle yapabildim diyorsun ama yaptıkların yalnızca 8 pin kontrolüne ait. Bak bakalım yazdıklarında A portu ile ilgili bir şey varmıdır? yalnızca PortB pinlerini kontrol ediyorsun. Üstelik işin mantığını açıklamış olmamıza rağmen , bir sürü örnek vermiş olmamıza rağmen sen kendi kafandan gidiyorsun. Çünki altyapın sıfır. Dost acı söyler. Bende alt yapını güçlendir otur derslere çalış ve sonra bu projeyi yap diyorum.
Yoksa bu işi yapabilmenin en ufak bir ihtimali bile yok. Bu şekilde bu iş yürümez. Biraz programlama mantığını öğrenmen gerekiyor.
Aksi halde dahada batacaksın. Programın tamamını yazmayacağımı söyledim. Bu işte yardım edilecek bir şey göremiyorum.
Daha öncede söyledim. Programın neredeyse %90 nını yazdım. Geriye bir buton değişikliği ve A portunu ilave etmek kalıyorki bunuda ancak bilen yapar. Ben yapmam .

Ete


hocam anlaşılan siz benim sözlediklerimi eksik okuyorsunuz ben hiçbir zaman bana tamamen hazır program yazın demedim ben
kesme yöntemi ile 14 pin kullanabiliyorum dedim özet olarak bana farklı bir mantıkla yazmak için yardım istedim evet acemiyim kabul ediyorum referans kodlar üzerinde çalışıyorum bunuda kabul ediyorum ayrıca son eklediğim programın altında ne yazıyor birde onu okuyun programı yarım attım anlaşılacağını düşündüm onun için sadece 3 pine kadar kontrol yapan programı yarım yolladım ayrıca iletinizde( Bilgi hazinedir paylaştıkça büyür. ) demişsiz ozaman paylaşalım büyüsün birşeyleri biliyor olmanız insanlarla bu tarz üslupla konuşmanızı gerektirmez bir dost tavsiyesi
kkkkoootttaaannn000444

fatihkuzucu

Erol abi yanlış yapıyorsunuz. Aslında hiç kod vermeseniz daha iyi olur.

kotan programlama ile ugrasmıyorum. Basic hiç bilmem. sizin yazdıgınız programa baktım. Bu yazdıgınız programı 2-3 saat program yazan herhangi birisi dahi yazabilir. Bu kadar cahilsiniz birde kalkmıs eteyi paylasmıyorsunuz falan diye ignelemeye çalışıyorsunuz. Yuh denir buna.
Exp.Kits http://tinyurl.com/3qhs8pm   Küçük adamların, küçük fikirleri... Büyük adamların, büyük hayalleri...