Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: muhittin_kaplan - 16 Şubat 2011, 22:34:17

Başlık: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 16 Şubat 2011, 22:34:17
elimdeki NXP LPCEXPROSSO 1768 kitim e (aidiyetlik veriyor ama hala kendisiyle bişey yapabilmiş değiliz) Code-RED in expresso su yada Keil ile bir kod bile yazamadım. Sanırım Problem Bende
Mümkünse "blinky" (system tick olmadan) örneği için bana en temelden yardım edecek bir hayır sever aranıyor.
Saygılarımı Sunar iyi çalışmalar dilerim.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: MC_Skywalker - 17 Şubat 2011, 00:06:38
LpcXpresso yada KEIL bana zor geldi. LpcXpresso kitim yatıyor masanın üsütünde mbed ile uğraşıyorum. basic gibi kolay kütüpanleri sayesinde

anlatacak biri olsa sevaba girer.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: EMG81 - 17 Şubat 2011, 01:55:29
Ya evet.! Biz ARM ile bi proje yapamıyacakmıyız arkadaşlar?

@Muhittin_Kaplan Aynı şeyler banada oldu. Mplab, proton gibi değil meret...

Ayrıca Şu aletleri C ile değilde Basic ile programlıyamıyormuyuz ? Şayet c de port tanımlamaları bana gayet karışık geldi...
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 17 Şubat 2011, 17:17:54
Benim problemim C ile vs ile değil. Hatta Keil i de biiyorum. Ama adımlardan birini atlıyor yada eklemem gereken bir kütüphaneyi eklemiyorum gibi geliyor. P.Tesiden Bu Yana uğraşıyorum (SytemTick in dışında) portun bir piini aktif yada pasif yapamadım..
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: z - 17 Şubat 2011, 19:00:15
Kullandiginiz cipi tanimasam da ARM yapisindaki ciplerin cevrebirimlerinin isletilme prensipleri uc asagi bes yukari ayni.

Eger hazir kutuphane fonksiyonlari kullanmayacaksaniz cipin dokumanlarini iyi okumaniz gerekiyor.

ARM da oncelikle kullanacaginiz cevre biriminin clk ile beslenmesini saglamalisiniz. Ardindan bu cevre biriminin standart kurulumlarini yapmalisiniz.

Ornegin. Bir porttan veri cikabilmek icin. oncelikle o PORTun  CLK sinyalini aktif etmelisin.
Ardindan portun bitlerini cikis tanimlamalisin.

Daha sonra porta dogrudan  yukleme yapip 8 bit veri cikartabilir yada bitleri set ve reset eden farkli registerlerden ilgilendigin pinlerin seviyelerini degistirebilirsin.

Ornek kod bulamamaniz ilginc.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: teknikelektronikci - 17 Şubat 2011, 20:01:58
hocam startup dosyasini ekledinizmi ?
bendede ayni problem vardi yazdiklarim calismyiordu startup dosyasini ekleyince düzeldi bunu keil otomatik ekliyeyimmi diye soruyor evet dediginizde ekliyor
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 20 Şubat 2011, 01:31:37
code-red in derleyicisi ve system tick ile ilgili deneme programından çekip aldığım led yak söndür programı.

CMSISv1p30_LPC17xx dosyasını, projelere eklememiz gerekiyor. neden olduğunu bilmiyorum bilen açıklarsa sevinirim
ayrıca kodların işlemcide neler yaptığı konusunda az biraz bilgi verirseniz yine sevinirim.

/*
===============================================================================
Name        : main.c
Author      :
Version     :
Copyright   : Copyright (C)
Description : main definition
===============================================================================
*/

#ifdef __USE_CMSIS
#include "LPC17xx.h"
#endif

#include <cr_section_macros.h>
#include <NXP/crp.h>

// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;

// TODO: insert other include files here

// TODO: insert other definitions and declarations here
int delay(int a)
{
for (a=0;a<0x000FFFFF;a++)
{

}

}
void led2_init (void)
{
// Set P0_22 to 00 - GPIO
LPC_PINCON->PINSEL1 &= (~(3 << 12));
// Set GPIO - P0_22 - to be output
LPC_GPIO0->FIODIR |= (1 << 22);
}


