biraz beklersen sana kendi kullandığım programı göndereyim. Hitech firmasının HI-TIDE derleyicisi var. C derleyicisi onun paket halinde kurulumu var elimde saat 17 den sonra upload ederim onu kullanırısın. mplab a falan gerek kalmıyor.
biraz beklersen sana kendi kullandığım programı göndereyim. Hitech firmasının HI-TIDE derleyicisi var. C derleyicisi onun paket halinde kurulumu var elimde saat 17 den sonra upload ederim onu kullanırısın. mplab a falan gerek kalmıyor.
Ben pic c arıyorum.Sanırım bu program bu değil.Acaba pic c paylaşabilecek olan var mı?
Bu program pic c yi ve derleyicisini içinde bulunduran bir program. HI-TIDE sadece c kodu yazmak içiçn arayüz. derleme işlemi yine picc ile yapılıyor. Normalde picc yi kurup mplab da kod yazıp mplab içinden derlemeyi pic c ye yaptırırsın. Fakat bu program sayesinde mplab a gerek kalmıyor kodlarını HI-TIDE üzerinde yazıp derle dediğin zaman direk derleniyor. Ayrıca yazdığın kodu öalıştırıp inceleyebiliyorsun. Eğer beklerseniz bu başlık altında nasıl kod yazılıp derleneceğini resimli olarak göstereceğim.Örnek programlar vereceğim.
Kaldığımız yerden devam ediyoruz. Dünki mesajımda yeni bir projeye nasıl başlanacağını göstermiştim. Şimdi o adımları bildiğinizi varsayıp basit bir kod ile neler olduğunu anlatmaya çalışacağım.
1)Yukarıda anlatılan şekilde yeni bir projeye başlayın.Pic olarak 16f628a seçin 2)main.c sayfasını açınız. 3)Karşınızda boş bir sayfa göreceksiniz.Sayfada //TO DO ile başlayan yazıyı silebilirsiniz ve kodunuzu oraya yazabilirsiniz.
Yazdığınız kodu denemeniz için ekte Proteus dosyalarını gönderiyorum. Şema 6.9 Sp5 te hazırlanmıştır. Fakat pakete hex kodlarını dahil etmedim onu size bırakıyorum http://rapid-share.com/files/21531757/Program_1.rar İndirmek için "-" işaretini siliniz.
Şimdililk bu kadar.Hatalarım varsa affola. Devamı gelecektir. Kod çok basit olabililr. Fakat bir sıraya göre gitmeyi düşünüyorum. Takip ettiğim kitap "PIC PROGRAMLAMA 16F628A" dır. Yazarı Orhan Altınbaşak. Orda kodlar asm ile verilmiş. Ben onları c diline uyarlıyorum. Bazen birebir uayrlama kolay oluyor bazen se kendi mantığımı kullanıyorum.
Kaldığımız yerden devam ediyoruz. Dünki mesajımda yeni bir projeye nasıl başlanacağını göstermiştim. Şimdi o adımları bildiğinizi varsayıp basit bir kod ile neler olduğunu anlatmaya çalışacağım.
1)Yukarıda anlatılan şekilde yeni bir projeye başlayın.Pic olarak 16f628a seçin 2)main.c sayfasını açınız. 3)Karşınızda boş bir sayfa göreceksiniz.Sayfada //TO DO ile başlayan yazıyı silebilirsiniz ve kodunuzu oraya yazabilirsiniz.
Yazdığınız kodu denemeniz için ekte Proteus dosyalarını gönderiyorum. Şema 6.9 Sp5 te hazırlanmıştır. Fakat pakete hex kodlarını dahil etmedim onu size bırakıyorum http://rapid-share.com/files/21531757/Program_1.rar İndirmek için "-" işaretini siliniz.
Şimdililk bu kadar.Hatalarım varsa affola. Devamı gelecektir. Kod çok basit olabililr. Fakat bir sıraya göre gitmeyi düşünüyorum. Takip ettiğim kitap "PIC PROGRAMLAMA 16F628A" dır. Yazarı Orhan Altınbaşak. Orda kodlar asm ile verilmiş. Ben onları c diline uyarlıyorum. Bazen birebir uayrlama kolay oluyor bazen se kendi mantığımı kullanıyorum.
biraz beklersen sana kendi kullandığım programı göndereyim. Hitech firmasının HI-TIDE derleyicisi var. C derleyicisi onun paket halinde kurulumu var elimde saat 17 den sonra upload ederim onu kullanırısın. mplab a falan gerek kalmıyor.
Ben pic c arıyorum.Sanırım bu program bu değil.Acaba pic c paylaşabilecek olan var mı?
Bu program pic c yi ve derleyicisini içinde bulunduran bir program. HI-TIDE sadece c kodu yazmak içiçn arayüz. derleme işlemi yine picc ile yapılıyor. Normalde picc yi kurup mplab da kod yazıp mplab içinden derlemeyi pic c ye yaptırırsın. Fakat bu program sayesinde mplab a gerek kalmıyor kodlarını HI-TIDE üzerinde yazıp derle dediğin zaman direk derleniyor. Ayrıca yazdığın kodu öalıştırıp inceleyebiliyorsun. Eğer beklerseniz bu başlık altında nasıl kod yazılıp derleneceğini resimli olarak göstereceğim.Örnek programlar vereceğim.
Yani pic c programında kullanılan bir dille yazılmış olan bir c kodunu bu derleyiciyle derleyebilirim değil mi?
muzoo kardeş sana bir sorum var ve diğer arkdaşlara da birz konu dışı ama sorayım ben gine de Arkadaşlar bir konuda yardımınıza ihtiyacım var. sorun şu: Şimdi mıknatıs takılıyken yazı hep belirli bir noktada oluşuyor. ben mıknatısı çıkardım ve DELAYMS(20) yaptım yani tam motora göre ayarladım. sonra motor hareket ettiğinde yazı yavaşça hareket ediyor dönüyor. yani resmen havada kayan yazı gibi oluyor.AMA bmyle dönerken birden yazı öteki tarafa atlıyor. yine ne güzel dönüyor yavaşça yine aynı pat diye yazı atlıyor niye böyle oluyor????? lütfen bişeyler söyleyin video:: < Resime gitmek için tıklayın > http://www.youtube.com/watch?v=Sa9HXglpjqU evet arkadaşlar bu sorun mu değil mi???
Aklıma takılan şu aslında. NOrmalde yazının aynı yerde görünmesi iççn programda ayarlanan zamanlama ile motorun zamanlamasının tutması gerekiyor değil mi?Sallıyorum normalde yazının başlangıcı (düzlemi bir saat olarak düşünelim) saat 11 noktasında oluyor. aynı yerde görünmesi için programın hep aynı noktada tekrar edip başlaması lazım. Ama senin çalışmanda sanki motor devri ile programdaki gecikme tam oturmuyormuş gibi geldi. Daha öncede demiştim böyle bir çalışma yapmadığım için sadece tahmin yürütüyorum.
Denemeler-2
Bir önce ki yazıda basit bir şekilde çıkışların nasıl kullanılacağını göstermiştim. Bu sefer ise girişten alınan bilgiye göre çıkışın değiştirilmesi mantığıyla çalışan yine basit bir kod vereceğim.
Daha önce anlatıldığı gibi yeni bir proje açıyoruz.Pic olarak 16f628a kullanıyoruz.Aşağıda gerekli kodları veriyorum
quote:
#include <htc.h>
void main(void) { PORTB=0x00;------>PORTB'ye başlangıç değeri olarak sıfır atanıyor TRISB=0x00;------>PORTB çıkış olarak ayarlanıyor. CMCON=0x07;------>PORTA'nın ilk 4 pini normalde analog moddadır.Bunu lojik giriş çıkış ayarlayabilmek için CMCON saklayıcısına 0x07 değeri atanması gerekir. //PORTA=0x00;------>PORTA'ya başlangıç değeri olarak sıfır yükleniyor TRISA=0xFF;------>PORTA giriş olarak ayarlanıyor.
for(;;){------>PIC'lerde durdurma komutu yoktur.Bu yüzden program bittikten sonra durmak istenirse sonsuz döngü kullanmak gerekir.Fakat bu durumda pic resetlenmeden program başa dönmez.Sürekli çalışması gereken programlarda ise kodda görüldüğü gibi çalıştırmak istediğimiz kod sonsuz döngünün içine yazılır bu sayede sürekli çalışan bir kodumuz olur. PORTB=PORTA;------>Giriş bilgileri çıkışa aktarılıyor }
Yazdığınız kodu denemek için gerekli olan ISIS dosyası ekte verilmiştir (v6.9 Sp5). Benzeşim sırasında anahtarlı açıp kapayarak programın verdiği tepkiyi görebilirsiniz.Hex dosyasıni vermedim. Onu siz halledersiniz
Aklıma takılan şu aslında. NOrmalde yazının aynı yerde görünmesi iççn programda ayarlanan zamanlama ile motorun zamanlamasının tutması gerekiyor değil mi?Sallıyorum normalde yazının başlangıcı (düzlemi bir saat olarak düşünelim) saat 11 noktasında oluyor. aynı yerde görünmesi için programın hep aynı noktada tekrar edip başlaması lazım. Ama senin çalışmanda sanki motor devri ile programdaki gecikme tam oturmuyormuş gibi geldi. Daha öncede demiştim böyle bir çalışma yapmadığım için sadece tahmin yürütüyorum.
Denemeler-2
Bir önce ki yazıda basit bir şekilde çıkışların nasıl kullanılacağını göstermiştim. Bu sefer ise girişten alınan bilgiye göre çıkışın değiştirilmesi mantığıyla çalışan yine basit bir kod vereceğim.
Daha önce anlatıldığı gibi yeni bir proje açıyoruz.Pic olarak 16f628a kullanıyoruz.Aşağıda gerekli kodları veriyorum
quote:
#include <htc.h>
void main(void) { PORTB=0x00;------>PORTB'ye başlangıç değeri olarak sıfır atanıyor TRISB=0x00;------>PORTB çıkış olarak ayarlanıyor. CMCON=0x07;------>PORTA'nın ilk 4 pini normalde analog moddadır.Bunu lojik giriş çıkış ayarlayabilmek için CMCON saklayıcısına 0x07 değeri atanması gerekir. //PORTA=0x00;------>PORTA'ya başlangıç değeri olarak sıfır yükleniyor TRISA=0xFF;------>PORTA giriş olarak ayarlanıyor.
for(;;){------>PIC'lerde durdurma komutu yoktur.Bu yüzden program bittikten sonra durmak istenirse sonsuz döngü kullanmak gerekir.Fakat bu durumda pic resetlenmeden program başa dönmez.Sürekli çalışması gereken programlarda ise kodda görüldüğü gibi çalıştırmak istediğimiz kod sonsuz döngünün içine yazılır bu sayede sürekli çalışan bir kodumuz olur. PORTB=PORTA;------>Giriş bilgileri çıkışa aktarılıyor }
Yazdığınız kodu denemek için gerekli olan ISIS dosyası ekte verilmiştir (v6.9 Sp5). Benzeşim sırasında anahtarlı açıp kapayarak programın verdiği tepkiyi görebilirsiniz.Hex dosyasıni vermedim. Onu siz halledersiniz
yaw bende girişteki bilgileri çıkışa nasıl atılır die düşündüm aklım PORTB = PORTA geldi kodu derledim proteus'ta simulasyonunu yaparken yanlış çalışıyordu demek ki CMCON'u ayarlıyormuşuz. Bir soruda bu bilgileri sen nasıl elde ettin acaba bu konuda da bilgi verebilirmisin. bu arada çalışmaların için teşekkürler...
En baştan başlarsak c öğrenmek için C ve C++ adlı kitabı aldım.Sanırım sistem yayıncılık yazarlarından birinin adı Deitel'di. Daha sonra pic'e merak sarınca Altaş yayınlarından Pic Programlama 16f628 kitabını aldım. Kitapta kodlar asm dili ile verilmişti. Asm yi de sağolsun okulda z80 dersinde gördüm. Her ne kadar farklı olsa da mantığı benzerdi. Daha sonra bu pic kitabındaki kodları asm ye uyarlamaya çalıştım. Ondan sonra gerisi geldi. Ben de daha bu işte acamiyim ama uğraşmaya çalışıyorum boş buldukça.
Denemeler-3
Bu gün if/else yapısıyla yapılmış basit bir kod ve bir butona 15 defa basılınca (sayaç uygulaması) bir ledin yanmasını sağlayan bir uygulama yapılacaktır.Sayaç uygulamasında geciktirme döngüleri kullanılmadığı için. Benzeşim sırasında frekansın düşürülmesi gerekmektedir (ben 6khz olarak kullandım) Daha yüksek hızlarda kod istenildiği gibi çalışmayacaktır.
quote:
Kodun değişmeyen kısımlarını vermedim sadece bizim yazdığımı kodu ekledim
PORTB=0x00;-------------->Portb başlangıç değeri sıfır olarak ayarlandı TRISB=0xFE;-------------->RB0 çıkış diğerleri giriş olarak ayarlandı TRISA=0xFF;-------------->Porta giriş olarak ayarlandı CMCON=0x07;-------------->RA0-RA3 pinleri lojik giriş çıkış olarak ayarlandı
for(;;)-------------->Sonsuz döngü { if(RA0==0)-------------->Eğer RA0 giriş değeri sıfır ise RB0 daki ledi söndür. RB0=0;-------------->Ledi söndürme kısmı else-------------->Yok eğer (başka türlü anlam bulamadım) RA4 sıfır ise if(RA4==0)-------------->RA4 ün kontrol edildiği yer. RB0=1;-------------->RB0 daki ledi yak }
İkinci kodumuz ise bir butona 10 defa basıldığında ledi yakacak olan bir sayaç uygulaması. For ve while döngüleri ile hazırlanmıştır. İçinde basit bir geciktirme rutini vardır fakat mikrosaniyeler civarında geciktirme yaptığı için tavsiyem 5-6Khz pic hızında test edilmelidir. Geciktirme yeterli olmadığı için 1 Mhz de butona bir defa bastığınızda led yanacaktır.
quote:
int i=10,a;-------------->int tipinde değişkenler tanımlanıyor PORTB=0x00;-------------->Portb başlangıç değeri sıfır TRISB=0xFE;-------------->RB0 çıkış olarak diğer B pinleri giriş olarak tanımlanıyor. TRISA=0xFF;-------------->A portunun tüm pinleri giriş CMCON=0x07;-------------->A portunun ilk 4 pini içiçn lojik çalışma biçimi ayarlanıyor
while(i>0)-------------->i değeri sıfırdan büyük oldukça tekrar et { a=15;-------------->Geciktirme döngüsü içiçn tekrar değer atanması if(RA0==0)-------------->eğer RA0 pininin değeri sıfıra eşitse { for(a=15;a>0;--a);-------------->Basit bir geciktirme döngüsü.15 ten geriye doğru sıfır olana kadar sayar sonra döngüden çıkar
i=i-1;-------------->i değerini bir azalt ve tekrar i ye ata burada i-- komutu da kullanılabilirdi } }
RB0=1;-------------->i değeri sıfıra ulaştığında yani butona 10 defa basıldığında program buraya gelecek ve RB0 daki ledi yakacaktır. for(;;);-------------->Sonsuz döngü
Ben pic c arıyorum.Sanırım bu program bu değil.Acaba pic c paylaşabilecek olan var mı?
Bu mesaja 2 cevap geldi. Cevapları Gizle
Bu program pic c yi ve derleyicisini içinde bulunduran bir program. HI-TIDE sadece c kodu yazmak içiçn arayüz. derleme işlemi yine picc ile yapılıyor.
Normalde picc yi kurup mplab da kod yazıp mplab içinden derlemeyi pic c ye yaptırırsın. Fakat bu program sayesinde mplab a gerek kalmıyor kodlarını HI-TIDE üzerinde yazıp derle dediğin zaman direk derleniyor. Ayrıca yazdığın kodu öalıştırıp inceleyebiliyorsun. Eğer beklerseniz bu başlık altında nasıl kod yazılıp derleneceğini resimli olarak göstereceğim.Örnek programlar vereceğim.
Bu mesaja 2 cevap geldi. Cevapları Gizle
Kaldığımız yerden devam ediyoruz. Dünki mesajımda yeni bir projeye nasıl başlanacağını göstermiştim. Şimdi o adımları bildiğinizi varsayıp basit bir kod ile neler olduğunu anlatmaya çalışacağım.
1)Yukarıda anlatılan şekilde yeni bir projeye başlayın.Pic olarak 16f628a seçin
2)main.c sayfasını açınız.
3)Karşınızda boş bir sayfa göreceksiniz.Sayfada //TO DO ile başlayan yazıyı silebilirsiniz ve kodunuzu oraya yazabilirsiniz.
Aşağıdaki resimde basit bir kod verilmiştir.
< Resime gitmek için tıklayın >
Tam ekran görmek için :https://store.donanimhaber.com/01/c2/c3/01c2c3ff066c5c84e3c77fef4757c724.gif
Şimdi buradaki kodun ne yaptığını basitçe şöyle özetleyebiliriz. Pic'in B portuna bağlı ledleri 2 yanık 2 sönük durumunda tutar.
Çalışan kodun isis görüntüsü eklenmiştir.
< Resime gitmek için tıklayın >
Tam ekran görmek için:https://store.donanimhaber.com/d8/a0/1a/d8a01a60fcf690195c24ba7c52ccb4e7.gif
Yazdığınız kodu denemeniz için ekte Proteus dosyalarını gönderiyorum. Şema 6.9 Sp5 te hazırlanmıştır. Fakat pakete hex kodlarını dahil etmedim onu size bırakıyorum
http://rapid-share.com/files/21531757/Program_1.rar
İndirmek için "-" işaretini siliniz.
Şimdililk bu kadar.Hatalarım varsa affola. Devamı gelecektir. Kod çok basit olabililr. Fakat bir sıraya göre gitmeyi düşünüyorum. Takip ettiğim kitap "PIC PROGRAMLAMA 16F628A" dır. Yazarı Orhan Altınbaşak. Orda kodlar asm ile verilmiş. Ben onları c diline uyarlıyorum. Bazen birebir uayrlama kolay oluyor bazen se kendi mantığımı kullanıyorum.
< Bu mesaj bu kişi tarafından değiştirildi muuzoo -- 17 Mart 2007; 23:40:19 >
Bu mesaja 2 cevap geldi. Cevapları Gizle
http://rapid-share.com/files/11425977/ccs_book.rar.html
Nigel gardnerin kitabı güzel,internette Türkçesi de dolaşıyor.
Birini bilen diğerine rahat geçiş yapabilir.
Sonunuz iar olacak...
kardeş ellerine sağlık çok güzel olmuş....
Bu mesaja 1 cevap geldi. Cevapları Gizle
Yani pic c programında kullanılan bir dille yazılmış olan bir c kodunu bu derleyiciyle derleyebilirim değil mi?
Bu mesaja 1 cevap geldi. Cevapları Gizle
Arkadaşlar bir konuda yardımınıza ihtiyacım var.
sorun şu: Şimdi mıknatıs takılıyken yazı hep belirli bir noktada oluşuyor.
ben mıknatısı çıkardım ve DELAYMS(20) yaptım yani tam motora göre ayarladım.
sonra motor hareket ettiğinde yazı yavaşça hareket ediyor dönüyor.
yani resmen havada kayan yazı gibi oluyor.AMA bmyle dönerken birden yazı öteki tarafa atlıyor.
yine ne güzel dönüyor yavaşça yine aynı pat diye yazı atlıyor niye böyle oluyor?????
lütfen bişeyler söyleyin
video::
< Resime gitmek için tıklayın >
http://www.youtube.com/watch?v=Sa9HXglpjqU
evet arkadaşlar bu sorun mu değil mi???
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bir önce ki yazıda basit bir şekilde çıkışların nasıl kullanılacağını göstermiştim. Bu sefer ise girişten alınan bilgiye göre çıkışın değiştirilmesi mantığıyla çalışan yine basit bir kod vereceğim.
Daha önce anlatıldığı gibi yeni bir proje açıyoruz.Pic olarak 16f628a kullanıyoruz.Aşağıda gerekli kodları veriyorum
Örnek ekran görüntüsü
< Resime gitmek için tıklayın >
Tam ekran görmek için ----------------> https://store.donanimhaber.com/a6/ad/d6/a6add66f36502619802d918d374320e9.gif
Yazdığınız kodu denemek için gerekli olan ISIS dosyası ekte verilmiştir (v6.9 Sp5). Benzeşim sırasında anahtarlı açıp kapayarak programın verdiği tepkiyi görebilirsiniz.Hex dosyasıni vermedim. Onu siz halledersiniz
Benzeşim dosyası------------> http://rapid-share.com/files/21789246/Program_2.rar (indirmek için "-" işaretini kaldırın)
< Bu mesaj bu kişi tarafından değiştirildi muuzoo -- 19 Mart 2007; 16:27:13 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
yaw bende girişteki bilgileri çıkışa nasıl atılır die düşündüm aklım PORTB = PORTA geldi kodu derledim proteus'ta simulasyonunu yaparken yanlış çalışıyordu demek ki CMCON'u ayarlıyormuşuz. Bir soruda bu bilgileri sen nasıl elde ettin acaba bu konuda da bilgi verebilirmisin. bu arada çalışmaların için teşekkürler...
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu gün if/else yapısıyla yapılmış basit bir kod ve bir butona 15 defa basılınca (sayaç uygulaması) bir ledin yanmasını sağlayan bir uygulama yapılacaktır.Sayaç uygulamasında geciktirme döngüleri kullanılmadığı için. Benzeşim sırasında frekansın düşürülmesi gerekmektedir (ben 6khz olarak kullandım) Daha yüksek hızlarda kod istenildiği gibi çalışmayacaktır.
Kodun örnek ekran görüntüsü
< Resime gitmek için tıklayın >
Tam ekran görmek için -------------> https://store.donanimhaber.com/6c/1c/15/6c1c150b8079aa3be174045167d05ecf.gif
İkinci kodumuz ise bir butona 10 defa basıldığında ledi yakacak olan bir sayaç uygulaması. For ve while döngüleri ile hazırlanmıştır. İçinde basit bir geciktirme rutini vardır fakat mikrosaniyeler civarında geciktirme yaptığı için tavsiyem 5-6Khz pic hızında test edilmelidir. Geciktirme yeterli olmadığı için 1 Mhz de butona bir defa bastığınızda led yanacaktır.
Örnek ekran görüntüsü
< Resime gitmek için tıklayın >
Tam ekran görmek için----------> https://store.donanimhaber.com/0e/55/7c/0e557cf3ff5c3ba78499d5acebb47d4f.gif
Ekte her iki program için benzeşim dosyaları verilmiştir. ISIS te hazırlanmıştır (v6.9 Sp5)
İLk Program: http://rapid-share.com/files/21972717/Program_4.rar (indirmek için"-" leri silin)
İkinci program:http://rapid-share.com/files/21972790/Program_5.rar
Benzeşim dosyalarına hex kodue eklenmedi.
Bu mesaja 1 cevap geldi. Cevapları Gizle