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.
c dilinde pic e kod yazmak istiyorsan en sağlam derleyici budur diyolar. aynı şekilde pic c lite, ccs c, micro c gibi derleyicilerde var. genel olarak c dilini biliyosan hepsi aynı. sadece bikaç komut ve arayüz farklılıkları var.
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.
DEFINE OSC 4 CMCON = 7 VRCON = 0 OPTION_REG.7=1 M VAR BYTE N VAR BYTE TRISB=0 TRISA=%10000 PORTA=%11111 PORTB=255 PAUSE 500 ANA: LOW PORTA.0 LOW PORTA.1 LOW PORTA.2 LOW PORTA.3 PORTB=%00000000 IF PORTA.4=0 THEN BASLA PAUSE 50 GOTO ANA BASLA: M=1 N=4 PAUSE 1 IF PORTA.4=1 THEN ZAR M=1 N=12 PAUSE 1 IF PORTA.4=1 THEN ZAR M=1 N=28 PAUSE 1 IF PORTA.4=1 THEN ZAR M=1 N=60 PAUSE 1 IF PORTA.4=1 THEN ZAR M=1 N=124 PAUSE 1 IF PORTA.4=1 THEN ZAR M=1 N=252 PAUSE 1 IF PORTA.4=1 THEN ZAR M=3 N=4 PAUSE 1 IF PORTA.4=1 THEN ZAR M=3 N=12 PAUSE 1 IF PORTA.4=1 THEN ZAR M=3 N=28 PAUSE 1 IF PORTA.4=1 THEN ZAR M=3 N=60 PAUSE 1 IF PORTA.4=1 THEN ZAR M=3 N=124 PAUSE 1 IF PORTA.4=1 THEN ZAR M=3 N=252 PAUSE 1 IF PORTA.4=1 THEN ZAR M=7 N=4 PAUSE 1 IF PORTA.4=1 THEN ZAR M=7 N=12 PAUSE 1 IF PORTA.4=1 THEN ZAR M=7 N=28 PAUSE 1 IF PORTA.4=1 THEN ZAR M=7 N=60 PAUSE 1 IF PORTA.4=1 THEN ZAR M=7 N=124 PAUSE 1 IF PORTA.4=1 THEN ZAR M=7 N=252 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=4 IF PORTA.4=1 THEN ZAR M=15 N=12 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=28 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=60 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=124 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=252 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=5 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=13 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=29 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=61 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=125 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=253 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=7 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=15 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=31 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=63 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=127 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=255 PAUSE 1 IF PORTA.4=1 THEN ZAR M=1 N=4 PAUSE 1 IF PORTA.4=1 THEN ZAR M=3 N=12 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=255 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=125 PAUSE 1 IF PORTA.4=1 THEN ZAR M=15 N=60 PAUSE 1 IF PORTA.4=1 THEN ZAR M=7 N=28 PAUSE 1 IF PORTA.4=1 THEN ZAR GOTO BASLA ZAR: PORTB=N PORTA=M PAUSE 200 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 IF PORTA.4=0 THEN ANA PAUSE 50 GOTO ANA
arkadaşlar böyle bi kod var bunu pic e nasıl yüklicem
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.
hocam eline saglık... Bildigin genis bir pic c kitabı var mı ? Kutuphaneden birkac tane bulmustum ama, mesela sadece sıcaklık projelerinin oldugu bir kitap idi. Gerci epey fikir veriyor pic c ile alakalı ama bildigin daha genis bir pic c (hi-tech pic c ) kitabı var mı ?
hocam eline saglık... Bildigin genis bir pic c kitabı var mı ? Kutuphaneden birkac tane bulmustum ama, mesela sadece sıcaklık projelerinin oldugu bir kitap idi. Gerci epey fikir veriyor pic c ile alakalı ama bildigin daha genis bir pic c (hi-tech pic c ) kitabı var mı ?
Maalesef bildiğim bir pic c kitabı yok. O yüzden yardımcı olamaycağım. Ben de o yüzden asm kodlarının c karşılığını yazarak çalışıyorum. BU sayede iki dile de aşina olmuş oluyorum. Zira bazı durumlarda c nin yetmediği yerde asm kodlarına ihtiyaç olabilir.
Aklıma gelmişken eğer c içinde asm kullanmak isterseniz #asm kodlar buraya #endasm
biçiminde c programının içinde asm kodu kullanabilirsiniz.
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???
Gördüğüm kadarıyla sanki zamanlama sorunu var gibi geldi bana. Aslına bakarsan bu tarz bir çalışma yapmadığım için emin olamıyorum ama görüntünün birden başka bir yere atlaması sanki bir senkron sorunu olduğunu gösteriyor.
Gördüğüm kadarıyla sanki zamanlama sorunu var gibi geldi bana. Aslına bakarsan bu tarz bir çalışma yapmadığım için emin olamıyorum ama görüntünün birden başka bir yere atlaması sanki bir senkron sorunu olduğunu gösteriyor.
kardeş zamanlamayı 20 yaptığım zaman böle oluyor. Ama 20 yi 30 40 veya 10 yaparsam yazı okunmuyor yazı çok hızlı dönüyor ama 20 yapınca görebiliyorum.Bence zamanlamada bir sorun yok ama dedim acaba programda mı bir hata var????
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
CMCON = 7
VRCON = 0
OPTION_REG.7=1
M VAR BYTE
N VAR BYTE
TRISB=0
TRISA=%10000
PORTA=%11111
PORTB=255
PAUSE 500
ANA:
LOW PORTA.0
LOW PORTA.1
LOW PORTA.2
LOW PORTA.3
PORTB=%00000000
IF PORTA.4=0 THEN BASLA
PAUSE 50
GOTO ANA
BASLA:
M=1
N=4
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=1
N=12
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=1
N=28
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=1
N=60
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=1
N=124
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=1
N=252
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=3
N=4
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=3
N=12
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=3
N=28
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=3
N=60
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=3
N=124
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=3
N=252
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=7
N=4
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=7
N=12
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=7
N=28
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=7
N=60
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=7
N=124
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=7
N=252
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=4
IF PORTA.4=1 THEN ZAR
M=15
N=12
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=28
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=60
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=124
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=252
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=5
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=13
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=29
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=61
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=125
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=253
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=7
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=15
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=31
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=63
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=127
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=255
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=1
N=4
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=3
N=12
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=255
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=125
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=15
N=60
PAUSE 1
IF PORTA.4=1 THEN ZAR
M=7
N=28
PAUSE 1
IF PORTA.4=1 THEN ZAR
GOTO BASLA
ZAR:
PORTB=N
PORTA=M
PAUSE 200
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
IF PORTA.4=0 THEN ANA
PAUSE 50
GOTO ANA
arkadaşlar böyle bi kod var bunu pic e nasıl yüklicem
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 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
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...
Maalesef bildiğim bir pic c kitabı yok. O yüzden yardımcı olamaycağım. Ben de o yüzden asm kodlarının c karşılığını yazarak çalışıyorum. BU sayede iki dile de aşina olmuş oluyorum. Zira bazı durumlarda c nin yetmediği yerde asm kodlarına ihtiyaç olabilir.
Aklıma gelmişken eğer c içinde asm kullanmak isterseniz
#asm
kodlar
buraya
#endasm
biçiminde c programının içinde asm kodu kullanabilirsiniz.
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
Bu mesaja 1 cevap geldi. Cevapları Gizle
kardeş zamanlamayı 20 yaptığım zaman böle oluyor. Ama 20 yi 30 40 veya 10 yaparsam yazı okunmuyor yazı çok hızlı dönüyor ama 20 yapınca görebiliyorum.Bence zamanlamada bir sorun yok ama dedim acaba programda mı bir hata var????
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
Bu mesaja 1 cevap geldi. Cevapları Gizle