Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

hi tech c led yakma sorunu

Başlatan okk636, 25 Mayıs 2012, 21:52:41

okk636

meraba pıc de yeniyim 16f877a ıle led yakan devre yapmaya çalışıyorum.Proteus ISIS de devrem çalışıyor ama board ta çalışmıyor sizce sorun ne olabilir ?

buda programladığım kod

#include <htc.h>
#include <delay.c> // Gecikme yaratacak kütüphane.
#define _XTAL_FREQ 4000000
void main(void) // Ana fonksiyon alanı
{
TRISB=0x00; // PORTB çıkıG olarak yönlendiriliyor
PORTB=0x00; // PORTB'nin tüm çıkıGları sıfırlanıyor

while (1) // Sonsuz döngüye giriliyor
{
RB0=1; // Led yanacak
DelayMs(250);
DelayMs(250);

RB0=0;//

DelayMs(250);
DelayMs(250);

}
}

arslan74

pic in kristali bağlı ve mclr ucunu 5 volta ise mutlaka çalışması gerek.

elektronikhobi

Bir tane örnek test programı.

https://github.com/erdemoncel/sicaklik/blob/master/test.c

Bu dosyada sadece başlık bölümünü #include "secenek.h" şeklinde değiştirmeniz yeterli olacaktır.

https://github.com/erdemoncel/sicaklik/blob/master/secenek.h

okk636

kristal uçları bağlı 5volta veriyorum yukarda elektronikhobi arkadaşın dediklerini de yaptım ama yine çalışmadı,
ama internetten bi kod buldum ccs c kodu onu derledim onunla çalıştı. yani devrede sorun yok. ccs c kodlarını yazıyorum
her ikisinden de anlayan varsa yardımını bekliyorum. hi tech de benim eksiğim ne ola ki? :S

 


#include "C:\Users\rclk\Desktop\deneme\deneme1.h"


void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   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);

   set_tris_b(0x00); /*B portunu cikis yaptık  */
   output_b(0x00);
   
   while(1)
   {
   output_high(pin_b0);
   delay_ms(250);
   output_low(pin_b0);
   delay_ms(250);
   output_high(pin_b1);
   delay_ms(250);
   output_low(pin_b1);
   delay_ms(250);
   
   }
   
   
}




buda deneme1.h dosyası


#include <16F877A.h>
#device adc=8

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES XT                       //Low power osc < 200 khz
#FUSES NOPUT                    //No Power Up Timer
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOBROWNOUT               //No brownout reset
#FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD                    //No EE protection
#FUSES WRT_50%                  //Lower half of Program Memory is Write Protected

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)

since1990

#4
Kristalin hızı gecikme fonksiyonundan önce tanımlanması gerekmez mi? Tabi proteusta  Çalışıyorsa ayrı :D?
Ek olarak sigorta ayarlarını yapman lazım watchdog timeri kapatman lazım falan. Sigorta ayarlarına bakman lazım ben CCs kullanıyorum sigorta ayarlarını bilmediğim için uzun bir zaman devrelerim sadece proteusta çalıştı :D
"Dinlenmemek üzere yola çıkanlar asla yorulmazlar. Türk gençliği, gayeye, idealizme durmadan ve yorulmadan yürüyecektir. Bütün ümidim gençliktedir." Mustafa Kemal Atatürk

arslan74


elektronikhobi

Alıntı yapılan: okk636 - 26 Mayıs 2012, 13:34:44
ama internetten bi kod buldum ccs c kodu onu derledim onunla çalıştı. yani devrede sorun yok. ccs c kodlarını yazıyorum
her ikisinden de anlayan varsa yardımını bekliyorum. hi tech de benim eksiğim ne ola ki?

Hata mesajlarını görmeden yorum yapmak pek mümkün değil.

Ama benim aklıma gelen şunlar.

- Örneğin saat pulsunu üretmek için ben 13 ve 14 numaralı ayaklarına bir tane 4MHz kristal ve iki tane 22 pF arası kristal takmıştım. O durumda da crystal'ın kısaltması olarak XT seçmek gerekiyor.

- Belki kullandığın yazılım eski bir sürüm olabilir.

http://www.htsoft.com/downloads

- Özellikle eski sürümlerde kullanılan gecikme bildirimleri DelayMs yeni sürümlerde __delay_ms olarak değişmiş. Bu da ufak düzeltmelerle çalışıyor.

Şimdi tekrardan deneme kartı üzerinde deneyemiyorum. Ama o adresteki uygulamaların hepsi baskılı deneme kartı üzerinde denenmişti  :)

Bir de bu kadar uğraşmaktansa bu konuyla ilgili bir kitap almanızı tavsiye ederim.

Örneğin Prof. Dr. Doğan İbrahim'in bu konuda bir sürü kitabı var. Ben bir tanesini okudum. Kitabı okudukça, kitabın yazarı Doç. Dr. Doğan İbrahim hocanın konuyu çok iyi bildiğini ve bu konuda bir uzman olduğunu anlıyorsunuz. Ayrıca PIC'ler ile ilgili bilgi verdiği kısım da (diğer kitaplara gibi gereksiz ayrıntı vermemiş) gayet güzel.