pıc de ds1302 calısmıyor

MERHABA ilk olarak 1.5 v pil değilde 3v pil kullanın birde ds1302 şarz ayarlarını sıfırlayın aşırı ısınmanın sebebi çalışmaya başlayıp pil i şarz etmesinden kaynaklı olabilir. ben şaz etmek istediğimde aşırı ısınmış ve çalışmamıştı ayrıca birde pic in ayarlarını kontrol edin isisde çalışıp uygulamada çalışmaya biliyor kodlarıda paylaşırsan daha kolay olur hata bulması
#include <16F877A.h>
#device adc=10


#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz
#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)


#define use_portb_lcd TRUE
#define LCD_TYPE 2
#include <lcd420.c>
#include <DS1302.c> // DS1302.c dosyası programa ekleniyor


byte saniye,dakika,saat,gun,ay,yil,haftanin_gunu; // byte türünde değişkenler tanımlanıyor


void main()
{
unsigned long int bilgi; // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor
float voltaj; // ondalıklı tipte voltaj isminde değişken tanıtılıyor



lcd_init();


rtc_init(); // DS1302 başlangıç ayarları yapılıyor


setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
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);

rtc_set_datetime(17,01,14,15,22,52); // Tarih ve Saat ayarları yapılıyor

lcd_gotoxy(1,2);
lcd_putc(" UFUK SAHIN ");
lcd_gotoxy(1,3);
lcd_putc("pH METRE UYGULAMASI");
delay_ms(2000);
lcd_putc("\f");

while(TRUE)
{


rtc_get_time(saat,dakika,saniye); // DS1302'den saat,dakika,saniye bilgileri alınıyor
rtc_get_date(gun,ay,yil,haftanin_gunu); // DS1302'den gün,ay,yil ve günün isim bilgisi alınıyor
lcd_gotoxy(1,1);
printf(lcd_putc,"T:%02d/%02d/20%02d ",gun,ay,yil); //LCD'ye gün,ay,yıl bilgileri yazdırılıyor


switch(haftanin_gunu) // DS1302'den sayısal olarak alınan haftanın günü bilgisine
{ // metin olarak karşılık atanıyor
case 1: printf(lcd_putc,"PAZ"); break; // Eğer "1" ise LCD'ye PAZ yaz
case 2: printf(lcd_putc,"PZT"); break; // Eğer "2" ise LCD'ye PZT yaz
case 3: printf(lcd_putc,"SAL"); break; // Eğer "3" ise LCD'ye SAL yaz
case 4: printf(lcd_putc,"CRS"); break; // Eğer "4" ise LCD'ye CRS yaz
case 5: printf(lcd_putc,"PER"); break; // Eğer "5" ise LCD'ye PER yaz
case 6: printf(lcd_putc,"CUM"); break; // Eğer "6" ise LCD'ye CUM yaz
case 7: printf(lcd_putc,"CTS"); break; // Eğer "7" ise LCD'ye CTS yaz
}
lcd_gotoxy(1,2);
printf(lcd_putc,"Saat:%02d:%02d:%02d",saat,dakika,saniye); // LCD'ye saat,dakika ve saniye değerlerini yaz
//delay_ms(1000); // 1 sn gecikme veriliyor


set_adc_channel(0); // RA0/AN0 ucundaki sinyal A/D işlemine tabi tutulacak
delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir
bilgi=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor


voltaj=bilgi*0.013685; // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor

lcd_gotoxy(1,3);
printf(lcd_putc,"DIJITAL=%lu ",bilgi);
lcd_gotoxy(1,4);
printf(lcd_putc,"PH=%f ",voltaj);


}
}
oncelıkle tesekkurler ..kodlar bunlar sarj ayarlarını nasıl sıfırlayacagım hakkında da bılgı verırı mısınız cünkı o ayarı yenı duydum da
 
#define RTC_SCLK PIN_B1
#define RTC_IO PIN_B3
#define RTC_RST PIN_B2

Bu şekilde bir tanımlama yaptın mı. Pic e ezbere bağlamışsın sanki
 
MERHABA ilk olarak 1.5 v pil değilde 3v pil kullanın birde ds1302 şarz ayarlarını sıfırlayın aşırı ısınmanın sebebi çalışmaya başlayıp pil i şarz etmesinden kaynaklı olabilir. ben şaz etmek istediğimde aşırı ısınmış ve çalışmamıştı ayrıca birde pic in ayarlarını kontrol edin isisde çalışıp uygulamada çalışmaya biliyor kodlarıda paylaşırsan daha kolay olur hata bulması
kodlardan bır sorun görebıldınızmi ?
 
#define RTC_SCLK PIN_B1
#define RTC_IO PIN_B3
#define RTC_RST PIN_B2

Bu şekilde bir tanımlama yaptın mı. Pic e ezbere bağlamışsın sanki
pıc c de ds1302.c kütüphansınde kı baglantıları kendımınkıne göre tanımladım yani kütüphaneyı tanımlayınca tekrardan szin yazdıklarınızı tanımlamam gereklı mı ?
 
#define RTC_SCLK PIN_B1
#define RTC_IO PIN_B3
#define RTC_RST PIN_B2

Bu şekilde bir tanımlama yaptın mı. Pic e ezbere bağlamışsın sanki
önerılerınız için tesekkurler :D

ben entegreyı calıstırdım fakat enerjı yı kesıp tekrar verdıgımde pil baglı olmasına ragmen saat bastan baslıyor..
 
Saati enerji geldiğinde yeniden programlamıyorsun değilmi ayrıca c dilini blmiyorum
 
aynı sorun bendede var nasıl cözdünüz acaba sim-de çalışıyor ama deneme kartında saçmalıyor ilertişim yok
 

Forum istatistikleri

Konular
127,959
Mesajlar
913,919
Kullanıcılar
449,607
Son üye
sinan343834

Yeni konular

Geri
Üst