pic 16f628a giriş komutu ile çıkışları sıfırlama

Başlatan Halil YILDIRIM, 19 Mart 2021, 13:17:20

Halil YILDIRIM

Merhaba arkadaşlar bir problemim var.Öncelikle şunu belirtim buradan çok şey öğrendim ve çok faydalı bir site olduğunu belirtmem gerekiyor.Sorunuma gelecek olursak ; pic16f628a ile yapmaya çalıştığım devreyi güzel bir şekilde yaptım ve çalıştı.Geliştirme aşamasında bir sorunla karşılaştım aslında sorun değilde bilgi eksikliği önümü kesti.Benim sorum şu şekilde olacak animasyon yapan butonsuz bir devrem animasyonu kısa bir süre sonra kesip ledleri devamlı yakıyor.başka bir pic16f628a çıkış ayağını high kullanarak ikinci pic 16f628a yı animasyon yaptıktan sonra devamlı yanar bir vaziyetteyken 1. pic ten gelen high komutunu giriş komutu olarak alarak tüm led yakan çıkış portlarımı sıfıra çekip 1. pic ten gelen high komutu sıfırlanınca ilk açılıştaki gibi animasyon yapmadan hepsi yanar vaziyette kaldığı yerden devam etmesini nasıl sağlayabilirim.Yani giriş bildirimi geldiğinde çıkış yaptığım portları sıfırlayıp giriş bildirimi gidince kaldığı yerden devam eden bir kod mu desem nasıl desem bilmiyorum.
void main()
{
TRISB=0B00000000;
PORTB=0;
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=0;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=0;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=0;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=0;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=0;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=0;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=0;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=0;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=0;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=0;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=0;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=0;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=0;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=0;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=0;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=0;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=0;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1; 


vs. devam edip en sonunda hepsi high olarak süresiz yanıyor

delay_ms(100);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;

}

Bu noktadan sonra bir giriş komutuyla portları sıfırlayıp baştaki  animasyonu yapmadan portları kaldığı yerden high olarak gelmesini nasıl sağlarım.şimdiden yardımlarınız için teşekkür ediyorum.Biraz acemiyim kodlarım uzun ve yorucu olabilir kısaltmaları ve atamaları bilmiyorum oyüzden kusura bakmayın okurken yormuş olabilirim sizi.. ::)  ::)  ::)

ete

Bir kaç kez mesajını okudum ama ne yazıkki bir anlam çıkartamadım. Ne istediğini anlamak çok zor gerçekten.
İlk okuduğumda sanki program sona geldikten sonra tekrardan başa dönüp ama port pinlerini HIGH yapan komut dizisini geçerek yeniden devam etmesini istiyorsun gibi geldi.
Bu arada PortB yi sıfırlamak için PORTB=0 demeyi akıl etmişsin ama benzer şekilde PORTB=255 (yada POETB=%11111111) demek aklına gelmemiş ve teker teker pinleri high yaptırmak için bir sürü kod yazmışsın. Bütün pinleri sıfırlaya bildiğin gibi tek bir komut ile bütün pinleri HIGH da yapabilirsin.
Ayrıca diğer animasyonların daha kısa ve döngü kurularak çalışabilen karşılıkları vardır. Onlara biraz kafa yorsan iyi olur.

Mesajınbir bölümünde ikinci bir pic den bahsediliyor ama o pic ne iş yapacak tam açık belli değil yada ben anlayamıyorum anlatım tarzından olsa gerek. Biraz daha detay verebilirsen belkii anlarım. Yada anlayan varsa tercüme ediversin lütfen.

Ete

ete

Ben direk C kodu şeklinde değilde akıl verecek kod şeklinde sana neyin nasıl yapıldığını açıklayayım sen onu kendi koduna çevir istersen.
Aşağıdaki kod örneği sırasıyla portb.0 dan başlayıp çıkışları sıfır yaparak ilerler.
SAYI=1:portb=255
for I=0 to 7
  portb=255-sayı
  sayı=sayı*2  
  delay(ms) 50
next

Aşağıdaki kod ise bunun tersini yapar. Bit7 den başlayarak bit0 a kadar çıkışı sıfırlayarak gelir.
portb=255
sayı=128
for ı=0 to 7
portb=255-sayı
sayı=say/2
Delay(ms) 50
next
aralarda PORTB=255 komutunun yer aldığını söylemeye gerek yok sanırım.
C dilinde her bir döngü bir fonksiyona çevrilip işlem otomatikleştirilir.
yada direk program satırı olarak bunları yazarsın.

