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
}
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.
NXP nin libaryleri kendi derleyicisi LPCExpresso için www.lpcware.com (http://www.lpcware.com) adresinde döküman ve örneklere ulaşabilirsin
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.
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]
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/)
Ç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)
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.
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/)