lpc 1114 hakkında

Başlatan l0rd, 17 Haziran 2015, 21:48:51

l0rd

Merhaba , Arm  temellerini atmak için forumdan stm32f4 ile led yakma örneğini hem registerlarla hemde kütüphane fonksiyonlarını kullanarak incelemiştim aynı konuya farklı bir pencereden bakmak için lpc1114 ile de led yakma örneği yapmak istiyorum.

Fakat lpc1114 e ait standart kütüphaneleri bulamadım. (St deki Standart Peripheral Library nin burdaki karşılığı.) Bu konuda link atabilirmisiniz.

Ayrıca aynı örneği registerlarlada yazmak istiyorum.Nasıl bir tema kulanılıyor.Örneğin st de önce stm32f4xx.h ı tanımlıyotduk sonra SystemInit fonksiyonunu yazıyorduk daha sonrada main ve diğer fonsiyonlar.Bu işler lpc1114 de nasıl yürüyor?

Bu şekilde mi?

#include<lpc11xx.h>
SytemInit()
{
//Ayarlar
}

main()
{
//Kodlar
}

what you do that defines you

Logan

#1
Günaydın.

Aşağıdaki adımları takip ederek yapabilirsin.

1- Projenin altına "startup_LPC11xx.s" ve "systemLPC11xx.c" dosyalarını ekle.
2- Programın başına #include "LPC11xx.h"ekle.
3- Programın main kısmında "Pio_Init" fonksiyonu yarat. Bu fonksiyonun içinde portlarını ayarla.
4- "SystemCoreClockUpdate()" ile osilatör vs. vs. ayarlarını yap.
5- Yarattığın "Pio_Init" alt programını çağır ve port giriş çıkışlarını ayarla.
6- Ana programa geç.

Bitince şöyle görünmesi gerek.

#include "LPC11xx.h"

void
Pio_Init (void)
{
     // Giriş çıkış ayarları.
}

int
main(void)
{
	SystemCoreClockUpdate();
	Pio_Init();

	while (1)
	{
		//ana program.
	}
}


Not: Derleyici olarak Keil kullandığını varsayıyorum.
İmza.

MC_Skywalker

NXP nin libaryleri kendi derleyicisi LPCExpresso için www.lpcware.com  adresinde döküman ve örneklere ulaşabilirsin

l0rd

Alıntı yapılan: Logan - 18 Haziran 2015, 08:26:56
Günaydın.

Aşağıdaki adımları takip ederek yapabilirsin.

1- Projenin altına "startup_LPC11xx.s" ve "systemLPC11xx.c" dosyalarını ekle.
2- Programın başına #include "LPC11xx.h"ekle.
3- Programın main kısmında "Pio_Init" fonksiyonu yarat. Bu fonksiyonun içinde portlarını ayarla.
4- "SystemCoreClockUpdate()" ile osilatör vs. vs. ayarlarını yap.
5- Yarattığın "Pio_Init" alt programını çağır ve port giriş çıkışlarını ayarla.
6- Ana programa geç.

Bitince şöyle görünmesi gerek.

#include "LPC11xx.h"

void
Pio_Init (void)
{
     // Giriş çıkış ayarları.
}

int
main(void)
{
	SystemCoreClockUpdate();
	Pio_Init();

	while (1)
	{
		//ana program.
	}
}


Not: Derleyici olarak Keil kullandığını varsayıyorum.


Evet hocam keil kullanıyorum fakat ben  "systemLPC11xx.c"  adlı dosyayı bulamadım bu dosya nerede acaba?
Birde hocam elinizde yapılmış örnek kodlar varsa gönderebilir misiniz?



Alıntı yapılan: MC_Skywalker - 18 Haziran 2015, 13:45:02
NXP nin libaryleri kendi derleyicisi LPCExpresso için www.lpcware.com  adresinde döküman ve örneklere ulaşabilirsin