// Function to turn LED2 on
void led2_on (void)
{
LPC_GPIO0->FIOSET = (1 << 22);
}

// Function to turn LED2 off
void led2_off (void)
{
LPC_GPIO0->FIOCLR = (1 << 22);
}

// Function to invert current state of LED2
void led2_invert (void)
{
int ledstate;

// Read current state of GPIO P0_0..31, which includes LED2
ledstate = LPC_GPIO0->FIOPIN;
// Turn off LED2 if it is on
// (ANDing to ensure we only affect the LED output)
LPC_GPIO0->FIOCLR = ledstate & (1 << 22);
// Turn on LED2 if it is off
// (ANDing to ensure we only affect the LED output)
LPC_GPIO0->FIOSET = ((~ledstate) & (1 << 22));
}
int main(void) {

// TODO: insert code here
led2_init();

// Enter an infinite loop, just incrementing a counter
volatile static int i = 0 ;
while(1) {
i++ ;
led2_on();
delay(0);
led2_off();
delay(0);

}
return 0 ;
}
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: MC_Skywalker - 20 Şubat 2011, 08:29:04
CMSIS ----> Cortex Microcontroller Software Interface Standard

http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

http://www.onarm.com/
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 20 Şubat 2011, 12:58:37
Bu dosya yı kullandığımızda "The CMSIS memory requirement for the Core Peripheral Access Layer is less the 1 KB code, less than 10 Bytes RAM" kullandığını bildiriyor.
Ben Basit bir led yak söndür için bu dosyayı neden kullanmak zorunda kalayım ?
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: MC_Skywalker - 20 Şubat 2011, 20:18:21
version 2 ile DSP geliştirmeleri eklenmiş. hatta yeni çıkan çift çekirdekli işlemciler için eklemeler yapmışlar.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: fatihinanc - 21 Şubat 2011, 23:28:35
Alıntı yapılan: muhittin_kaplan - 20 Şubat 2011, 01:31:37
CMSISv1p30_LPC17xx dosyasını, projelere eklememiz gerekiyor. neden olduğunu bilmiyorum bilen açıklarsa sevinirim

Merhaba,
Biraz geç oldu ama aşağıdaki linkte CMSIS hakkında açıklayıcı bilgiler var.
http://www.barissamanci.net/Makale/19/nxp-lpcxpresso/ (http://www.barissamanci.net/Makale/19/nxp-lpcxpresso/)

@muhittin_kaplan hocam;
Eğer başlangıç için LPXPresso IDE'sı biraz karışık geldiyse ben Keil ile başlamanızı tavisye ederim.
Keil LPXPresso'ya nispeten biraz daha basit bir arayüze sahip.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 12 Mart 2011, 22:32:01
bugün sehpanın üzerine koyduğum lpcXpresso kartımı Kızımın elinde görünce ilk ne yapacağımı şaşırdım. sonrasında üzerinde bulunan RTC (Sanırım)osc ün olmadığını gördüm değeri nedir ?
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: M_B - 12 Mart 2011, 23:02:55
Alıntı yapılan: muhittin_kaplan - 12 Mart 2011, 22:32:01
bugün sehpanın üzerine koyduğum lpcXpresso kartımı Kızımın elinde görünce ilk ne yapacağımı şaşırdım. sonrasında üzerinde bulunan RTC (Sanırım)osc ün olmadığını gördüm değeri nedir ?
Hocam 32768Hz Kristal olması gerek.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 12 Mart 2011, 23:04:37
üzerinde 11xxxxx gibi bişey yazıyordu. Emin olamadım.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: M_B - 12 Mart 2011, 23:20:11
Alıntı yapılan: muhittin_kaplan - 12 Mart 2011, 23:04:37
üzerinde 11xxxxx gibi bişey yazıyordu. Emin olamadım.
Hocam siz oyle diyince yanlıs olmasın dıye eski msjları kontrol ettim.
altakı linki bir incelermisiniz.
https://www.picproje.org/index.php/topic,28357.285.html

Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 12 Mart 2011, 23:52:59
12 mi 25 mi anlamadım.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: M_B - 13 Mart 2011, 00:02:09
hocam bende de aynı kıtten var
şimdi uzerıne baktım uzerinde 110S ( Dik olan kristal ) yazıyor.
Verdigim linkte aldıgımız kıtın seması vardı eger link saglamsa. Eger hocam link saglam değilse buraya yenıden yuklerım. Su an bu makinede degilde. ( Ben o semayı ındırdım dıye hatırlıyorum  umarım oyledır. )

Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 13 Mart 2011, 00:07:38
http://www.nxp.com/documents/data_sheet/LPC1769_68_67_66_65_64.pdf
bunun 5 sayfasında RTC ile ilgil yerde 32Khz yazıyor. 32768 dir sanırım
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: M_B - 13 Mart 2011, 00:13:45
Evet hocam bende sımdı baktım 32K yazıyor demekki ilk dediğim değer dogruymuş ;)