Ete

Halil YILDIRIM

ete hocam bu işte yeniyim ama bir şekilde kodlar uzunda olsa ihtiyacım olanı bu zamana kadar yapabilmiştim.Yaptığım devre 2 pic ten oluşuyor.piclerin çıkışları ayrı mosfetlere bağlı.drain bacakları ortak olarak bağlı,bu nokta kırılma noktası oluyor.Animasyonlarda çakışma olmaması için 1. pic devreye girdiği zaman herhangi bir çıkış bacağı ile 2. pic teki tüm çıkışları low yapacak bir giriş kodu lazım.yani 1. pic bacağından 5v ile 2. pinde animasyonu sıfırlamadan yani tüm seçtiğim çıkışlar high modundayken bunları sıfır yapıp 1. pic devreden çıkınca kaldığı yerden devam eden yani animasyonu baştan başlatmayan bir kod lazım. Belki sorabilirsiniz 2. pic i kapatsana diye ama ozaman her açılışta animasyon geliyor ve bunu istemiyorum.

kayar sinyal , gündüz ledi ve ekstra açılış selamlaması yaptım.herşey süper çalışıyor.power ledleri kullandım.akımları sabitlemeyi başardım.hepsini en kısa yoldan en ucuz bir şekilde hallettim.
kayar led adı üstünde kayarak devreye giriyordu.o esnada gündüz ledi devreden çıkıyordu.ama gündüz ledi animasyonsuzdu.buna bir animasyon ekliyim dedim.hatta açılışta kontağı basınca selamlama yapsın sonra hepsi yansın istedim.ama her sinyalden sonra selamlamaya geçiyor.bunuda istemiyorum.devamlı açık kalırsa 2. pic im yani gündüz ledi ozaman çıkışlar çakışıyor sistem sapıtıyor.bunu bir mosfet ve röle ile 2. pin bağlı olduğu mosfetlerin gnd si ni ayırarak halledebilirim ama ekstradan mosfet ve röle kullanmak istemiyorum zaten bunun için baya bir mosfet kullandım söylemeye çekiniyorum :D devremin üzerinde çok çalıştım 2-3 ay dır uğraşıyorum.pic ile çok uğraştım sıfır bilgiyle inanılmaz yol aldım.pic ile elektronik devreleri birleştirmek kolay olmadı.ete hocam anlattıklarım karışık gelebilir ama nitekim devremde karışık olduğu için ilk başta anlamamanız normal.Sonuç olarak 1. pic in A Portundan (sinyal pic i )  giriş bacağı tanımlamasıyla  dışarıdan  5v volt verilerek (bunu verecek olan 1. pic olucak) bu ikinci pic imizin animasyon sonrasında hepsi high olan çıkışlarımızı bu 5v ile sıfırlayıp sonrasında sinyal bitene kadar tutacak ve sinyal kesilip 5v sıfır volta dönünce 2. pic kaldığı yerden yani high lardan devam edicek.yani benim açılışta selamlamalı yanan gündüz ledim her sinyal sonunda animasyonsuz hepsi yanıcak.bu kısma kadar devrem muazzam çalıştı.her sinyal sonrası animasyonlu başlıyor bunu istemiyorum.gündüz ledi pic ine giden enerjiyi devreyi sinyal geldiği zaman kapatırsam ki şuan öyle oluyor.baştan başlıyor.ben hep çalışsın ama başlangıçta animasyon olsun.sonrasında 1. pic müdalesiyle mevcut durumunu low şeklinde koruyup tekrar tümden high a yükselsin dedim.Ve beyin yakan tarihi yorum açıklamasını yapmış bulundum ete hocam umarım okurken ruh sağlığınızı bozmamışımdır  ::)  ::)

ete

