16F877 yerine 16F628A

hamdisuat

Üye
Katılım
26 Eyl 2011
Mesajlar
188
Puanları
1
Yaş
66
16F877 ile çalışan programda elimde 16F828A olması nedeni ile bu elemanı kullanmak istedim. Ancak;
"Selected part does not have ICD debug capability" messajı alıyorum.

Oysa devre gayet basit amaçlı, yanıp, sönen bir led devresi. uzantı h olan dosya edit edilerek ya da başka bir şekilde 16F628Anın bu devrede kullanımı mümkün olabilir mi?
 
Sayın Hamdisuat hata mesajının ne olduğunu bilmiyorum ama 16f877 için kullanılan özel komutlar varsa hata verebilir ve o komutları silmeniz gerekebilir. Benim nacizane tavsiyem 16f628a için yeni bir program yazmanız.
 
Bu program çok basit bir yazılım (ccs c ile)
#include <16F628A.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
void main ()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_b(0x00);


basla:
output_high(pin_b0);
delay_ms(500);
output_low(pin_b0);
delay_ms(500);
goto basla;
}
İlginç olan Pic C ile compile da sorun yok. MPLAB'de bu mesajı alıyorum, sanırım bir sorun nedeni ile 16F628A'yı bir pic işlemci olarak algılamıyor.
 
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF) bu komutlar 16f877 ye ait kodlar. 16f628A da analog-digital çevirici bulunmamaktadır. Ben benzer bir program yaptım ve proteusta çalıştırdım.Ekledim bakabilirsiniz.
void main()
{


setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab


// TODO: USER CODE!!
while(1)
{
output_high(pin_b0);
delay_ms(500);
output_low(pin_b0);
delay_ms(500);
}
}
 

Ekli dosyalar

  • deneme.rar
    9 KB · Görüntüleme: 12
hkn38 bilgi için minnettarım, "*.h" ve üst satırları eklediğimde;

[Warning 203 "deneme.c" Line 18(1,1): Condition always TRUE (durum her zaman gerçek)
BUILD SUCCEEDED:]

derleme başarılı ancak bir uyarı mesajı var, sanırım bu bir sorun yaratmaz, (şimdi ısı-proteus konusuna geçmem lazım). 16F628 ya da herhangi bir işlemci için, yukarıda sizin de yazdığınız gibi bazı değer komutlarını data sheet üzerinden anlamak mümkün müdür yoksa, standart yazılımlardan mı elde ediyoruz-tekrar teşekkür ederim.
 
Merhaba yardımcı olabilmişsem ne mutlu bana.CCS C PIC derleyici programında project wizart kısmı seçilirse çıkan pencerede seçilen pic ile ilgili özel komutları program kendisi üretir (data sheet e bakmanıza gerek kalmaz ama bakarsanız daha garanti olur). Kısaca yazılım sizin için kendisi üretiyor o komutları.
 
Aşağıdaki 16F877 için yazılmış uygulama 16F628A'ya uyarlandı;
void main()
{


setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//Setup_Oscillator parameter not selected from Intr Oscillotar Config tab


// TODO: USER CODE!!
while(1)
{
output_high(pin_b0);
delay_ms(500);
output_low(pin_b0);
delay_ms(500);
}
}

16F628A işlemciye yüklendi, 7805 ile giriş 12 çıkış 4,97 V bir destek sağlandı. Ancak RB0 6 nolu pinden elde edilen güç 2 volt kadar ve sürekli delay devre dışı ve bir ledi dahi yakacak güçte değil. Acaba, hata, yazılımda mı yoksa 16F628A bu işe uygun değil mi?
 
lvp, config ve brenner ayarları ile sorun çözüldü, devre çalıştı.
 

Forum istatistikleri

Konular
128,217
Mesajlar
915,880
Kullanıcılar
449,999
Son üye
Samidmrr

Yeni konular

Geri
Üst