Timer1 kullanımı

Başlatan hiashua, 11 Ağustos 2008, 23:56:32

hiashua

18f242 kullanarak Timer1 ile rtc uygulaması yapmak istiyorum. tmr1 in harici 32Khzlik saat osilatörü için bağlantısı var fakat ben isis te çalıştıramadım. Isıs bu harici osc. yi simule etmiyormu? Yardımlarınızı bekliyorum.

#include <pic18.h>

__CONFIG(2, PWRTDIS & WDTDIS);
void interrupt low_priority rtc(void);
void main(void)
{

	OSCCON = 0;
	TRISB = 0;
	LATB = 0;
	IPEN = 1; // interrupt priorities enabled
	PEIE = 1;
	TMR1IP = 0;
	TMR1IE = 1;
	TMR1IF = 0;
	T1CON = 0b10001011;
	TMR1H	= 0xFF;
	TMR1L = 0;
	GIEL = 1;
	GIE = 1;
		
	while(1)continue;		// wait for interrupt
}
void interrupt low_priority rtc(void)
{
	if(TMR1IF)
	{
		TMR1IF = 0;
		LATB0 = !LATB0; // interrupt has occured.
	}
}


Isıste RC0 ve RC1 arasına bir kristal yerleştirip özelliklerinde 32.768KHz yazıyorum.33pf kond. ilave ettim.
/*  Merak ilmin hocasıdır.  */

hiashua

Konuyu yanlış yerde açtığım hissine kapılmaya başladım...:(

Biraz daha bilgi versem sanırım iyi olacak. Efendim, bu f242 nin tmr1 i 2 tane osilatör kaynağına sahip 1. si internal clock/4 2. RCO-RC1 arasına bağlanacak 200khz den düşük bir osilatör ile de çalışabiliyor.(datasheette özellikle bunun 32khzlik saat osilatörlerinin dolayısıyla Real-Time-Clock olayının hedef alındığını belirtmişler.) Bu seçimi T1CON registerinin 1. biti olan TMR1CS den yapılıyor. Ben aynı kodda sadece TMR1CS yi 0(internal clock) yaparak gayet güzel çalışıyor. Ama gelgör onu 1 yap yok kardeşim ne MPLABSIM de TMR1 registeri sayıyor nede Isis debug da sayıcı artmıyor.
Datasheette kullanıcı osilatörün çalışmaya başlaması için gerekli olan zamanı sağlamalıdır diye bir ifade var. Onuda sağladım standart delay.h kütüphanesi ile 100ms lik bir gecikme yerleştirdim bütün register atamalarının en üstüne değişiklik yok. Atladığım birşey olduğu kesin benim zannımca şu konfigürasyon ile ilgili veya bu tmr1 CCP ile ilgili olduğu için onun ilgili bir registerda bir değişlik yapmam gerekiyor. Umarım çözüm bulurum(uz)!

Buarada asıl amacım 3310 lcd si kullanarak kendime güzel bir masa saati yapmak tabii ki birde pic18 serisi picleri öğrenmek. Bittiğinde paylaşmaktan büyük bir zevk duyacağım.Herkese başarılar diliyorum.
/*  Merak ilmin hocasıdır.  */

hiashua

Hitech kullanıcısı oldukça az sanırım.  Ustalarımızdan bir bakmalarını rica ediyorum. Datasheet te böyle bir şeyin yapılacağını söylememiş olsa klasik yöntemleri kullanarak yapmayı düşünürdüm ama neden yapmayayım ki benim ne eksiğim var. Araştırmaya devam ediyorum.... Belki gerçek devre çalışabilir ama suan imkanım yok. Hayırsever bir arkadaşımız isterse hex kodu ve devre semasını göndersem board üzerinde bakabilirmi? ....
/*  Merak ilmin hocasıdır.  */

picman

arkadaşım aynı problemi bende yaşıyorum üstelik devrem gerçek ortamda kurulu durumda ama timer1 saymıyor neden anlamadım problemi düzeltirsem yazarım burda
Bilgi paylaştıkça artar..