<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pic dsPIC Arm7 Arm Cortex Programlama ve Projeler &#187; ARM7 Uygulamaları</title>
	<atom:link href="http://www.uicroarm.com/tag/arm7/feed" rel="self" type="application/rss+xml" />
	<link>http://www.uicroarm.com</link>
	<description>ds-pic arm-7 cortex nxp proje uygulama</description>
	<lastBuildDate>Wed, 01 Feb 2012 22:41:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nokia6100 ve LPC2148 video</title>
		<link>http://www.uicroarm.com/nokia6100-ve-lpc2148-video</link>
		<comments>http://www.uicroarm.com/nokia6100-ve-lpc2148-video#comments</comments>
		<pubDate>Fri, 21 Jan 2011 22:34:38 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[colorlcd]]></category>
		<category><![CDATA[LCD]]></category>
		<category><![CDATA[LPC2148]]></category>
		<category><![CDATA[nokia6100]]></category>
		<category><![CDATA[pixel]]></category>
		<category><![CDATA[SPI]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=142</guid>
		<description><![CDATA[

]]></description>
			<content:encoded><![CDATA[<p><object width="295" height="221"><param name="movie" value="http://www.youtube.com/v/-8PmWZ8KmPk?hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-8PmWZ8KmPk?hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="295" height="221"></embed></object><span id="more-142"></span></p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-8PmWZ8KmPk?hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-8PmWZ8KmPk?hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/nokia6100-ve-lpc2148-video/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STM32-Özel Kütüphane</title>
		<link>http://www.uicroarm.com/stm32-ozel-kutuphane</link>
		<comments>http://www.uicroarm.com/stm32-ozel-kutuphane#comments</comments>
		<pubDate>Fri, 23 Apr 2010 19:06:25 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[STM32 Uygulamaları]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[arm]]></category>
		<category><![CDATA[arm cortex]]></category>
		<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[cortex m3]]></category>
		<category><![CDATA[KEIL]]></category>
		<category><![CDATA[STM32]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=139</guid>
		<description><![CDATA[
Merhaba,
STM32; arm cortex m3 core tabanlı bir işlemcidir. Özellikleri tek kelimeyle mükemmel denebilir. Hızı 72Mhz&#8217;dir ama yeni versiyonlarında 120Mhz&#8217;e kadar çıkıyor. Dahili donanım microcontroller olarak nerdeyse herşey var. (12bit ADC, DAC, DMA, I2C, SPI, UART, USB vs.) Programlanması ise ST kütüphanesini kullanırsanız çok basittir ama çok fonksiyonel olmaz. Avantajı ise pek kafa patlatmazsınız, nasılsa hazır [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/ABCD0006_main.jpg" alt="" title="ABCD0006_main" width="295" height="221" class="alignnone size-full wp-image-140" /><span id="more-139"></span></p>
<p>Merhaba,</p>
<p>STM32; arm cortex m3 core tabanlı bir işlemcidir. Özellikleri tek kelimeyle mükemmel denebilir. Hızı 72Mhz&#8217;dir ama yeni versiyonlarında 120Mhz&#8217;e kadar çıkıyor. Dahili donanım microcontroller olarak nerdeyse herşey var. (12bit ADC, DAC, DMA, I2C, SPI, UART, USB vs.) Programlanması ise ST kütüphanesini kullanırsanız çok basittir ama çok fonksiyonel olmaz. Avantajı ise pek kafa patlatmazsınız, nasılsa hazır fonksiyonlar.</p>
<p>Benim seçtiğim yol ise en zoru diyebiliriz. Kendi kütüphanemi kendim oluşturdum ve 1bit/16bit/32bit erişim saylayan bir kütüphane oluşturdum. ST kütüphanesini kullanan arkadaşların çoğu arka planda işlemci neyapıyor bilmez. Bu kütüphaneyi oluşturmam yaklaşık 10 günümü aldı ama mükemmel sonuç oldu diyebilirim. </p>
<p>Öncelikle şunu söylüyeyim kütüphaneyi burada paylaşmıyacağım fakat kod örnekleri olacak, bilmeyenler mantığı kapacaktır. C ve derleyicinin gücü sayesinde böyle bir kütüphane oluşturulabilir.</p>
<p>Aşağıda bazı örnekler ekliyeceğim ve 32bite PIC&#8217;e bit bit yazıldığı gibi yazıldığını göreceksiniz. Size yeni fikirler verecektir.</p>
<pre class="brush: cpp; title: ; notranslate">
/**********************************************************/
/**********************************************************/
/*============Aykut ULUSAN, Elektronik Mühendisi, İzmir============= */
/**********************************************************/
/**********************************************************/

#define	    mylcd			my_lcd_reg-&gt;lcd    // porta mylcd olarak isim verdim

mylcd.bits.rs=1;               // 1bit yazılır - Register Selecte Bagli pin 1

mylcd.bits.data_4bit=da_ta&gt;&gt;4;   // 4bit yazılır - high order nibble

mylcd.bits.enb=1;                      // 1bit yazılır - enable 1

// systick'in load registerine 32bit sayı yükle
stk_load.b32=(u32)us*k_us; 

// systick'in Control registerinin Enable bitini 1 yap
stk_ctrl.bits.ENABLE=1;

// systick'in Control registerinin COUNTFLAG == 0 iken bekle
 while(!stk_ctrl.bits.COUNTFLAG);// bekle 

// porta'nın 9'unu 50Mhz bus hızı ve alternate pushpull yap
// 2'şer bit erişim
gpioa_crh.bits.MODE9=GpioMODE_50mhz_out;    // 50mhz out
gpioa_crh.bits.CNF9=GpioCNF_PUPD_in_APP_out;  // alternate pushpull

// 16bit erişim
usart1_brr.b16.low=0x16DA;  // 9600,
rcc_apb2enr.b16.low=0x007d;                      // A,B,C,D,E ve AF enable

/*
Aşağıda STM32 Reset Clock Configurasyon ayarlarını yapan program var,
Programın nasıl yapıldığını gösteren bir örnek.
*/

void
rcc_init(void){
    rcc_cr.bits.HSION=1;
    while(!rcc_cr.bits.HSIRDY);
//Reset SW[1:0], HPRE[3:0], PPRE1[2:0], PPRE2[2:0], ADCPRE[1:0] and MCO[2:0]
    rcc_cfgr.b32&amp;=(u32)0xF8FF0000;
    rcc_cr.b32&amp;=(u32)0xFEF6FFFF;
// HSEBYP bit clear
    rcc_cr.b32&amp;=0xFFFBFFFF;
// PLLSRC, PLLXTPRE, PLLMUL[3:0] and USBPRE bits clear
    rcc_cfgr.b32&amp;=(u32)0xFF80FFFF;
    rcc_cir.b32=0;

	rcc_cr.bits.HSERDY=0;
    rcc_cr.bits.HSEON=1;            // enable
    while(!rcc_cr.bits.HSERDY);      

    rcc_cfgr.bits.HPRE=0;           

    rcc_cfgr.bits.PPRE2=0;
    rcc_cfgr.bits.PPRE1=4;
// 56/8=7Mhz'de çalışsın , acelesi yok
    rcc_cfgr.bits.ADCPRE=3;
    flash_acr.b32&amp;=((u32)0x00000038);
    flash_acr.bits.LATENCY=2;
    flash_acr.bits.PRFTBE=1;        // Prefetch buffer enable, flash'a yazmak için gerekli
// Pllclk=8mhz*7mhz=56mhz
    rcc_cfgr.bits.PLLXTPRE=0;       // xtal'i bölme
    rcc_cfgr.bits.PLLSRC=1;         // PLL'e HSE'yi bağla
    rcc_cfgr.bits.PLLMUL=5;
// pll nable
    rcc_cr.bits.PLLON=1;
    while(!rcc_cr.bits.PLLRDY);
    rcc_cfgr.bits.SW=2;
    while(rcc_cfgr.bits.SWS!=2);
}
/**********************************************************/
/**********************************************************/
/**********************************************************/
</pre>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2010/04/ABCD0006_1000.jpg" rel="lightbox[139]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2010/04/ABCD0006_1000-150x150.jpg" alt="" title="ABCD0006_1000" width="150" height="150" class="alignnone size-thumbnail wp-image-141" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/stm32-ozel-kutuphane/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ARM7-NOK6100-VIDEO</title>
		<link>http://www.uicroarm.com/arm7-nok6100-video</link>
		<comments>http://www.uicroarm.com/arm7-nok6100-video#comments</comments>
		<pubDate>Mon, 15 Jun 2009 18:53:36 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[LPC2148]]></category>
		<category><![CDATA[nokia6100]]></category>
		<category><![CDATA[SPI]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=99</guid>
		<description><![CDATA[
Merhaba,
Bu video&#8217;da nokia6100 lcd ve arm7  ikilisi ile yapılabileceklerden bazıları var. Cep telefonu ile geç saatlerde çektiğim için video kaliteli değil. Videodan orjinal resimler aşağıdadır.Yakında bu lcd&#8217;yi yerleştirdiğim pcb dosyasını buradan vereceğim. (Eagle dosyası) . Üzerinde step-up voltaj konvertör var. LCD backlight için 5V&#8217;tu 8V yapmıştım.

]]></description>
			<content:encoded><![CDATA[<p><embed type="application/x-shockwave-flash" width="295" height="221" src="http://d.yimg.com/static.video.yahoo.com/yep/YV_YEP.swf?ver=2.2.40" allowfullscreen="true" flashvars="id=13990855&amp;vid=5306213&amp;lang=en-us&amp;intl=us&amp;thumbUrl=http%3A//l.yimg.com/a/p/i/bcst/videosearch/9444/87500174.jpeg&amp;embed=1" bgcolor="#000000"></embed><span id="more-99"></span></p>
<p>Merhaba,<br />
Bu video&#8217;da nokia6100 lcd ve arm7  ikilisi ile yapılabileceklerden bazıları var. Cep telefonu ile geç saatlerde çektiğim için video kaliteli değil. Videodan orjinal resimler aşağıdadır.Yakında bu lcd&#8217;yi yerleştirdiğim pcb dosyasını buradan vereceğim. (Eagle dosyası) . Üzerinde step-up voltaj konvertör var. LCD backlight için 5V&#8217;tu 8V yapmıştım.</p>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0002_800_600.jpg" rel="lightbox[99]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0002_800_600-150x150.jpg" alt="ABCD0002_800_600" title="ABCD0002_800_600" width="150" height="150" class="alignnone size-thumbnail wp-image-100" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0003_800_600.jpg" rel="lightbox[99]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0003_800_600-150x150.jpg" alt="ABCD0003_800_600" title="ABCD0003_800_600" width="150" height="150" class="alignnone size-thumbnail wp-image-101" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0004_800_600.jpg" rel="lightbox[99]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0004_800_600-150x150.jpg" alt="ABCD0004_800_600" title="ABCD0004_800_600" width="150" height="150" class="alignnone size-thumbnail wp-image-102" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0001_800_600.jpg" rel="lightbox[99]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/ABCD0001_800_600-150x150.jpg" alt="ABCD0001_800_600" title="ABCD0001_800_600" width="150" height="150" class="alignnone size-thumbnail wp-image-103" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/volume_mod.jpg" rel="lightbox[99]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/volume_mod-150x150.jpg" alt="volume_mod" title="volume_mod" width="150" height="150" class="alignnone size-thumbnail wp-image-104" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/06/bugsbunny_mod.jpg" rel="lightbox[99]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/06/bugsbunny_mod-150x150.jpg" alt="bugsbunny_mod" title="bugsbunny_mod" width="150" height="150" class="alignnone size-thumbnail wp-image-105" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/arm7-nok6100-video/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>ARM7 &#8211; SPI Haberleşme (C)</title>
		<link>http://www.uicroarm.com/arm7-spi-haberlesme-c</link>
		<comments>http://www.uicroarm.com/arm7-spi-haberlesme-c#comments</comments>
		<pubDate>Fri, 01 May 2009 22:52:18 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[12bit]]></category>
		<category><![CDATA[74HC595]]></category>
		<category><![CDATA[CLCD]]></category>
		<category><![CDATA[color]]></category>
		<category><![CDATA[GLCD]]></category>
		<category><![CDATA[LPC2148]]></category>
		<category><![CDATA[SPI]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=80</guid>
		<description><![CDATA[
Bu uygulamada LPC2148&#8242;in SPI modulunu kullanacağız. LPC2000 serisinin , microchip 8-16bit işlemcilerine göre çok daha fonksiyonel ve kullanışlı. Örneğin göndereceğiniz bit sayısını (4-16bit) seçebiliyorsunuz bence bu çok önemli bir faktör özellikle hız gerektiren uygulamalarda, ayrıca yine bus frekansı microchip işlemcilerine göre çok daha hızlı , bu özellikte grafik lcd vs. sürerken önemli oluyor.Zaten tüm hız [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-81" title="bugsbunny_main" src="http://www.uicroarm.com/wp-content/dosyalar/2009/05/bugsbunny_main.jpg" alt="bugsbunny_main" width="295" height="221" /><span id="more-80"></span></p>
<p>Bu uygulamada LPC2148&#8242;in SPI modulunu kullanacağız. LPC2000 serisinin , microchip 8-16bit işlemcilerine göre çok daha fonksiyonel ve kullanışlı. Örneğin göndereceğiniz bit sayısını (4-16bit) seçebiliyorsunuz bence bu çok önemli bir faktör özellikle hız gerektiren uygulamalarda, ayrıca yine bus frekansı microchip işlemcilerine göre çok daha hızlı , bu özellikte grafik lcd vs. sürerken önemli oluyor.Zaten tüm hız gerektiren uygulama IC&#8217;leri SPI ile haberleşir.</p>
<p>Aşağıya eklediğim program ile 74hc595&#8242;e SPI modulü ile yazıyoruz ve latch ediyoruz.74hc595 ile haberleşmek için 3 uç kullanılır. Serial data, serial clock ve latch (program içinde load yazdım çünkü bu pin hem datayı çıkış registerlerine yüklüyor hemde latch ediyor) kullanılıyor. Data ve clock için SPI0&#8242;ın data ve clock pinleri bağlanır , latch için ise P0.7 portu bağlanır.  </p>
<pre class="brush: cpp; title: ; notranslate">
/*****************************************************************************/

// Aykut ULUSAN, Elektronik Mühendisi, IZMIR

/*****************************************************************************/
#include &quot;lpc214x.h&quot;	// Nxp LPC2148 için header file

#define	SPI_PIN_CONFIG		0x1500	// SSEL kullanmiyacagiz
#define	PCLK	30000000 	//30Mhz

#define	HC595_LOAD		0x80	// P0.7'yi latch icin kullanacagiz
#define	HC595_LOAD_HIGH		IOSET0=HC595_LOAD
#define	HC595_LOAD_LOW		IOCLR0=HC595_LOAD

void
sistem_init(){
// Processor clock=5*12Mhz=60Hz
   PLL0CFG=0x24;
// PLLCON ve PLLCFG registerleri içerigi degistirildiginde , asagidaki
// proses uygulanir, 1) PLL0FEED=0xAA ve 2)PLL0FEED=0x55
   PLL0FEED=0xAA;	 	// Feed process
   PLL0FEED=0x55;

   PLL0CON=0x1;  		// PLL'i enable	et
   PLL0FEED=0xAA;		// Feed process
   PLL0FEED=0x55;
   while(!(PLL0STAT&amp;0x400)) ;   // PLL kitleninceye kadar bekle (5*12Mhz=60Mhz'e kitlenir)

   PLL0CON=0x3;	 	// PLL'i clock kaynagi gibi bagla
   PLL0FEED=0xAA;	 	// Feed process
   PLL0FEED=0x55;

   MAMCR=0x2;	  		// MAM full Enable
   MAMTIM=0x4;			// MAM fetch cycles = 4CCLK

   VPBDIV=0x02;	 	// 30 MHz
}

void
DLY_MS(long ms){
   long i,j;
   for (i = 0; i&lt;ms; i++ )
      for (j = 0; j&lt;7500; j++ );
}

void
SPI0_SETUP(void){
   IO0DIR|=HC595_LOAD;       	// P0.7'yi port olarak kullanacagiz
   IO0CLR=HC595_LOAD;        	// P0.7=0
   PINSEL0|=0x1500;			// pinler SPI için kullanılacak
   S0SPCR=	  (0&lt;&lt;3) |			// CPHA = 0 , clock'un ilk kenarinda data sample yapilir
                  (0&lt;&lt;4) |			// CPOL = 0 ,clock aktif high
                  (1&lt;&lt;5) |			// MSTR=1 master mode
                  (0&lt;&lt;6);			// ilk önce 7. bit(msb) gönderilir
   S0SPCCR=30;					//1Mhz clock hizi
}

void
SPI0_SEND(unsigned char da_ta){
   S0SPDR=da_ta;				// datayi yukle
   while(!(S0SPSR&amp;0x80));	// data gonderme tamamlandiginda S0SPRS'nin 7. biti(SPIF) set olur
   IOSET0=HC595_LOAD;	 		// latch et
   IOCLR0=HC595_LOAD;
   da_ta=S0SPDR;				// SPIF flag'i clear etmek icin okunur
}

int
main(void){
   unsigned char i=0;
   sistem_init();
   SPI0_SETUP();		 		// SPI0'i hazirla
   while(1){
      SPI0_SEND(i++);		 	// gonder
      DLY_MS(200);
   }
}
</pre>
<p>SPI modul kullanımı öğrenildikten sonra SPI ile haberleşen tüm elektronik komponentleri kontrol edebilirsiniz.<br />
Benim yaptığım bazı uygulamarların resimleri aşağıdadır.</p>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/05/bugsbunny_mod.jpg" rel="lightbox[80]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/05/bugsbunny_mod-150x150.jpg" alt="bugsbunny_mod" title="bugsbunny_mod" width="150" height="150" class="alignnone size-thumbnail wp-image-82" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/05/ecel_mod.jpg" rel="lightbox[80]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/05/ecel_mod-150x150.jpg" alt="ecel_mod" title="ecel_mod" width="150" height="150" class="alignnone size-thumbnail wp-image-83" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/05/saat_mod.jpg" rel="lightbox[80]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/05/saat_mod-150x150.jpg" alt="saat_mod" title="saat_mod" width="150" height="150" class="alignnone size-thumbnail wp-image-84" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/05/volume_mod.jpg" rel="lightbox[80]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/05/volume_mod-150x150.jpg" alt="volume_mod" title="volume_mod" width="150" height="150" class="alignnone size-thumbnail wp-image-85" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/arm7-spi-haberlesme-c/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Nxp-Arm7 PWM</title>
		<link>http://www.uicroarm.com/nxp-arm7-pwm</link>
		<comments>http://www.uicroarm.com/nxp-arm7-pwm#comments</comments>
		<pubDate>Sat, 14 Mar 2009 14:46:47 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[duty cycle]]></category>
		<category><![CDATA[LPC2148]]></category>
		<category><![CDATA[PWM]]></category>
		<category><![CDATA[RGB LED]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=63</guid>
		<description><![CDATA[
Pwm uygulaması : LPC2148&#8242;in 6 tane pwm portu var, hepsi birbirinden bağımsız olarak kullanılabilir. Kullanımıda oldukça basit registerlere sahip. Aşağıya  pwm2 portunu %50 duty cycle ile aktif eden bir program ekliyeceğim. Aynı şekilde diğer pwm portlarınıda istediğiniz duty cycle&#8217;da çalıştırabilirsiniz. (Pwm2 pini P0.7&#8242;dir)


#include

void sistem_setup(void);
void DLY_MS(long ms);
void pwm_init (void);
#define P0_0    0x00000001

int
main(void){
  [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-64" title="pwm_kucukpic" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/pwm_kucukpic.jpg" alt="pwm_kucukpic" width="295" height="221" /><span id="more-63"></span></p>
<p><strong>Pwm uygulaması : </strong>LPC2148&#8242;in 6 tane pwm portu var, hepsi birbirinden bağımsız olarak kullanılabilir. Kullanımıda oldukça basit registerlere sahip. Aşağıya  pwm2 portunu %50 duty cycle ile aktif eden bir program ekliyeceğim. Aynı şekilde diğer pwm portlarınıda istediğiniz duty cycle&#8217;da çalıştırabilirsiniz. (Pwm2 pini P0.7&#8242;dir)</p>
<pre class="brush: cpp; title: ; notranslate">

#include

void sistem_setup(void);
void DLY_MS(long ms);
void pwm_init (void);
#define P0_0    0x00000001

int
main(void){
   sistem_setup();
//	SCS = 0x03;					// fast I/O moduna geelim
   PINSEL0=P0_0&lt;&lt;15;                            // PWM portları seçilir
   pwm_init();
   while(1);
}

void
pwm_init (void){
   PWMPR=0;			  // PWMTC , her Pclk+1'de artar
   PWMMCR=0x02; 	       // PWMMR0 seçilir
   PWMMR0=3000;
   PWMMR2=1500; 		// PWM2 için duty cycle %50
   PWMLER=0x5; 		         // PWMMR0, PWMMR2 değerlerini latch et
   PWMPCR=0x400; 	       // PWM2 output enable
   PWMTCR=0x09; 		// timer start ve PWM enable edilir
}

void
sistem_setup(void){
// Processor clock=5*12Mhz=60Hz
   PLL0CFG=0x24;
// PLLCON ve PLLCFG registerleri ierigi degistirildiginde , asagidaki
// proses uygulanir, 1) PLL0FEED=0xAA ve 2)PLL0FEED=0x55
   PLL0FEED=0xAA;	 	// Feed process
   PLL0FEED=0x55;
   PLL0CON=0x1;  		// PLL'i enable	et
   PLL0FEED=0xAA;		// Feed process
   PLL0FEED=0x55;
   while(!(PLL0STAT &amp; 0x400)) ;   // PLL kitleninceye kadar bekle (5*12Mhz=60Mhz'e kitlenir)
   PLL0CON=0x3;	 	// PLL'i clock kaynagi gibi bagla
   PLL0FEED=0xAA;	 	// Feed process
   PLL0FEED=0x55;
   MAMCR=0x2;	  	// MAM full Enable
   MAMTIM=0x4;		// MAM fetch cycles = 4CCLK
   VPBDIV=0x02;	 	// PCLK = 30 MHz
}
void
DLY_MS(long ms){
   long i;
   unsigned int j;
   for (i = 0; i &lt; ms; i++ )
      for (j = 0; j &lt; 7500; j++ );
}
</pre>
<p>3 PWM portunu kullanarak kaliteli RGB ledlerle istediğiniz rengi elde edebilirsiniz. Bazı resimler aşağıdadır.<br />
<a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0001.jpg" rel="lightbox[63]"><img class="alignnone size-thumbnail wp-image-65" title="abcd0001" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0001-150x150.jpg" alt="abcd0001" width="150" height="150" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0003.jpg" rel="lightbox[63]"><img class="alignnone size-thumbnail wp-image-66" title="abcd0003" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0003-150x150.jpg" alt="abcd0003" width="150" height="150" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0005.jpg" rel="lightbox[63]"><img class="alignnone size-thumbnail wp-image-67" title="abcd0005" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0005-150x150.jpg" alt="abcd0005" width="150" height="150" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0006.jpg" rel="lightbox[63]"><img class="alignnone size-thumbnail wp-image-68" title="abcd0006" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0006-150x150.jpg" alt="abcd0006" width="150" height="150" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0007.jpg" rel="lightbox[63]"><img class="alignnone size-thumbnail wp-image-69" title="abcd0007" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0007-150x150.jpg" alt="abcd0007" width="150" height="150" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0008.jpg" rel="lightbox[63]"><img class="alignnone size-thumbnail wp-image-70" title="abcd0008" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/abcd0008-150x150.jpg" alt="abcd0008" width="150" height="150" /></a><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/800x600.jpg" rel="lightbox[63]"><img src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/800x600-150x150.jpg" alt="800x600" title="800x600" width="150" height="150" class="alignnone size-thumbnail wp-image-72" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/nxp-arm7-pwm/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