"normal.Sonuç olarak 1. pic in A Portundan (sinyal pic i )  giriş bacağı tanımlamasıyla  dışarıdan  5v volt verilerek (bunu verecek olan 1. pic olucak)"
bana bu cümleyi açıkla yeter.
Her şeyi 1 nolu pic yapıyor gözüküyor yada sen heyecandan bazı şeyleri yanlış açıklıyorsun gibime geliyor.
1  nolu pic kendi kendinemi sinyal verecek anlaşılmıyor ne yapmak istediğin. Araya başka konuları karıştırma lütfen. Bir şeyi açıklarken yanlızca ona konsantre olmalısın. Araya başka laf sokarsan bende anlayamıyorum.
Anladığım şu, iki adet pic var. Yukarıda verdiğin program 1 nolu picde çalışacak. Çalışmaya başlamadan evvel A portundan bir pinden HIGH çıkartacak ve bu high 2 nolu pic'e gidecek ve onun bütün çıkışlarının low olmasını sağlayacak.

Yada şöylemi olacak?, İlk çalışmaya başlandığında 2 nolu pic bir pininden HIGH çıkartacak ve bu 1 nolu pic'e girecek. Bu high 1 nolu pic tarafından görülünce bütün pinleri LOW a çekilecek. Ardından? ne olacak bilemedim.

