Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: l0rd - 17 Haziran 2015, 21:48:51

Başlık: lpc 1114 hakkında
Gönderen: l0rd - 17 Haziran 2015, 21:48:51
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
}

Başlık: Ynt: lpc 1114 hakkında
Gönderen: 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.
Başlık: Ynt: lpc 1114 hakkında
Gönderen: MC_Skywalker - 18 Haziran 2015, 13:45:02
NXP nin libaryleri kendi derleyicisi LPCExpresso için www.lpcware.com (http://www.lpcware.com)  adresinde döküman ve örneklere ulaşabilirsin
Başlık: Ynt: lpc 1114 hakkında
Gönderen: l0rd - 06 Temmuz 2015, 12:58:38
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 (http://www.lpcware.com)  adresinde döküman ve örneklere ulaşabilirsin

Hocam sağolun dediğiniz adresten buldum.
Başlık: Ynt: lpc 1114 hakkında
Gönderen: 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%3Cbr%20/%3E%5Burl=http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html)]http://dosya.co/71niu12e6d23/system_LPC11xx.c.html
http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html (http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html)[/url]
Başlık: Ynt: lpc 1114 hakkında
Gönderen: l0rd - 09 Temmuz 2015, 15:25:56
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%3Cbr%20/%3E%5Burl=http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.html)]http://dosya.co/71niu12e6d23/system_LPC11xx.c.html
http://dosya.co/v9pvp26r51e4/system_LPC11xx.h.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++)
    ;
}


(http://s24.postimg.cc/ukx9vjl5d/Ads_z2.jpg) (http://postimg.cc/image/ukx9vjl5d/)
Başlık: Ynt: lpc 1114 hakkında
Gönderen: 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 (http://www.dosya.tc/server2/foi59z/delay.rar.html)
Başlık: Ynt: lpc 1114 hakkında
Gönderen: l0rd - 10 Temmuz 2015, 19:35:33
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 (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.
Başlık: Ynt: lpc 1114 hakkında
Gönderen: l0rd - 13 Temmuz 2015, 11:13:00
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;



(http://s30.postimg.cc/4i6yzehr1/led.jpg) (http://postimg.cc/image/4i6yzehr1/)