Seri kesme

Başlatan death_free, 28 Aralık 2010, 13:28:17

death_free

selam tekrardan arkadaslar.2378 imle başlangıc için sizi bilmem ama epey bi yol ettim diye düşünüyorum (GPIO , UART1 pcle haberleşme,Timer kesmesi ,PLL denemeleri).Fakat UART1 le pcden işlemcime kesmeli olarak çalışmak istiyorum.keilin sitesinde http://www.keil.com/download/docs/347.asp bu uygulamayı gördüm genel bi çalışma oluşturulmuş ama C ve işlemci bilgi yetrsizliğimden biçok şeyi anlamadım.Sizden ricam seri kesme protolünü anlatabilirmisiniz ..neler  gerekli (" gerekli register tanımlamaları,program çatısı falan,konuyla ilgili döküman") yada basit bi örnek program .Aranızda bu sorunumla ilgili çalışması olan arkadasım varmı..Herkeze iyi çalışmalar
<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér

death_free

Arkadaşlar seri kesme program çatısını oluşturdum ve paylaşmak istedim.

/*PROJE = UART1 SERI KESME PROGRAMI*/															
#include <lpc23xx.h>
void Initialize(void);
void init_timer (void);
void sio_irq (void)__irq ;
void delay_ms(long ms); 
int Aku1;
//*******************************************************
/////////////////////////////////////////////////////////
/*                  INITIAL PROGRAMLAR				   */
/////////////////////////////////////////////////////////
//*******************************************************
 /*  UART1 INITIAL PROGRAM   */
void init_uart1() 
 {  	
	long baudrate;
	long fdiv;		

	baudrate=9600;
	PCONP|=(1<<4);
	PINSEL0 = 0x40000000;		/* RXT1 VE TXD1 ENABLE AYARLARI*/
	PINSEL1 =0x1;				/* RXT1 VE TXD1 ENABLE AYARLARI*/
	U1LCR = 0x83;				/* 8 BIT PARITY YOK 1 STOP BITI */
	fdiv = (12000000 / 16 ) / baudrate;
	U1DLL = fdiv % 256;
	U1DLM = fdiv / 256;
	U1FDR = 0x67; 				/* Fractional Divider */
	U1LCR = 0x03;				 /* DLAB = 0 */
	U1FCR = 0x00;
	U1FDR = 0x00;

  	VICVectAddr7 = (unsigned)sio_irq;
  	VICVectPriority7 = 15;        /*   " UART 1 in vectorel adresi" */
  	VICIntEnable = 0x80;   		 /* Enable UART1 Kesmesi */

  	U1IER = 3;       		     /* Enable UART1 RX and THRE Interrupts */
 }
//**********************************************************
////////////////////////////////////////////////////////////
 /*                ALT PROGRAMLAR 					   */
 //////////////////////////////////////////////////////////
 //********************************************************
/* SERI KESME ALT PROGRAMI */
void sio_irq (void) __irq 
{
	if (IOPIN1 &( 0X80000))	   // PORT 1 SE 
	{
		IOCLR1=0X80000;		   // CIKIS 0
	}
	else 
	IOSET1=0X80000;				// DEGILSE CIKIS 1
	
	while (!(U1LSR & 0x01)){}   /* Bilgi Almayi Bekle  */
	   			Aku1=(U1RBR);
	while(!(U1LSR &0x20)){}  	/* Bilgi gondermeyi bekle */
	   			U1THR=(Aku1);	/* Bilgi Gonder */
	VICVectAddr = 0x00000000;	/* Kesmeyi tekrar aktif etmek için sifirla */
}
//**********************************************************
////////////////////////////////////////////////////////////
/*                 MAIN 								   */
 //////////////////////////////////////////////////////////
 //********************************************************
int main() 
{
	  IODIR1=0X00080000;      /* p1.19 pinini cikisa tanimla */
	  init_uart1();			  /* Seri haberlesmeyi Kur */

	   while(1) 
	{
	}
 }


kesme adresine dallağındıgında her kesmede dallanıyormu diye bi çıkış portu belirledim.gözle görebileyim diye.code lar sorunsuz çalışıyor

ayrıca http://rapidshare.com/files/439760878/UartTest.rar

pc kısmına visual basicle ufak bi haberleşme programı yazdım.arm e kesmeyle gönderdiğim bilgiyi işleme tabi tutmadan geri gönderdim geri gelen bilgiyi visual basic kısmında karşılaştırdım doğruysa haberleşmenin başarılı oldugunu msgboxla uyardım.umarım bi faydası dokunur.
<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér

ahmet2004

*death_free *

Tabiki bir faydası dokunur.Zaman geçtikçe başka arkadaşlarımızda bu sorunlarla karşılaşabiliyor.

Muhakkak faydalanan çıkacaktır zaman içinde teşekkürler.

death_free

Ahmet hocam bana faydanız çok dokundu sağolun..Desteğiniz olmasaydı adım atlamakta zorlanıcaktım.Bugun de  EXINT denemesi yapıcam inşallah.yavaş yavaş ilerliyoruz
<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér