Haberler:

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

Ana Menü

Multitask time slice

Başlatan eseneren, 01 Şubat 2011, 08:54:16

eseneren

Selamlar

Daha once timer ile multıtask calısması yapan varmı kod daha zıyade algoritma paylasan olursa sevınırım.

PCL PCH hitech de varmı varsa 8 bitlik bir alandamı saklı yoksa PC olarak 16 bit sabitmidir
Hitech de ProgramCountera nasıl ulasırım asm kodu eklemeden ( user manuelde PCLATH var PCL PCH yok)
Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

Tagli

18 serisinde PC 16 değil 21 bittir. PCH ve PCU zaten doğrudan erişilebilir değil. Bunlara PCLATH ve PCLATU ile dolaylı olarak erişilebilir. Ayrıca stack'in tepesine TOSU, TOSH ve TOSL register'ları ile erişebilirsin. STKPTR ise stack'in tepesine işaret eder.
Gökçe Tağlıoğlu

eseneren

Tagli sagol dedim bitirir projemi koyar teşekkürümüde ederim dedim de işin içinden çıkamadım.
beklemeden peşin teşşekkür edeyim :)

Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk

Tagli

Açıkçası 18 serisiyle yeni yeni uğraşmaya başladım. Deneyimden çok datasheet'e dayanarak konuşuyorum. Aslında ufak bir LED yakıp söndürme denemesi yapmak lazım, bu işin "Hello World" uygulaması bu. Mesela 3 tane LED olacak ama hepsi farklı aralıklarla yanıp sönecek. Normalde bu tür şeyleri assembly'de yazma taraftarıyım ama forumda daha fazla kişinin işine yaraması için C18'de yazmak daha iyi olacak sanırım. Yakın zamanda bir deneme yapmayı planlıyorum, o zaman burada paylaşırım.

Yukarıda bahsettiğim LED denemesiyle ilgili internette örnekler görmüştüm diye hatırlıyorum. Onları bulabilirsen beni beklemene gerek kalmaz :) Belki bu forumda bile bulabilirsin.

Gerçi şimdi aklıma geldi de LED denemesinde stack'i kurcalamadan da bu işi yapmak mümkün. Ama örnek kodda mutlaka stack işini de dahil edeceğim. Yoksa bir anlamı yok zaten...
Gökçe Tağlıoğlu

eseneren

877A ile yapıyorum. 3 Led farklı frekanslarda  interruptla yada fonksiyon ile yaptım.
Şu an uğraştığım kare dalga olarak re notası üretiyor.
void re(const unsigned char x)
{
	for(i=0;i<90/x;i++)//Re
	{
		Z=1;
		__delay_us(500);
		Z=0;
		__delay_us(904);
		__delay_ms(2);
	}
}


bunun gibi melodi oluşturdumğumda 2-3 saniye boyunca sadece bu işi yapıyor.
Şimdi istediğim dot matrisi tararken aynı anda bu melodiyi çalsın istiyorum.
void re2(void)
{
TMR1IE=1;	
GIE=1;	
	if(i<=200)//Re
	{
		Z=1;
		TMR1H=56; // TMR1'e 65536-50000 yükleniyor.
		TMR1L=184;
		GIE=1;
ana programa don;
		Z=0;
		TMR1H=56; // TMR1'e 65536-50000 yükleniyor.
		TMR1L=184;
		GIE=1;
ana programa don;
	}
i=0;
TMR1IE=0;
GIE=0;
}


İste tamamlayamadımda bu konuda uğraşıyorum.

Seçim yapmak için durum hakkında bilgi sahibi olmak zorunda değilsin, sonucuna hazır olmak için durum hakkında kaygılanırsın.  http://bit.ly/gixfTk