<?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; rs232</title>
	<atom:link href="http://www.uicroarm.com/tag/rs232/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>Nxp arm7 &#8211; Uart</title>
		<link>http://www.uicroarm.com/nxp-arm7-uart</link>
		<comments>http://www.uicroarm.com/nxp-arm7-uart#comments</comments>
		<pubDate>Mon, 09 Mar 2009 13:17:55 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[KEIL]]></category>
		<category><![CDATA[LPC2148]]></category>
		<category><![CDATA[rs232]]></category>
		<category><![CDATA[uart]]></category>

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

Merhaba,
Öncelik sitenin amacı konusunda açıklık getirmeliyim. Siteyi inceleyen çoğu arkadaş içeriği beğendi, bazı arkadaşlar ise açıklamaların daha detaylı olmasını istiyorlar. Bu sitede benim amacım: mpasm, asm30, C30, keil , arm7 assembly veya C dil ve programlarını detaylıca anlatmak olmadığı için, isteyen arkadaş devam etmek istediği program ve/veya  dil(leri) araştırıp öğrenmenlidir. Fakat tavsiye isteyen arkadaşlara [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-59" title="uart_prog_kucuk" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/uart_prog_kucuk.jpg" alt="uart_prog_kucuk" width="295" height="221" /><br />
<span id="more-58"></span></p>
<p>Merhaba,</p>
<p>Öncelik sitenin amacı konusunda açıklık getirmeliyim. Siteyi inceleyen çoğu arkadaş içeriği beğendi, bazı arkadaşlar ise açıklamaların daha detaylı olmasını istiyorlar. Bu sitede benim amacım: mpasm, asm30, C30, keil , arm7 assembly veya C dil ve programlarını detaylıca anlatmak olmadığı için, isteyen arkadaş devam etmek istediği program ve/veya  dil(leri) araştırıp öğrenmenlidir. Fakat tavsiye isteyen arkadaşlara tabii ki elimden geldiğince yardımcı olamaya çalışacağım. Elektronik donanım tasarımı olsun, bilgisayar veya programlama dilleri olsun hepsinin öğrenmek için tek bir ortak noktası vardır. İngilizce, bu dil mesleğimizde ilerleyebilmek için şarttır. Şimdi uygulamamıza geçelim.</p>
<p>Bu uygulamızda  LPC2148&#8242;in uart1&#8242;inden 19200bps ile data gonderimi yapacağız. Bunun için bize gerekenler.</p>
<p>* Keil C compiler</p>
<p>* LPC2148 development board</p>
<p>* ISP programlayıcı (in circuit serial programmer)</p>
<p>* Hiper terminal veya rs232&#8242;den alınan verilerimizi gözlemliyebileceğimiz başka bir program<br />
Ben bu örnekte Ersin Keçiş adlı bir arkadaşımızın geliştirdiği rs232 tester adlı programı kullanacağım.<br />
http://ersinkecis.com/RS232_Tester.zip (Böyle faydalı bir program hazırladığı için Ersin Keçiş&#8217;e teşekkürler)</p>
<p>Program resmi ve programın kendisi aşağıdadır.</p>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/uart_prog_buyuk.jpg" rel="lightbox[58]"><img class="alignnone size-thumbnail wp-image-60" title="uart_prog_buyuk" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/uart_prog_buyuk-150x150.jpg" alt="uart_prog_buyuk" width="150" height="150" /></a></p>
<pre class="brush: cpp; title: ; notranslate">
/*****************************************************************************/
#include &lt;LPC214x.h&gt;
//#include &quot;port_pinleri.h&quot;

void  sistem_setup(void);
void  DLY_MS(long ms);
void  uart1_setup(void);
void  u1_karakter_gonder(char ch);
void  u1_string_gonder(const char *ch);

const char kutay[]={&quot;UART1 ile, 19200bps'de data gonderiyoruz\r\n&quot;};

int
main(void){
   sistem_setup();
   SCS = 0x03;			// fast I/O moduna geelim
   uart1_setup();			// uart1,19200bps,1 stop bit, parity yok
   while (1){
      u1_string_gonder(&amp;kutay[0]);	// uart1'den 19200bps'de diziyi gonder
      DLY_MS(1000);
      u1_string_gonder(&quot;www.uicroarm.com&quot;);
      DLY_MS(1000);
   }
}

// Uart1 baudrate = PCLK(VPB Clock) / 16*(16*U1DLM+U1DLL) ile bulunur
// Yukaridaki formul bazi durumlarda tam olarak baudrate ayarini yapamiyabilir
// yani sonu kesirli ikabilir , o zaman kesirli bolme islemlerini yapabilen
// U1FDR registeride kullanilmalidir. (U1 fractional divider register)
void
uart1_setup(void){
   PINSEL0|=0x50000;       // RxD1 ve TxD1 pinleri enable
   U1LCR=0x83;    			// 8 bits, Parity yok, 1 Stop bit
   U1DLL = 97;             // 19200 Baud Rate ,
   U1DLM = 0;
   U1LCR = 0x03;           // baudrate ayarlandi
}

void
u1_karakter_gonder (char ch){    	// Karakteri seri porta yaz
   while (!(U1LSR &amp; 0x20));	   // bus idle oluncaya kadar bekle
   U1THR=ch;			     // karakter bus'a
}

void
u1_string_gonder(const char *ch){	   	// string yazilacak
   while(*ch)					   		//
      u1_karakter_gonder(*ch++);
}

void
sistem_setup(void){
// Processor clock=5*12Mhz=60Hz
   PLL0CFG=0x24;	 	// MSEL = 4(multiplier =5),PSEL(PLL divider) = 2
// 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 (Pclk=Peripheral Clock)
}

// CCLK=60MHz iken 1ms
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>Bu program ile elde ettiğimiz sonuç:</p>
<p><a href="http://www.uicroarm.com/wp-content/dosyalar/2009/03/uart_sonuc.jpg" rel="lightbox[58]"><img class="alignnone size-thumbnail wp-image-61" title="uart_sonuc" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/uart_sonuc-150x150.jpg" alt="uart_sonuc" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/nxp-arm7-uart/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