Yani bu kadar bilgi sahibisin yapman gereken hangisinden HIGH çıkacak ise o pini OUTPUT yapacaksın (tris registerinde o pine denk gelen pin değeri 0 olacak. Ardından Bu high seviyesini giriş olarak algılayacak olan işlemci ise sürekli olarak bu pine bakacak. Tabiiki giriş pinine karşılık gelen bit TRIS registerinde "1" olmalı. Bu pin 1 ise bütün çıkışları LOW yap demek de or olmasa gerek.

Ete

Halil YILDIRIM

Ete hocam bildiğimden yazmıyorum bazı şeyleri.pic ne verir 5v çıkış verir yada giriş alır osilatör takılır vs.Ete hocam ilk pini karıştırmayalım ozaman, ondan sinyal çalışırken devamlı high verecek boş bir ayağı elimizde zaten o cepte. 2. Pinimize nasıl bir kod yazabilirizki girişe 5v geldiği süre boyunca high olan bütün B portu çıkışları low olacak sonra ilk pic kapanıp 5v sıfıra çekilince low olan 2. Pin çıkışları animasyona high dan devam edicek ama başındaki animasyon olmayacak.Yani bir nevi full high modundan low moduna geçip pause yapmak ve tekrar full high modundan devam etmek gibi birşey. En kısa hali bu şekilde oldu heralde
Yada benim kodlarım ve bildiklerimi unutun. Elimde 5v volt var ve bunu ben kontrol ediyorum. Bu 5 volt ile pic imin tüm high larını low yapacak ve 5v volt sıfır olunca high dan devam edecek. Yani bana gerilimi sıfıra çeken pause lazım ama baştan başlatmadan yapacak.

İlyas KAYA

2 nci pic neden var ve ikinci pici ne durduracak ben halen anlamadım.
Bence siz yanlış bir durumu anlatmaya çalışıyorsunuz.
1 tane pic zaten bu işlemleri yapabilir neden 2nci pic var ?

Siz elektronik , yazılım,  pic vs bilmeyen biri olarak yani arabayı kullanan kişi olarak olayı anlatın.
Yani kullanıcı tarafında ki senaryoyu.

Misal;
-anahtarı kontağa taktik,  (anahtar takılmadan lambalar yanmayacak)
-lamba anahtarını açtığım anda su su olacak...

.. uzun farları açınca lamba animasyon yapmayacak , sadece anahtarı açıp ilk elektrik geldiği anda yapacak

..
Gibi gibi


Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

ete

Ya Halil anlatamıyor yada ben anlayamıyorum. Hala ne istediğini anlamış değilim.
Anlamadığım şeyi yapmam çok zor.
En iyisi oturup bir sistem senaryosu yaz bana kalırsa.
Bak ilk verdiğin program senaryosu şöyle ona bakarak kendi senaryonu yazabilirsin. Olması gerekeni yazman gerek tabiiki.
- Sistem açıldı
- PORTB nin bütün pinleri HIGH yapıldı
- PORTB.0 low yapıldı
- devamında bir sonraki pin LOW yapılarak PORTB.7 ye kadar gelinde her LOW dan sonra 50 ms gecikme uygulandı.
- Sonunda PORTB de yine bütün pinler HIGH yapıldı 50 ms beklendi
- Sonra PORTB.7 denbaşlanarak bütün pinler sırası ile LOW yapıldı aralarda 50 ms beklendi.
- ...
Bu şekilde devam ettir ve peşine ne yapmak istediğini ekle belki anlarız.

Ete

Halil YILDIRIM

Elimde bir devre var.1 adet pic ten oluşan ve pic16f628A olan.Bu halihazırda Kayar sinyal ve gündüz ledi devresi.port çıkışlarında  10k direnç sonrası mosfet kullandım.(transistör bu işin adamı değil kayıp çok oluyor akımı çok düşürüyor) devre röle ile başlıyor ve çalıştığı an sinyal modu yani pic devreye giriyor ve kayarak sinyal oluşuyor görevini yerine geitriyor.bu pic bunun için var kayar sinyal için yani.başında röle var demiştim.röle ise sinyal verildiği an gündüz ledi bacağını kesip sinyali çalıştırmak için vardı.yani bu pic devreye girmeyip sinyal olmadığı sürece gündüz ledleri yanıyor.Bu noktaya kadar ikinci pic devremde yoktu.Gündüz animasyonu olmadığı için 2. pic e de gerek yoktu.Yeni nesil araçlarda olan ince bir gündüz ledi vardır ve bu ledin olduğu yerde aynı zamanda kayar sinyal vardır.audilerdeki gibi düşünün.buraya kadar anlaşıldığımı düşünüyorum.şimdi gelelim esas meseleye ; gündüz ledi başlangıçta sinyal verilmediği için otomatik olarak çalışıyor.yani kontağı açtığımız gibi artı veren bir uç a bağlı olaraktan gündüz ledi yanıyor.Bu led e açılış selamlaması ekleme istedim.Bunuda sinyal pic inden almam mümkün değil çünki biri devreye girince öbürü çıkmak zorunda olduğunu farketmişsinizdir.2. pic bu yüzden var gündüz ledine açılışta animasyonlu selamlama yapması için.Şimdi bu pic her sinyalden sonra devreden kesilip her sinyalden sonra devreye girince sinyal sonrası selamlamalı başlıyor ve bunu istemiyorum.Animasyon yapan gündüz ledlerinin  en sonunda tüm bacakları high olduğunu düşünürsek ki devrem o şekilde çalışıyor zaten.Bu noktadan sonra pic e ne yaparsak tüm çıkışlar low olup daha sonra tekrar son high konumuna geçer ? pic kapanmayacak çünki başlangıç açılışı her araba çalışmasında olacak.Her sinyalden sonra kapanıp açılırsa animasyon devreye girer.İstemediğim noktası bu.
şuan devrem 1. pic çalışınca 2. pic olan gündüz ledini röle vasıtası ile kapatarak çalışıyor.Her kapat aç ta 2. pic baştan başlayıp gündüz ledini sinyal sonrası animasyonlu çalıştırıyor.Eğer kod ile çözümlenirse ben 2. pic ide röleden çıkararak devamlı çalışır hale getiricem.Bunu daha nasıl anlatabilirimki.Kodlara takıldınız onlar benim uzunca yazdığım kısaltmasını bilmediğim size göre basit olan led animasyon kodundan ibaret.Benim kodlarımın bi önemi yok sizinkiler önemli.

mesela karaşimşek kodu düşünün 5 sefer tekrarlayıp en sonunda ışıkların hepsi süresiz yansın diyelim.her elektriği kesip çalıştırdığınızda bu 5 sefer tekrarlayıp hepsi yanacak değilmi.İşte içine yazılabilecek harici bir kod ile giriş bacağından 5v verilirse eğer yani pull up mı deniyor (bu pull up ı da birinci pic devreye girdiği gibi ikinci pic e verecek yani buton kullanmıcaz buton 1. pic oluyor ) pic devamlı çalışacak ve bu 5 sefer tekrarlamayı sadece bir kere açılışta yapacak ve dışarıdan giriş bacağından 5v  vererek yazacağımız kod ile tüm ışıklarını söndürüp 5v giriş i geri çektiğimizde (yani 1. picten gelen 5v u sinyal kapanınca sıfıra çekilince)  ışıkların hepsi high olarak animasyonsuz tekrar yanmaya başlayacak.sinyal devresi pic inin 8 ayağı animasyon yaparve boşta olan bitaneside 2. pic e demin bahsettiğim gibi sinyal süresi boyunca devamlı high çıkararak pull up yapar.Benim istediğim bu.Ya vardır ya yoktur ete hocam.Yani yazılamıcak bir kod ise belki bunu istiyorum ve yazılamıcanı bilmiyorumdur.ama mevcut devremde anlattığım herşey çalışıyor.Siz benim devrem ve 1. pic imin üzerinde çok durup anlamaya çalıştıkça benden çok siz içinde kayboldunuz.Kendimi aciz ve birşey anlatamayan biri gibi hissettim.
ete hocam video linki eklicem. Video da 1. pic var yenisini yaptım 2 adet pic li ama videosunu çekemedim.yeni  devrede gündüz ledi ilk açılışta hep animasyonlu açılıyor.yani her seferinde pic sinyal bitiminde röle ona geçince enerji alıp animasyonlu çalışıp animasyon kodu sonrası devam kodu ile full yanıyor zaten attığım kodu biliyorsunuz.Yukarıda anlattıklarımı düşünürseniz belki video ile pekişir.Tabi bu animasyonsuz gündüz ledi.
Eğer yardımcı olamazsanızda sağlık olsun.En başta dediğim gibi mosfetlerin source bacaklarını röle ile yönetip anlatmaya çalıştığım şeyi ekstra röle ile yapıcam.

https://drive.google.com/file/d/1JO3r707OIuekNX4eP7V7lNk8kJLRWfGT/view?usp=sharing

Halil YILDIRIM

void main()
{
-----------------------------------------------------------------------------
EĞER BİRİ BANA BURADA DIŞARIDAN HERHANGİ BİR ATADIĞIM GİRİŞ OLACAK BACAĞIMA 5V VERİRSE BEN TÜM ÇIKIŞ OLARAK ATADIĞIM ÇIKIŞLARIMI LOW YAPIYORUM
5V VERİLEN GİRİŞ BACAĞIMDAN 5V KESİLİRSE BEN
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
BÖYLE YANMAYA DEVAM EDERİM.BAŞTAKİ ANİMASYONU ATLARIM BURADAN YOLUMA DEVAM EDERİM.TABİ ENTEGREME VERİLEN 5V BESLEMESİ KESİLİRSE BAŞTAN BAŞLARIM
------------------------

TRISB=0B00000000;
PORTB=0;
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=0;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=0;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=0;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=0;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=0;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=0;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=0;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=0;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=0;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=0;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=0;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=0;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=0;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=0;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=0;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=0;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;
delay_ms(50);
PORTB.RB0=0;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;


vs. devam edip en sonunda hepsi high olarak süresiz yanıyor

delay_ms(100);
PORTB.RB0=1;
PORTB.RB1=1;
PORTB.RB2=1;
PORTB.RB3=1;
PORTB.RB4=1;
PORTB.RB5=1;
PORTB.RB6=1;
PORTB.RB7=1;

}

Ete hocam bunu sizin için yazdım.Başka türlü yazmayı bilseydim zaten sormazdım hocam kusura bakmayın biraz komik oldu :)

