Arkadaşlar merhaba ,CCS C ile pic programlıyorum ancak derleyicide böyle hatalar alıyorum sürekli nedir bu ? kütüphanelerle alakalı birşeymi basit bir led çalıştıracağım. :o .http://i.hizliresim.com/PnJQ95.png
include "16f628a.h" düzeltin.
İnclude main.c satırınıı silin.
Fuse ayarlarındaki yazım hatalarını düzeltmeyi de unutmayın.Çalışması gerekir.
Gözle görememen çok normal.
PortB yi 0 yaptıktan sonra delay ekleyin.
Alıntı yapılan: omereliusuk - 24 Ocak 2017, 23:09:11
include "16f628a.h" düzeltin.
İnclude main.c satırınıı silin.
Fuse ayarlarındaki yazım hatalarını düzeltmeyi de unutmayın.Çalışması gerekir.
Dediklerinizi uyguladım ancak olmadı.
Yeni resimleri ekliyorum . ;D
Cevabınız için teşekkürler.
LİNK :
http://i.hizliresim.com/o04ygq.png
http://i.hizliresim.com/l3547p.png
Alıntı yapılan: sadogan - 24 Ocak 2017, 23:16:19
Gözle görememen çok normal.
PortB yi 0 yaptıktan sonra delay ekleyin.
Sizinde dediklerinizi uyguladım ancak çözüme ulaşamadım .
Fuses ayarlarını bana yazarmsınız veya bunlar doğrumu .
Line 22'de noktalı virgül unutmuşsun.
Alıntı yapılan: Salih - 25 Ocak 2017, 11:28:49
Line 22'de noktalı virgül unutmuşsun.
Yine olmadı İlk konunun başında atığım resimle aynı durumda şuanda .
Teşekkürler.
"expect" hatası gördüğün yerde anla ki ";" koymayı unutmuşsun.
@laotzi Main.c silmen gerekir
include içine .c değil .h koyman gerekir bu proje için arkadaşların dediği gibi
Son aldığın hata ise ; eksikliğinden kaynaklanıyor
Aşağıdaki hata satırından tıklayarak hatanın nerde olduğunu anlayabilirsin .zaten hata varsa önce hemen ; ve } eksiklik fazlalıklarını kontrol etmelisin
Kolay Gelsin
Alıntı yapılan: tekosis - 25 Ocak 2017, 12:31:27
"expect" hatası gördüğün yerde anla ki ";" koymayı unutmuşsun.
Alıntı yapılan: Teğmen - 25 Ocak 2017, 12:34:47
@laotzi
Main.c silmen gerekir
include içine .c değil .h koyman gerekir bu proje için arkadaşların dediği gibi
Son aldığın hata ise ; eksikliğinden kaynaklanıyor
Aşağıdaki hata satırından tıklayarak hatanın nerde olduğunu anlayabilirsin .zaten hata varsa önce hemen ; ve } eksiklik fazlalıklarını kontrol etmelisin
Kolay Gelsin
Hepinize teşekkür ediyorum oldu sağolun .
Alıntı yapılan: laotzi - 25 Ocak 2017, 12:24:12
Yine olmadı İlk konunun başında atığım resimle aynı durumda şuanda .
Teşekkürler.
Arkadaşlarda yazmış birkaç hatan var aynılarını yazmaya gerek yok kod şeklinde yazmak daha mantıklı geldi. fuse'lerin ne anlama geldiğini bilmen faydalı olabilir vaktimce yazabildim. Umarım yardımı dokunur.
#include <16F628A.h> // CCS c kütüphanesinde 16F628A yazılmış header dosyasını kullanmanı sağlar.
#FUSES NOWDT // Watch Dog Timer'ı kullanılmayacak
#FUSES NOBROWNOUT // MCU power'ında çalışma voltajının altına düştüğünde reset olmayacak.
#FUSES NOLVP // Düşük voltajlı programlama
#FUSES XT // Cristal osilator <= 4mhz
#FUSES NOPROTECT // Hex kod okumaya karşı korumalı değil.
#use delay(crystal=4000000)
void main()
{
set_tris_b(0b00000000);
while(TRUE)
{
//TODO: User Code
output_b(0b11111111);
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
}
Arkadaşim sen ne yapmaya çalışiyorsun.yapıp verelim.
Alttaki kodları hex dosyası olarak kaydedip, yükleyin...
:02000000FE2FD1
:100F9C00850107309F0083169F018501831286010E
:100FAC00831686010800CE27FF30831203138500B9
:100FBC0086000330F2008A30F1005530F000F00B5F
:100FCC00E52FF10BE52FF20BE52FEC2F831203131A
:100FDC00850186010330F2008A30F1005530F000B3
:100FEC00F00BF62FF10BF62FF20BF62FFD2FDA2F5D
:040FFC008301D92F65
:02400E0050DE82
:00000001FF
Alıntı yapılan: serkancetin - 25 Ocak 2017, 16:20:21
Arkadaşim sen ne yapmaya çalışiyorsun.yapıp verelim.
Amacım kod yazmak CCS Öğreniyorum . Teşekkür ederim ilginiz için.
Alıntı yapılan: yasin_arsln - 25 Ocak 2017, 15:34:10
Arkadaşlarda yazmış birkaç hatan var aynılarını yazmaya gerek yok kod şeklinde yazmak daha mantıklı geldi. fuse'lerin ne anlama geldiğini bilmen faydalı olabilir vaktimce yazabildim. Umarım yardımı dokunur.
#include <16F628A.h> // CCS c kütüphanesinde 16F628A yazılmış header dosyasını kullanmanı sağlar.
#FUSES NOWDT // Watch Dog Timer'ı kullanılmayacak
#FUSES NOBROWNOUT // MCU power'ında çalışma voltajının altına düştüğünde reset olmayacak.
#FUSES NOLVP // Düşük voltajlı programlama
#FUSES XT // Cristal osilator <= 4mhz
#FUSES NOPROTECT // Hex kod okumaya karşı korumalı değil.
#use delay(crystal=4000000)
void main()
{
set_tris_b(0b00000000);
while(TRUE)
{
//TODO: User Code
output_b(0b11111111);
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
}
Alıntı yapılan: mehmet - 25 Ocak 2017, 17:00:35
Alttaki kodları hex dosyası olarak kaydedip, yükleyin...
:02000000FE2FD1
:100F9C00850107309F0083169F018501831286010E
:100FAC00831686010800CE27FF30831203138500B9
:100FBC0086000330F2008A30F1005530F000F00B5F
:100FCC00E52FF10BE52FF20BE52FEC2F831203131A
:100FDC00850186010330F2008A30F1005530F000B3
:100FEC00F00BF62FF10BF62FF20BF62FFD2FDA2F5D
:040FFC008301D92F65
:02400E0050DE82
:00000001FF
Hocam hex lağzım değil CCS Öğreniyorum . Teşekkür ederim ilginize.
Önce donanımınızın çalıştığına emin olun...
Alıntı yapılan: mehmet - 25 Ocak 2017, 18:05:05
Önce donanımınızın çalıştığına emin olun...
İsiste çalışıyor . Somut olarak yapmıyorum biraz öğrendikten sonra somut olarak gerçekleştireceğim .
http://ccspic.com/ccs-c-ve-buton-ile-bcd-sayici-uygulamasi/
Burayi incelermusin
Alıntı yapılan: serkancetin - 25 Ocak 2017, 18:25:13
http://ccspic.com/ccs-c-ve-buton-ile-bcd-sayici-uygulamasi/
Burayi incelermusin
Hocam teşekkürler bu kitap elimde var :) bundan çalışıyorum .
Biraz karmaşık geldi bana nedense.
Çok detaylı mı acaba ?
Alıntı yapılan: serkancetin - 25 Ocak 2017, 18:25:13
http://ccspic.com/ccs-c-ve-buton-ile-bcd-sayici-uygulamasi/
Burayi incelermusin
Hocam ben değişkenleri anlamadım o konudada yardımcı olurmusunuz ne işe yarıyor nerde nasıl kullanılıyor.Anlamadığım için kullanamıyorum .
Alıntı yapılan: laotzi - 25 Ocak 2017, 21:04:39
Hocam ben değişkenleri anlamadım o konudada yardımcı olurmusunuz ne işe yarıyor nerde nasıl kullanılıyor.Anlamadığım için kullanamıyorum .
C programında, bir değişken tanımlandığında bu değişken için bellekte bir yer ayrılır. Her değişkenin tuttuğu değerin nasıl bir veri olduğunu gösteren bir veri tipi vardır. Bunlar karakter için
Char, 8 bitlik tam sayi için
int ön adlarla tanımlanır. Amaç senin istediğin degerleri-verileri tutması, onlarla işlem yapması ve onların durumuna göre farklı koşulları gerçekleştirmesidir.
Sana daha önce yazdığım koda bir değişken ve bir buton tanımladım programda işlettim.
#include <16F628A.h> // CCS c kütüphanesinde 16F628A yazılmış header dosyasını kullanmanı sağlar.
#FUSES NOWDT // Watch Dog Timer'ı kullanılmayacak
#FUSES NOBROWNOUT // MCU power'ında çalışma voltajının altına düştüğünde reset olmayacak.
#FUSES NOLVP // Düşük voltajlı programlama
#FUSES XT // Cristal osilator <= 4mhz
#FUSES NOPROTECT // Hex kod okumaya karşı korumalı değil.
#use delay(crystal=4000000)
#define buton pin_a0 // buton kelimesine Pin_a0 olarak tanımlama yapıldı.
int8 LedYak = 8; // 8 bit tam sayi degiskeni ilk degeri 8 olarak tanımlandı.
void main()
{
set_tris_b(0b00000000); // B portunun tamamı çıkış olarak ayarlandı.
set_tris_a(0b00000001); // Pin_a0 giriş olarak ayarlandı.
while(TRUE)
{
if(input(buton)) //buton'a basıldığında aşağıdaki işlemleri yap.
{
delay_ms(15);
LedYak = LedYak-1; // burada LedYak 'in son halinde 1 çıkartıyorum.
//Bunun farklı şekilde yazımlarıda var LedYak-- şeklinde.
while(input(buton)); //Buton'a basma islemi bitene kadar bekle.
if(LedYak == 0) LedYak = 8; // LedYak 0'a eşit olduğunda LedYak'i 8'e eşitle.
}
if(LedYak == 8)
{
output_b(0b11111111);
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
else if(LedYak ==5)
{
output_b(0b00011111); //5 çıkışı high yapar
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
else if(LedYak ==2)
{
output_b(0b00000011); //2 çıkışı high yapar
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
}
}
Kodda sen butona bastıkça
LedYak değişkenini azaltıyorsun
LedYak değeri 5 'e eşit olduğunda ledlerinin 5 i yanıp sönmeye başlar sen butona basmadığın ve mcu'un resetlenmediği sürece bu şekilde ledler yanar. ben alternatif olsun diye 3 durum yazdım sen bunları çoğaltabilirsin.
Biraz C 'ye de bakmanın yardımı dokunur.
Alıntı yapılan: yasin_arsln - 25 Ocak 2017, 22:44:53
C programında, bir değişken tanımlandığında bu değişken için bellekte bir yer ayrılır. Her değişkenin tuttuğu değerin nasıl bir veri olduğunu gösteren bir veri tipi vardır. Bunlar karakter için Char, 8 bitlik tam sayi için int ön adlarla tanımlanır. Amaç senin istediğin degerleri-verileri tutması, onlarla işlem yapması ve onların durumuna göre farklı koşulları gerçekleştirmesidir.
Sana daha önce yazdığım koda bir değişken ve bir buton tanımladım programda işlettim.
#include <16F628A.h> // CCS c kütüphanesinde 16F628A yazılmış header dosyasını kullanmanı sağlar.
#FUSES NOWDT // Watch Dog Timer'ı kullanılmayacak
#FUSES NOBROWNOUT // MCU power'ında çalışma voltajının altına düştüğünde reset olmayacak.
#FUSES NOLVP // Düşük voltajlı programlama
#FUSES XT // Cristal osilator <= 4mhz
#FUSES NOPROTECT // Hex kod okumaya karşı korumalı değil.
#use delay(crystal=4000000)
#define buton pin_a0 // buton kelimesine Pin_a0 olarak tanımlama yapıldı.
int8 LedYak = 8; // 8 bit tam sayi degiskeni ilk degeri 8 olarak tanımlandı.
void main()
{
set_tris_b(0b00000000); // B portunun tamamı çıkış olarak ayarlandı.
set_tris_a(0b00000001); // Pin_a0 giriş olarak ayarlandı.
while(TRUE)
{
if(input(buton)) //buton'a basıldığında aşağıdaki işlemleri yap.
{
delay_ms(15);
LedYak = LedYak-1; // burada LedYak 'in son halinde 1 çıkartıyorum.
//Bunun farklı şekilde yazımlarıda var LedYak-- şeklinde.
while(input(buton)); //Buton'a basma islemi bitene kadar bekle.
if(LedYak == 0) LedYak = 8; // LedYak 0'a eşit olduğunda LedYak'i 8'e eşitle.
}
if(LedYak == 8)
{
output_b(0b11111111);
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
else if(LedYak ==5)
{
output_b(0b00011111); //5 çıkışı high yapar
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
else if(LedYak ==2)
{
output_b(0b00000011); //2 çıkışı high yapar
delay_ms(500);
output_b(0b00000000);
delay_ms(500);
}
}
}
Kodda sen butona bastıkça LedYak değişkenini azaltıyorsun LedYak değeri 5 'e eşit olduğunda ledlerinin 5 i yanıp sönmeye başlar sen butona basmadığın ve mcu'un resetlenmediği sürece bu şekilde ledler yanar. ben alternatif olsun diye 3 durum yazdım sen bunları çoğaltabilirsin.
Biraz C 'ye de bakmanın yardımı dokunur.
Hocam çok teşekkür ediyorum . Bakalım doğru anlamışmıyım. Örneğin led değişkenini 8 yaptık burada led değişkeni 8 oldugunda diyelim 8 led var 8 ledinde yakmasını istiyorum ancak led değişkenini 8 yapmak için benim 8 kez butonamı basmam gerekiyor bu örneği kendim sadece uydrudum anlamışmıyım diye .
Alıntı yapılan: laotzi - 25 Ocak 2017, 22:53:18
Hocam çok teşekkür ediyorum . Bakalım doğru anlamışmıyım. Örneğin led değişkenini 8 yaptık burada led değişkeni 8 oldugunda diyelim 8 led var 8 ledinde yakmasını istiyorum ancak led değişkenini 8 yapmak için benim 8 kez butonamı basmam gerekiyor bu örneği kendim sadece uydrudum anlamışmıyım diye .
Orası sana kalmış bir buton ile bir değişkenin kontrolünü yaptığını düşün sen her bastığında değişkenin 1 azalıyor. Her sayıda bir Led yakma moduna geçiş yapabiliyorsun.
Bunu sen farklı bir şekilde de tanımlayabilirsin. Benim sana gönderdiğim kodda değişkenin 7 olduğunda ne yapmasını istediğini yazıp modifiye et ve uygula.
Şöyle yapmanı öneririm ISIS de simulasyon yapabiliyorsun değilmi? ISIS'e MCU'ya hex dosyasını değilde .cof dosyasını yükle ISIS üzerinden debug çalıştır ve adım adım kontrol et.Daha iyi anlayacaksın.
Verdiğin örneği tam anlayamadım, zaten 8 ise yazılan kod üstünden konuşuyor isek 8 kez basıp çektiğinde tekrar 8 oluyor. Değişkenin bu durumunda 8 Led yanıp söner.Bunu diyorsan doğru anlamışsın.
Alıntı yapılan: yasin_arsln - 26 Ocak 2017, 01:21:30
Orası sana kalmış bir buton ile bir değişkenin kontrolünü yaptığını düşün sen her bastığında değişkenin 1 azalıyor. Her sayıda bir Led yakma moduna geçiş yapabiliyorsun.
Bunu sen farklı bir şekilde de tanımlayabilirsin. Benim sana gönderdiğim kodda değişkenin 7 olduğunda ne yapmasını istediğini yazıp modifiye et ve uygula.
Şöyle yapmanı öneririm ISIS de simulasyon yapabiliyorsun değilmi? ISIS'e MCU'ya hex dosyasını değilde .cof dosyasını yükle ISIS üzerinden debug çalıştır ve adım adım kontrol et.Daha iyi anlayacaksın.
Verdiğin örneği tam anlayamadım, zaten 8 ise yazılan kod üstünden konuşuyor isek 8 kez basıp çektiğinde tekrar 8 oluyor. Değişkenin bu durumunda 8 Led yanıp söner.Bunu diyorsan doğru anlamışsın.
Evet kullanabiliyorum şimdi yapacağım onu . Hocam bir sayı belirliyoruz onun üzerinden işte sayı 8 olursa şu olsun 7 olursa bu olsun sayıyı 1 azalt 1 artır olayımı oluyor . Peki sayıyı neye göre bitlerini ayarlıyoruz.
Alıntı yapılan: laotzi - 26 Ocak 2017, 12:27:17
Evet kullanabiliyorum şimdi yapacağım onu . Hocam bir sayı belirliyoruz onun üzerinden işte sayı 8 olursa şu olsun 7 olursa bu olsun sayıyı 1 azalt 1 artır olayımı oluyor . Peki sayıyı neye göre bitlerini ayarlıyoruz.
Ben en basit örneğini verdim bu sadece bir artır bir azalt olayı değil. Matametiksel işlem, Lojik işlem vs. her tür işlemleri yapmanda yardımcı olacak bu değişkenler. Bu değişkenlerin kaç bit olacağını ise alacağı değere göre belirliyorsun. bir değişkenin 0-65535 arasında değer alıyorsa bu 16 bit
işaretsiz olmalı. 0-32767 arasında ise
işaretli 16 bit olur. 0-255 arasında ise 8 bitlik bir değişken olmalı. bu
char da olabilir
unsigned int8 de olabilir.
Temel C kısımlarına biraz daha bak veri tipleri nelerdir nasıl kullanılır. Serdar Çiçek'in kitabında anlatılıyordu yanlış hatırlamıyorsan.
Alıntı yapılan: yasin_arsln - 26 Ocak 2017, 13:04:36
Ben en basit örneğini verdim bu sadece bir artır bir azalt olayı değil. Matametiksel işlem, Lojik işlem vs. her tür işlemleri yapmanda yardımcı olacak bu değişkenler. Bu değişkenlerin kaç bit olacağını ise alacağı değere göre belirliyorsun. bir değişkenin 0-65535 arasında değer alıyorsa bu 16 bit işaretsiz olmalı. 0-32767 arasında ise işaretli 16 bit olur. 0-255 arasında ise 8 bitlik bir değişken olmalı. bu char da olabilir unsigned int8 de olabilir.
Temel C kısımlarına biraz daha bak veri tipleri nelerdir nasıl kullanılır. Serdar Çiçek'in kitabında anlatılıyordu yanlış hatırlamıyorsan.
Teşekkürler anladım birşeyler eskisinden iyi yukarıda dediklerinizi uyguluyorum o kod işime yaradı .
1) bir adet hesap makinesi aç.
2) programcı moduna geç
3)sayıların nasıl göründüğünü gör.
bu daha kolay olacak gibi
Alıntı yapılan: omereliusuk - 27 Ocak 2017, 14:05:16
1) bir adet hesap makinesi aç.
2) programcı moduna geç
3)sayıların nasıl göründüğünü gör.
bu daha kolay olacak gibi
Mazur görün lütfen tam olarak anlamadım :) açıklarmısınız biraz .
Cep telefonu için hesap makinesi;
https://play.google.com/store/apps/details?id=com.miwachang.progcalc&hl=tr
Alıntı yapılan: mehmet - 27 Ocak 2017, 19:44:25
Cep telefonu için hesap makinesi;
https://play.google.com/store/apps/details?id=com.miwachang.progcalc&hl=tr
Teşekkürler isime yaradı değişkenleri anladım ancak yeni bir sorunum var, konuların farklı olması nedeni ile yeni bir konu açıyorum .
denedim çalışıyor.
#include<16f628a.h>
#fuses INTRC_IO,NOWDT,NOPUT,NOBROWNOUT
#use delay (clock=4m)
void main()
{
set_tris_b(0x00);
set_tris_a(0xff);
output_b(0x00);
output_low(pin_b0);
while(true)
{
if(input(pin_a0)==1)
{
delay_ms(20);
output_toggle(pin_b0);
while(input(pin_a0));
}
}
}
En astaki satiri sil