Hocam sağolun dediğiniz adresten buldum.
what you do that defines you

Logan

Merhaba.

Örnek kod gönderemem. Ancak nette LPC11Cxx serisinin bütün örnek programları mevcut. Sistem dosyalarını da upload ettim. Aşağıdaki linkten çekebilirsin.

http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html]http://dosya.co/71niu12e6d23/system_LPC11xx.c.html
http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html[/url]
İmza.

l0rd

Alıntı yapılan: Logan - 07 Temmuz 2015, 17:34:46
Merhaba.

Örnek kod gönderemem. Ancak nette LPC11Cxx serisinin bütün örnek programları mevcut. Sistem dosyalarını da upload ettim. Aşağıdaki linkten çekebilirsin.

http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html]http://dosya.co/71niu12e6d23/system_LPC11xx.c.html
http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html[/url]

Sağolun hocam sistem dosyaları çalışıyor.Verdiğiniz şemaya uygun bir program yazdım fakat led yanıp sönmüyor.Sorun ne olabilir?

#include <LPC11xx.h>


void delay(void);


void Pio_Init (void)
{
    LPC_GPIO0->DIR |= (1<<7);   
}

int main (void) {       
 
    SystemCoreClockUpdate();
    Pio_Init();

while (1) {            
        LPC_GPIO0->DATA |= (1<<7);  
	delay();
	LPC_GPIO0->DATA |= (0<<7);
	delay();
}
  return 0;

}  
void delay(void)
{
   volatile long i;
   for (i = 0; i < 500000; i++)
    ;
}



what you do that defines you

Logan

Çalışmaması normal.

Programı yanlış yazmışsın. Led kısmı şöyle olacak.

    LPC_GPIO0->DATA |= (1<<7);  
    delay();
    LPC_GPIO0->DATA &= ~(1UL << 7);
    delay();


Delay rutinini de yolluyorum. Arada kullanırsın.

http://www.dosya.tc/server2/foi59z/delay.rar.html
İmza.

l0rd

Alıntı yapılan: Logan - 10 Temmuz 2015, 16:38:57
Çalışmaması normal.

Programı yanlış yazmışsın. Led kısmı şöyle olacak.

    LPC_GPIO0->DATA |= (1<<7);  
    delay();
    LPC_GPIO0->DATA &= ~(1UL << 7);
    delay();


Delay rutinini de yolluyorum. Arada kullanırsın.

http://www.dosya.tc/server2/foi59z/delay.rar.html

Kart yanımda değil hocam Pazartesi deneyeceğim , teşekkür ederim.Birde hocam aklıma incelerken şunlar takıldı.


* LPC_GPIO0->DATA &= ~(1UL << 7);  adlı satırda 1UL ne anlama geliyor?
*Şuan ben CMSİS ile mi yazıyorum? :)
*Verdiğiniz delay rutinindeki delay_sys ve DelayUs  benim kullandığım karttada aynı saniye gecikme sağlayacak mı?Çünkü benim kullandığım kartta osilatör yok denetleyici içindeki dahili osilatörü kullanıyorum.
what you do that defines you

l0rd

#8
Hocam fonksiyonu dediğiniz gibi düzenledim ledi halen yakamadım :) Kod ve devre şu şekilde şuan;


#include <LPC11xx.h>

void delay(void);

void Pio_Init (void)
{
    LPC_GPIO0->DIR |=(1<<7);   
}

int main (void) {       
 
    SystemCoreClockUpdate();
    Pio_Init();

while (1) {            
    LPC_GPIO0->DATA |= (1<<7);  
    delay();
    LPC_GPIO0->DATA &= ~(1UL << 7);
    delay();
}
  return 0;

}  
void delay(void)
{
   volatile long i;
   for (i = 0; i < 500000; i++)
    ;
}


Led işlemcininin 23. bacağına bağlı Pio0_7 de şekilde görüldüğü gibi;




what you do that defines you