if(RA0==0)

Başlatan deserteagle, 12 Mart 2007, 00:56:41

deserteagle

PİC C de Aşağıdaki gibi bir devredeki mesela 16f628 in poart a bit 0 ından mesela aşağıdaki gibi bir denetim ifadesi ile programı yonlendirebilirimiyiz.

TRISA=1;
TRISB=0;
while(1)
{
if(RA0==0)      //eğer butona basılırsa
{
RB1=1;
DelayUs(125);

vesaire gibi komutları işletebilirmiyiz.Burada daha değişik nasıl bilgi alabiliriz.yada daha fazla mesela 3 buton falanla nasıl programı yönlendirebiliriz.
saygılarımla.[/URL][/img]

arslan74

void main (void){
// RB0 giriş,
// RB1 cıkış,

TRISB=0b00000001;


while(1){

 if(!RB0) {  //eğer butona basılırsa

 RB1=1;
 DelayUs(125); 

 }
 else {

 RB1=0;
 DelayUs(125); 

 } // else end
} // while end
} // main end

arslan74

NOT: PORTA bazı PIC lerde analog girişlidir. acılışta analog olarak devreye girer öncelikle Analog girişleri dijitale cevirmen gerekli, buda PIC'in ceşidine göre faklılık gösteriyor. Kullandığın PIC in ceşidini belirtmediğin için cevab yazmadım. Ama böyle yaparsan sorun cıkmaz.

deserteagle

sayın arslan74 hocam  burada dijital-analog giriş olayını biraz açabilirmisiniz..877 ve 84 için farklılılık arzedermi.analogsa nasıl dönüştürebiirz.malum biraz yeniyiz de. :roll:
if(!RB0) {  //eğer butona basılırsa
burada
if(RB0!=1)
niye yapmadınız bu kısmı anlayamadım
!RB0 ne anlamda kullanılıyor.
bu arada yardımlarınız için çok teşekkür ederim
saygılarımla.

arslan74

16f877 entegresi acılışta RA portları analogdur. onları önce Dijitale cevirmen gerek. 16F84 de Analog giriş yoktur. Ona özel bir ayar gerektirmez.

ADCON1 = 0x06;	// Disable analog pins on PORTA


Şeklinde bir kod ile 877 entegresinin girişlerini dijitale cevirirsin.

deserteagle

arslan74 hocam 84 te denedim çalıştı.çok teşekkür ederim.bir soru daha sormak istiyorum.628 içinde bu analog- dijital ayarlamaya gerek varmıdır.
birde pic c nin mplab'a entegre edilip  nasıl kullanıldığı hakkında bilginiz varmı.şimdi düzelttim mplab yazacaktım.forumda matlab arıyordum kullanma falan aklım karışmış.tekrar kusura bakmayın.
saygılarımla.
// projem tamamlanınca buraya koyacağım.Benim gibi yeni öğrenenlere yardımcı olur.

zafzaf82

@deserteagle pic c ve Matlab apayrı dünyalar böyle bişey yapman imkansız yani. Ancak Matlab'da Embedded MATLAB block diye bişey var istersen o blogu mikroişlemci gibi kullanabilirsin. Ama tekrar söylüyorum Matlabda pic simülasyonu felan imkansız. Ama seri porttan felan devreye veri gönderip alcaksan olabilir.
Mikroişlemci bi araçtır, amaç değil.....

CLR

POR'da(Power on reset) F628'in A portu(A portunu kullanacaksan) comparator(karşılaştırıcı) olarak default'ur. Dolayısıyla portu digital giriş-çıkış yapmak için aşağıdaki satırı eklemelisin.

  CMCON    0x07;
Knowledge and Experience are Power

deserteagle

zafzaf hocam mesajı düzelttim.yine tekrar belirtiyim forumda matlaba bakıyodum mp lab yerine matlab yazmışım.mplaba nasıl entegre ediyoruz.

birde genel olarak bir picin çıkışlarını nasıl dijital veya analog olarak ayarlıyoruz.
saygılarımla..

arslan74

Alıntı Yapbirde genel olarak bir picin çıkışlarını nasıl dijital veya analog olarak ayarlıyoruz.
saygılarımla..

PIC in Analog cıkışları yoktur. Sadece bazı PIClerin analog girişleri vardır. Bu girişlerin ayarlanmasıda kullandığın analog girişli PIC in çeşidine göre değişebilir.

Bundan önceki mesajlarda bakarsan 16f877 ve 16f628 için nasıl dijitale cevrildiğine dair örnek var. Daha fazla bilgiler kullandığın PIC in Datasheetinde ayrıntılı bir şekilde anlatılıyor.

Selamlar.

xenitis

tek tek register ayarlarını burda sorarsanız bence çok zaman kaybedersiniz verimli de olmaz en güzel başvuru kaynağı o pice ait katalogdur katalogdan uygulama geliştirme öğrenilmesi zordur ama öğrenildikten sonra ilk başvuru kaynağı katalog olmalıdır gelelim sizin sorununuza buton uygulamaları en basit haliyle sizin yaptığınız şekilde çalışır ancak bu pic yalnız ve yalnız butonla ilgilenecekse çalışır daha doğrusu düzgün çalışır örneğin o sonsuz döngü içinde başka işlere zaman ayırırsanız butonun basılmasını algılaması güçleşir aradaki kodlar işletilirken siz butona basıp çekmiş olabilirsiniz vs. buton uygulaması b portuna ait kesmelerle en doğru şekilde yapılabilir kesmeleri inceleyin ve b portunun değişiminde tetiklenen kesme türlerini öğrenmeye çalışın bu size uzun vadede daha çok şey kazandırır çünkü kesmeler önemlidir
bu linki incelemenizde fayda var
kolay gelsin

mcan

Alıntı yapılan: "arslan74"
PIC in Analog cıkışları yoktur. Sadece bazı PIClerin analog girişleri vardır.  
hocam istisnalar kaideyi bozarsa 877a da vref çıkışı var :D bildiğim tek analog çıkışda bu

arslan74

Merhaba,

Alıntı Yaparslan74 demiş ki:

PIC in Analog cıkışları yoktur. Sadece bazı PIClerin analog girişleri vardır.
Alıntı Yap
hocam istisnalar kaideyi bozarsa 877a da vref çıkışı var Very Happy bildiğim tek analog çıkışda bu

PIC deki Vref ucları Voltaj cıkış ucları değildir. PIC ADC için kullanılan Voltaj referans giriş ucularıdır. Vref+ ve Vref- ucları analog voltajımızın giriş aralığını belirtmek için kullanılır.

PIC direkt DAC cıkışı yoktur. Ama PWM cıkışınına RC devresi bağlayarak bir çeşid DAC yapabilirsin.

Selamlar.

xenitis

Alıntı yapılan: "arslan74"Merhaba,

Alıntı Yaparslan74 demiş ki:

PIC in Analog cıkışları yoktur. Sadece bazı PIClerin analog girişleri vardır.
Alıntı Yap
hocam istisnalar kaideyi bozarsa 877a da vref çıkışı var Very Happy bildiğim tek analog çıkışda bu

PIC deki Vref ucları Voltaj cıkış ucları değildir. PIC ADC için kullanılan Voltaj referans giriş ucularıdır. Vref+ ve Vref- ucları analog voltajımızın giriş aralığını belirtmek için kullanılır.

PIC direkt DAC cıkışı yoktur. Ama PWM cıkışınına RC devresi bağlayarak bir çeşid DAC yapabilirsin.

Selamlar.
o çıkış test amaçlıdır yazıyor katalogda ancak çok yüksek empedanslı bir yükle de kullanılabilir yazıyor ek olarak

mesmert

Giriş portları pull up veya pull down olduğu zaman kullanılan komut nedir?