Kolay gelsin.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 13 Mart 2011, 00:15:25
Bunu Denemem Gerek. Kod Varmı Elimizde Bakalım.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 15 Mart 2011, 00:12:45
Eskisi olmayanın yenisi olmazmış.Yavaş yavaş ilerliyoruz
/*
===============================================================================
Name        : main.c
Author      :
Version     :
Copyright   : Copyright (C)
Description : main definition
===============================================================================
*/

#ifdef __USE_CMSIS
#include "LPC17xx.h"
#endif

#include <cr_section_macros.h>
#include <NXP/crp.h>

// Variable to store CRP value in. Will be placed automatically
// by the linker when "Enable Code Read Protect" selected.
// See crp.h header for more information
__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;

volatile uint32_t msTicks; // counter for 1ms SysTicks

// ****************
//  SysTick_Handler - just increment SysTick counter
void SysTick_Handler(void) {
  msTicks++;
}

// ****************
// systick_delay - creates a delay of the appropriate number of Systicks (happens every 1 ms)
static void DelayMS (uint32_t delayTicks) {
  uint32_t currentTicks;

  currentTicks = msTicks; // read current tick counter
  // Now loop until required number of ticks passes.
  while ((msTicks - currentTicks) < delayTicks);
}
void sayi_gonder(unsigned int s)
{
const unsigned char segment[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

LPC_GPIO2 -> FIOSET = 0xFFFFFFFF;
LPC_GPIO2->FIOCLR=segment[s];

}
int main(void)
{
LPC_GPIO2->FIODIR = 0xFFFFFFFF; //PORT2 nın Hepsi ÇIKIŞ
LPC_GPIO2->FIOSET=0xFFFFFFFF;
unsigned int Sayi;
if (SysTick_Config(SystemCoreClock / 1000))
{
    while (1);  // Capture error
}


while(1)
{
for (Sayi=0;Sayi<10;Sayi++)
{

sayi_gonder(Sayi);
DelayMS(500);
}
}
}


NXP LCPxpresso IDE ve 1768 set ilet yapılmış bir sayıcı.
ortak anot bir display.GPIO2 ye sırasıyla a,b...... bağlı.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: M_B - 26 Mart 2011, 07:47:53
Merhaba muhittin_kaplan  hocam;
Bende kitimi yastık altından cıkardım ve çalısmaya baslıyorum.
Ilk olarak sızın verdıgınız led programını derledim sonrada sayıcı. Ve su an bilmediğim cok şey var.
Hocam LpcXpresso İde sinde ki satır noları nasıl ekrandan cıkarabılırım bırde renklendirme gıbı bır olay varmı. Bir takım yerleri.
Hocam birde kitinizi nasıl kullanıyorsunuz ona ozel bir header pcb mı yaptınız bu konuda yardımcı olabilirmisiniz.

Teşekkürler
Mehmet


Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: fatihinanc - 31 Mart 2011, 13:50:51
Üstadlar Merhaba,

Öncelikle @M_B nin sorusuna cevap vereyim(Biraz geç olmuş ama...)

1. Hocam, satır kodlarını aşağıdaki resimde görüldüğü gibi "Show line numbers" kısmından açıp kapatabilirsiniz.

[IMG]http://img810.imageshack.us/img810/5963/satir.png[/img] (http://img810.imageshack.us/i/satir.png/)

2. Ben pin header lehimledim ve şimdilik breadboard üzerinde kullanıyorum.

Benim sorum ise ;)
Bu kartı LPCXpresso IDE'si ile kullanıyorum. Ve yazdığım kod için Debugger kullanmak çoğu zaman gerekmiyor.
Ben Program Flash kısmından programımı flasha atıyorum fakat "Reset target on completion" checkboxu aktif olduğu halde program resetlenmiyor. Yani yazdığım kodun nasıl çalıştığını göremiyorum.
Ve bunun için her seferinde debug yapmak zorunda kalıyorum.

