<?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; NXP</title>
	<atom:link href="http://www.uicroarm.com/tag/nxp/feed" rel="self" type="application/rss+xml" />
	<link>http://www.uicroarm.com</link>
	<description>ds-pic arm-7 cortex nxp proje uygulama</description>
	<lastBuildDate>Fri, 23 Apr 2010 19:11:07 +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; 74HC595 sürmek</title>
		<link>http://www.uicroarm.com/nxp-arm7-temel-bilgiler-spi-modulunu-kullanmadan-74hc595-surmek</link>
		<comments>http://www.uicroarm.com/nxp-arm7-temel-bilgiler-spi-modulunu-kullanmadan-74hc595-surmek#comments</comments>
		<pubDate>Sun, 01 Mar 2009 17:13:55 +0000</pubDate>
		<dc:creator>Aykut</dc:creator>
				<category><![CDATA[ARM7 Uygulamaları]]></category>
		<category><![CDATA[74HC595]]></category>
		<category><![CDATA[LPC2148]]></category>
		<category><![CDATA[NXP]]></category>
		<category><![CDATA[SPI]]></category>

		<guid isPermaLink="false">http://www.uicroarm.com/?p=29</guid>
		<description><![CDATA[
Merhaba,
Bilindiği gibi çeşitli haberleşme (I2C, SPI, CAN, UART,USB vs) biçimleri vardır. Çoğu uicrocontroller bu haberleşme modüllerine sahiptir. Tabii uicrocontroller arasında mutlaka yetenek farkları vardır. Mesela microchip 8-16 bit&#8217;lerde ürünlerinde haberleşme için bit sayısı sabittir( 8 ve/veya 16bit ). NXP LPC serisinde 4-16 bit sayısı seçilebilir özelliktedir. Bu özelliklik hem hız hemde kullanışlılık sağlar. Mesela bazı [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-28" title="led_13" src="http://www.uicroarm.com/wp-content/dosyalar/2009/03/led_13.jpg" alt="led_13" width="295" height="221" /><span id="more-29"></span></p>
<p>Merhaba,<br />
Bilindiği gibi çeşitli haberleşme (I2C, SPI, CAN, UART,USB vs) biçimleri vardır. Çoğu uicrocontroller bu haberleşme modüllerine sahiptir. Tabii uicrocontroller arasında mutlaka yetenek farkları vardır. Mesela microchip 8-16 bit&#8217;lerde ürünlerinde haberleşme için bit sayısı sabittir( 8 ve/veya 16bit ). NXP LPC serisinde 4-16 bit sayısı seçilebilir özelliktedir. Bu özelliklik hem hız hemde kullanışlılık sağlar. Mesela bazı SPI haberleşmeye sahip IC&#8217;ler 9bit ile sürülür. İlkbit genelde Komut/Data veya Read/Write biti olmaktadır. SPI modulunu 9 bite configure ederek 9bitte rahatça haberleşebiliriz.</p>
<p>Aşağıya SPI modulunu kullanmadan 74HC595&#8242;in çıkışlarına  bağlı ledleri sürmek için bir program yazacağım.<br />
Burada önemli olan bilgi 74HC595 &#8216;in CMOS olduğu ve 2V-5V aralığında çalışabildiğidir. (LPC2148 3V3 ile çalışır ve çıkış voltajı lojik hi olarak 3V3&#8242;tür). LPC2148, 74HC595&#8242;in TTL olan versiyonlarınıda (mesela 74HCT595) sürebilir fakat bu IC&#8217;ler 3V3 ile beslenemezler.</p>
<pre class="brush: cpp;">

/*****************************************************************************/
// Aykut ULUSAN, Elektronik Mühendisi, IZMIR
/*****************************************************************************/
#include &quot;lpc214x.h&quot;	// Nxp LPC2148 iin header file
// P0.21 SDA (74hc595 serial data girişine bağlayınız)
// P0.22 SCK (74hc595 serial clock girişine bağlayınız)
// P0.23 LOAD (74hc595 latch girişine bağlayınız)
#define HC595_SDA_LOW		FIO0CLR = 0x00200000   	// Data low
#define HC595_SDA_HIGH 		FIO0SET = 0x00200000	// Data high
#define HC595_SCK_LOW 		FIO0CLR = 0x00400000   	// clock low
#define HC595_SCK_HIGH 		FIO0SET = 0x00400000	// clock high
#define HC595_LOAD_LOW 		FIO0CLR = 0x00800000   	// Load low
#define HC595_LOAD_HIGH 	FIO0SET = 0x00800000	// Load high

void
s_init(){
// 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;amp;amp;amp; 0x400)) ;  // PLL'i kitle
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;	 	          // Peripheral Clock=30Mhz olsun
}

// CCLK=60MHz iken  1ms
void
DLY_MS(long ms){
long i,j;
for (i = 0; i &lt; ms; i++ )
for (j = 0; j &lt; 7500; j++ );
}

void
HC595_WR(unsigned char c){
unsigned char t;
for(t=0;t&lt;8;t++){
HC595_SDA_LOW;		   // default olarak data low
if(c&amp;amp;amp;amp;0x80)			 // biti test et
HC595_SDA_HIGH;	   // bit set ise portu set et
HC595_SCK_HIGH;	   	   // clock puls
HC595_SCK_LOW;
c&lt;&lt;=1;				 // sola 1 kez
}
HC595_LOAD_HIGH;		   // latch et
HC595_LOAD_LOW;
}

void
main(void){
unsigned char c=0;
s_init();			            // PLL ve MAM ayarlanir
SCS = 0x03;				// I/O portlar fast mode'da olsun
FIO0DIR |= 0x00E00000;	          // pin P0.21,P0.22 ve P0.23 ikis
while (1){	 			  //
HC595_WR(c++);
DLY_MS(1000);
};

}
/*****************************************************************************/
</pre>
<p>Bu uygulamada 74HC595 entegresi çıkışlarına bağlı 8 led üzerinde bir counter uygulamasını tamamladık.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.uicroarm.com/nxp-arm7-temel-bilgiler-spi-modulunu-kullanmadan-74hc595-surmek/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
