Haberler:

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

Ana Menü

Cortex CLK

Başlatan muhittin_kaplan, 09 Mart 2014, 17:13:42

muhittin_kaplan

bir clk çıkışı lazım, 4096 da bir kesme oluşturacak. bu CLK hızını ayarlayabilmeliyim.
Timer Kesmesinin içerisinde toggle yapıp kesmeyi saydırıyorum ve istenilen sayıya ulaştığında yapılması gerekenleri yapıyorum. ama bu beni yavaşlatıyor. yada tam tabiri ile Timer ı çok sık şekilde kesmeye sokuyorum.
Kısacası ben kurayım her 4096 da kesme oluştursun.

z

#1
DMA'e 4096 tane veri tasi diyeceksin.

DMA Timer ile tetiklenecek. Timer ayni zamanda bir pinden cikis verecek.

DMA'ye surdan veriyi al suraya yaz diyeceksin ama bu fake bir islem olacak.

DMA tamam tasidim dediginde int uretecek sende bunun uzerine timeri susturacaksin.

Aklima hizlica gelen bir cozum.

Bir de timerlar cascade baglanabiliyordu. Dokumana bir goz atmak lazim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

#2
Alıntı yapılan: muhittin_kaplan - 09 Mart 2014, 17:13:42
bir clk çıkışı lazım, 4096 da bir kesme oluşturacak. bu CLK hızını ayarlayabilmeliyim.
Timer Kesmesinin içerisinde toggle yapıp kesmeyi saydırıyorum ve istenilen sayıya ulaştığında yapılması gerekenleri yapıyorum. ama bu beni yavaşlatıyor. yada tam tabiri ile Timer ı çok sık şekilde kesmeye sokuyorum.
Kısacası ben kurayım her 4096 da kesme oluştursun.

SN74LV8154 Dual 16-Bit Binary Counters with 3-State Output Registers .

Nasıl baglanacagini soylemeye gerek yok tabii.

(yada 12-Bit Binary Counterlarda var dogrudan 4096 bolen,  MC14040B, 74HC4040, CD4040 gibi)
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

z

Cascade baglantiya benzer bir diger cozum soyle;

Timerlardan birisi bir pinden pals uretir.

Ikinci timer ise counter modunda calistirilir. Her iki timer da pes pese ateslenir.

Counter tastigi zaman int uretir ve int ile birlikte pals ureten timeri kapatirsin.

Burada countera yuklenecek degeri diger timera yuklenen degerin 4096 kati sececeksin. (Kabaca mantik boyle)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

camby

Hocam timer lar master slave calisiyor, o sekilde olabilir sanirim.

muhittin_kaplan

#5
Afedersiniz kıçı kırık bir led driver la uğraşıyorum. bilgileri gönderdikten sonra her4096 da blank yapılması gerekiyor muş.

int main(void)
{
	SystemInit(); //168mhz i?in system_stm32f4xx.c de de?i?iklik yap?ld?.
	Config_GPIO();
	TLC5940_Init();
	TLC5940_ClockInDC(ofsetValue);
	//init_tim7();

	int t;
	while (1){
				t++;
				PwmValue[0]=0;//R
				PwmValue[2]=0;//G
				PwmValue[1]=t;//B
				TLC5940_SetGS_And_GS_PWM(PwmValue);

				while(1){
					int i;
					GPIO_ResetBits(TLC5940_GPIO,BLANK_PIN);
					for (i = 0; i < 4096; ++i) {
						GSCLK_Pulse();
					}
					GPIO_SetBits(TLC5940_GPIO,BLANK_PIN);
				}


	}


timer burada comment şeklinde ama yaptığı işlem 50hz/4096 ya denk gelecek freq da kesme üretiyor. ve kesmeleri sayarken clk da üretiyorum kesme içerisinde. 4096 da blank yaptırıyorum. 

mesaj birleştirme:: 09 Mart 2014, 22:13:58

Artık, Farklı görüşlere ihtiyacım var.

mufitsozen

sayin @muhittin_kaplan bu bahsettiginiz kici kirik tlc5940'i bagladiginiz MCUnun markasi modeli nedir?
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

muhittin_kaplan


Klein

Alıntı yapılan: muhittin_kaplan - 09 Mart 2014, 22:11:10

Artık, Farklı görüşlere ihtiyacım var.


İki timer kullanmayan bir çözüm mü arıyorsun? Hem tek timer ile işi halledip hem de cpu zamanı kaybetmemek mi istiyorsun?

muhittin_kaplan

evet, clk üretsin istiyorum

muhittin_kaplan

Her 4096 da bana haber versin ki blank islemini yapayim.