Bunun için bir fikri olan var mı acaba ?

Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: M_B - 31 Mart 2011, 16:12:14
Merhaba fatihinanc hocam;
Yanıtınız için teşekkürler

http://ics.nxp.com/support/training/learn.eclipse.lpcxpresso/ 
sitesinde IDE kullanımı hakkında video var. Cok derinlemesine olmasa bile guzel bilgiler var. Ben indirip baktım.
Hocam sizin sorunuzun cevabını bende bilmiyorum. Ancak benim cozumum şu şekilde.
USB yi cıkarıp takınca Flasha atılan program çalışmaya başlıyor. Bir bakıma manuel RESET ;)
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: fatihinanc - 31 Mart 2011, 16:24:10
@M_B

Rica ederim. Aslında onu da yapmaya gerek kalmadan doğrudan NRESET pinine 10k direnç ve 100n üzerinden bir buton ile bu işi halledebiliyoruz. Fakat ben "Program Flash" kısmında bu işlevin neden yerine getirildiğini anlayamadım...

Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: X-Fi - 31 Mart 2011, 16:26:32
onun önlenmesinin bi yolu var şu anda bilgisayarımda lpcXpresso kurulu değil ama flash program penceresinden çentiklerden biri eksik yada fazla olması lazım hangisi olduğunu hatırlamıyorum deneyerek bulabilirsiniz.

kolay gelsin.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: fatihinanc - 31 Mart 2011, 16:33:18
"Program Flash" kısmında "Reset target on completion" cehckboxu var. Orası aktif olduğu halde resetleme olmadı.

Her seferinde USB yi takıp çıkarmak da istemiyorum...
Ayrıca kitin üzerine RESET butonu koymamaları da çok ilginç...
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: X-Fi - 31 Mart 2011, 16:36:27
fatih pencerede bir yan sekme yada gelişmiş menüsü falan varmı iyice baktın mı kiti ilk elime aldığımda bende yaşadım çünkü tek bir çentikle o sorun çözülüyor.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 31 Mart 2011, 16:38:08
 mass erase in seçili olması gerekiyor.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: fatihinanc - 31 Mart 2011, 16:51:08
Alıntı yapılan: muhittin_kaplan - 31 Mart 2011, 16:38:08
mass erase in seçili olması gerekiyor.

Hocam akşam eve gidince bir deneyeyim bu kısmı
İlginiz için teşekkürler...
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: fatihinanc - 31 Mart 2011, 23:38:34
Alıntı yapılan: fatihinanc - 31 Mart 2011, 16:51:08
Alıntı yapılan: muhittin_kaplan - 31 Mart 2011, 16:38:08
mass erase in seçili olması gerekiyor.

Hocam akşam eve gidince bir deneyeyim bu kısmı
İlginiz için teşekkürler...

@muhittin_kaplan hocam;
Tesekkurler...
Mass Erase i secince problem cozuldu.
Başlık: Ynt: LpcXpresso yada KEIL
Gönderen: muhittin_kaplan - 01 Nisan 2011, 10:34:51
kolay gelsin.