ete

Komik olmadı şimdi neyi nerede istediğini nihayet anladım.
Programcılık dilinde IF yani Şayet input.x=1 ise portb=0
Değilse zaten bu komut satırı atlanır ve sıradan komutlar çalıştırılır.
Basic olsa direk yazar verirdim ama C dilinde yazıyorsun söylediklerime bakarak sen programa ekleyeceksin.
Öncelikle input pini ayarlamayı öğren bunu tris registeri ayarlar. TrisB , B portunu, TrisA ise A portunu ayarlar. 8 bitlik registerdir hangi biti 1 yaparsan ona karşılık gelen pin giriş olur. Daha sonra giriş oini nasıl test edilir onu öğren. Input komutu ike olması gerek araştır.
Ete

Halil YILDIRIM

Anladım ete hocam bunu sanırım yapabilirim ama hep başka dilde kaynağa rastladım heralde basic dilindeydi. En kolay yazdığım şekilde olanı kullanim dedim yani c diliymiş sizden öğrendim şimdi, dahası lazım olmaz diye giriş olan örneklerle ilgilenemedim öylede kaldı ama giriş komutlarıda lazım oldu şimdi.
Ete hocam çok teşekkür ederim vaktinizi aldım ve zahmet verdim.Biraz daha öğrenim eğer takılırsam gene yazarım hocam

Powered by EzPortal