Pic programlama ccs c ledlerle örnek deneme kodları.
#include <12f683.h>
#fuses NOWDT,INTRC_IO,NOMCLR
#use delay(clock=4m)
//#use fast_io(a)
int x=0;
int k=1;
void main()
{
set_tris_a(0xff);
output_a(0b001000);
while(1)
{
if(input(pin_a3))
{
x=x+1;
while (input(pin_a3));
}
if(x==1)
{
output_high(pin_a1);
delay_ms(250);
output_low(pin_a1);
delay_ms(250);
output_high(pin_a2);
delay_ms(250);
output_low(pin_a2);
delay_ms(250);
}
if(x==2)
{
for(int s=0;s<=7;s++)
{
output_a(k);
k=k<<1;
delay_ms(100);
}
k=0x80;
output_a(k);
delay_ms(100);
for(int s=0;s<=6;s++)
{
k=k>>1;
output_a(k);
delay_ms(100);
x=2;
}
}
if(x==3)
x=0;
output_low(pin_a0);
}
}
Çok teşekkürler karışık gibi gözüküyor anlamaya çalışıp öğreneceğim sağolun :)
YanıtlaSilRica ederim ne hatasi aliyorsun.
SilBu ; eksikmi bak birde bu { } işaret eksikmi diye kopyala yapistir yapinca kalabiliyor
Siltest ettim tekrar çalışıyor
SilOlduğu gibi kopyaladım fakat CCS 48. satırda hata veriyor compile olmuyor maalesef.
YanıtlaSilfor(int s=0;s<=6;s++) bu satırdaki ilk s harfinini işaret ederek,
YanıtlaSilError 31 ''Sıfırzero.c''Line 48(10,11):Identifier is already used in this scope.
Error 76 ''Sıfırzero.c''Line 48(22,23): Except:
hatalarını alıyorum ve compile olmuyor.
Sadece bu ; eksikti ekledim fakat hatalarda bir değişme olmadı.Eksik olan yer if(input(pin_a3)) burası.
YanıtlaSilNeyse hocam zaten x==2 den sonrasını kendim düzenlemeye çalışarak birşeyler yaptım yine de sağolun :)
YanıtlaSilHocam bu devreyi değiştirerek yaptım fakat butona basınca program değişmiyor biraz basılı tutunca değişiyor aynı durum proteusta da oluyor gerçek devrede de.Butona 10k direnç bağladığım halde bunu yapıyor neden acaba hata mı yapıyorum?
YanıtlaSilprogram tam bitmedigi icin buton aktif olmuyor deneyim programi duzenleyim
YanıtlaSilikinci seçenekte output_a olduğu için buton düzensiz çalışıyor. devrede kodda sorun yok pin_a3 yerine başka ucu denersen sorunsuz çalışacak
SilBiraz uzun olacak cevaplarsanız memnun olurum.Kodları olduğu gibi kopyalayıp attım ve https://hizliresim.com/jsn7Er ekteki hatayı veriyor.Hata verdiği satırı sildiğimde ise Compile yapıyor.Bu kodlarda k değişkenini hiç anlayamadım zaten for döngüsünü az çok anladım ama yine de bana şuan için çok karışık geliyor.
YanıtlaSilBen de bu kodlardan esinlenerek kendimce birşeyler yazdım.Bazen butonlara tek dokunmamla program değişirken bazen basılı tutsam dahi değişmiyor.Yazdığım kodları ekliyorum size çok acemice gelecektir ama elimden gelen maalesef bu :)
#include <12f683.h>
#fuses NOWDT,INTRC_IO,NOMCLR
#use delay(clock=4m)
#define LED pin_a0
#define LED2 pin_a2
#define LED3 pin_a4
int x=0;
void main()
{
set_tris_a(0xff);
output_a(0b001000);
while(1)
{
if(input(pin_a3))
{
x=x+1;
while (input(pin_a3));
}
if(x==1)
{
output_high(LED);
output_high(LED2);
output_high(LED3);
}
if(x==2)
{
output_low(LED);
output_low(LED2);
output_high(LED3);
delay_ms(50);
output_low(LED3);
delay_ms(50);
}
if(x==3)
{
output_low(LED3);
output_high(LED2);
delay_ms(500);
output_low(LED2);
delay_ms(500);
}
if(x==4)
x=0;
}
}
bunu mesela bir ışıklı süs eşyasında kullanmak istedim şuan butonsuz while döngüsünde 1 haftadır çalışıyor ama ben bunu butonlu yapmak istiyorum fakat yapamadım.
Kodlar calisiyor ama sizin degistirmeniz geren uç pin_a3 u kullanmayiniz. Diger pinlerden birini kullaniniz. Programi ona göre düzenleyiniz.
SilPIC öğrenme amacım 7 yıldır masamı aydınlattığım ledler var onlara köklü bir değişim yapıp çok daha profesyonel hale getirip ufak butonlarla ve kumandayla kontrol etmek ve tamamında kendi emeğimin olması.Daha sonra model araba ışıklandırması ve hatta yapabilirsem 2000 wattlık bir sobayı PIC üzerinden kumandayla kontrol etmek gibi hedeflerim var ama en iyisi sanırım eğitim kitabı almak.
YanıtlaSileğitim kitabı şart. yazılmış kodlarıda anlamaya çalış benim paylaşımları çok basit kolay örnekler.yüksek voltaj akım kontrol etmek için triak veye tristörleri araştırmalısın
Silpin_a3'ü a1 yaptım ama değişen bir şey olmadı.A3 ü çıkış olarak kullanamıyoruz ama giriş olarak da kullanamayacaksak a3 ün görevi nedir acaba ICSP için mi kullanacağız sadece.
YanıtlaSilMclr ucu denetleyicinin reset ucu giriş var ama çıkış alamiyoruz.
YanıtlaSil