PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : اشکال درسیمولینگ kiel



amin1139
07-04-2013, 20:06
سلام
من چند روزی هست که تصمیم گرفتم که با arm کار کنم و فعلا دارم سیمولینگ کار میکنم ولی یک مشکل دارم وقتی که از lpc21xx استفاده میکنم مشکلی ندارم ولی وقتی از lpc23xxاستفاده میکنم و برنامه ای مینویسم که پورت های پر سرعت اونو صفر و یک کنم (پالس متناوب )فقط سیمولینک 1 نمایش میده نمیدونم اشکال از چی هست میشه راهنماییم کنید
با تشکر


#include <LPC23xx.h>


void wait(void) {
long int i ;
for(i=0;i<400;i++);
}




int main(void)
{

FIO0DIR =0x00000000;
while (1) { /* repeat forever */


FIO0SET = 0xffffffff;
wait();
FIO0CLR = 0xffffffff;

wait();
}


}

amin1139
07-04-2013, 20:08
ممنون میشم کمکم کنید

Doloop
07-04-2013, 22:58
اگه میشه فایل پروژه رو قرار بدید تا دوستان راحت تر مشکل رو پیدا کنن و راهنمائیتون کنن :wink:

skiboys
07-04-2013, 23:06
ممنون میشم کمکم کنید
سلام
ّfio0dir نگاه کن
چرا تمام پایه ها ورودی هستند؟؟؟

mzarkoob
08-04-2013, 18:29
سلام
در این مورد قبلا خودم با این 23xx مثال چشمک زن گذاشتم . چرا یه سرچ نمی کنید ؟

amin1139
08-04-2013, 19:53
اولا ممنون که جواب دادین ثانیا سرچ زدم چیزی پیدا نکردم دو باره امتهان میکنم درمورد fio0dirهم درستش کردم باز نشد

amin1139
08-04-2013, 20:12
تو یک سایت دیگه مشکل من حل شد حالا اینجا میگم تا مشکل بقیه هم حل بشه حتما باید دستور زیر برای مقدار دهی رجیستر scs نوشته بشه


SCS |= 0x00000001;

ولی حالا یک سوال دیگه چطور میتونم پورت هارو کم سرعت کنم آخه شنیدم lpc23 این قابلیت رو داره ولی با نوشتن IO0DIRکیل خطا میگیره؟؟؟ و باید بنویسم FIO0DIR تا خطا نگیره؟؟؟

skiboys
08-04-2013, 20:48
تو یک سایت دیگه مشکل من حل شد حالا اینجا میگم تا مشکل بقیه هم حل بشه حتما باید دستور زیر برای مقدار دهی رجیستر scs نوشته بشه


scs |= 0x00000001;
ولی حالا یک سوال دیگه چطور میتونم پورت هارو کم سرعت کنم آخه شنیدم lpc23 این قابلیت رو داره ولی با نوشتن io0dirکیل خطا میگیره؟؟؟ و باید بنویسم fio0dir تا خطا نگیره؟؟؟
ان قسمتی که من گفتم را درست کردید??
همه پورت ها را ورودی کرده بودین ها!!!!!
در مورد سوالتان هم عرض کنم بله هنگام استفاده از Fast I/O باید درقسمت Status register بیت اول را یک کنید ولی حالا که می خواهید از mode کم سرعت استفاده کنید نیاز نیست دیگه داخل Status register یک بنویسید
در ادامه نیز از IODIR,IOSET,IOCLR استفاده کنید:wink:

amin1139
09-04-2013, 11:10
ان قسمتی که من گفتم را درست کردید??
همه پورت ها را ورودی کرده بودین ها!!!!!
در مورد سوالتان هم عرض کنم بله هنگام استفاده از fast i/o باید درقسمت status register بیت اول را یک کنید ولی حالا که می خواهید از mode کم سرعت استفاده کنید نیاز نیست دیگه داخل status register چیزی بنویسید و خط
scs |= 0x00000001
را پاک کنید و در ادامه نیز از iodir,ioset,ioclr استفاده کنید:wink:
ممنون که جواب دادین اما عرض کردم اینارو که مینویسم keil خطا میگیره
آره حواسم بود چون اول خروجیشون کرده بودم بعد یک بار به سرم زد برعکس بزنم ببینم چی میشه که دیدم بازم کار نداد بعد به حالت درست برگردوندمش

mzarkoob
09-04-2013, 12:24
اولا ممنون که جواب دادین ثانیا سرچ زدم چیزی پیدا نکردم دو باره امتهان میکنم درمورد fio0dirهم درستش کردم باز نشد8O
مشکل در استفاده از مد ورودی - ایـــــــــران میـــــــکرو ™ (You can see links before reply)
:sa:

amin1139
09-04-2013, 19:33
8O
مشکل در استفاده از مد ورودی - ایـــــــــران میـــــــکرو ™ (You can see links before reply)
:sa:
ولی مشکل من استفاده در مد ورودی میکرو نیست بلکه استفاده از مد سرعت پایین پورت های میکرو lpc23xxهست
با تشکر

skiboys
10-04-2013, 12:26
ولی مشکل من استفاده در مد ورودی میکرو نیست بلکه استفاده از مد سرعت پایین پورت های میکرو lpc23xxهست
با تشکر
سلام نمی دونم چرا حتما می خواهید از مد سرعت پایین استفاده کنید من داخل IAR فعالش کردم نمی دونم چرا کیل error میگیره ولی فکر کنم مستقیم توی آدرس مربوط به رجیستر مورد نظر بریزید حل بشه
یک عکس هم از محیط IAR گذاشتم
You can see links before reply

amin1139
10-04-2013, 21:52
سلام نمی دونم چرا حتما می خواهید از مد سرعت پایین استفاده کنید من داخل iar فعالش کردم نمی دونم چرا کیل error میگیره ولی فکر کنم مستقیم توی آدرس مربوط به رجیستر مورد نظر بریزید حل بشه
یک عکس هم از محیط iar گذاشتم
You can see links before reply
دسدتون درد نکنه جواب دادین چون توان مصرفی تو این مد کمتره
و فکر کنم باید منم برم دنبال iar چون کیل تا به حال خون به دل من کرده اگه فایل آموزشی چیزی دارن بهم بدین ممنون میشم
با تشکر

skiboys
11-04-2013, 22:19
دسدتون درد نکنه جواب دادین چون توان مصرفی تو این مد کمتره
و فکر کنم باید منم برم دنبال iar چون کیل تا به حال خون به دل من کرده اگه فایل آموزشی چیزی دارن بهم بدین ممنون میشم
با تشکر
سلام خواهش می کنم احتمالا راهی هست که بشه توی keil هم فعالش کرد (بازبان سطح پایین که حتما می شه)
در مورد IAR هم می تونید توی اینترنت بگردید ولی بهترین اموزش help خود نرم افزار هست که IAR در این مورد Help جامعی داره
موفق باشید:wink:

skiboys
13-04-2013, 18:56
امروز هدر lpc2368 نگاه کردم شما داخل keilباید بجای IO0DIR بنویسید IODIR0 برای همین ازشما error می گرفت:0013: یکمی با FIO0DIR فرق می کرد:wink:

amin1139
14-04-2013, 01:16
امروز هدر lpc2368 نگاه کردم شما داخل keilباید بجای IO0DIR بنویسید IODIR0 برای همین ازشما error می گرفت:0013: یکمی با FIO0DIR فرق می کرد:wink:
ممنون واقعا کارم راه افتاد دسدتون درد نکنه متاسفانه کیل help بدرد نخوری داره من هر چی توش گشتم نتونستم این نکته رو پیدا کنم

mzarkoob
14-04-2013, 01:34
من هر چی توش گشتم نتونستم این نکته رو پیدا کنم
سلام
همون طور که در هدر LPC23xx.c رجیسترهای مد fast تعریف شده سایر رجیسترها هم که استفاده می کنیم تعریف شده:

/* General Purpose Input/Output (GPIO) */
#define GPIO_BASE_ADDR 0xE0028000
#define IOPIN0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x00))
#define IOSET0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x04))
#define IODIR0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x08))
#define IOCLR0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x0C))
#define IOPIN1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x10))
#define IOSET1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x14))
#define IODIR1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x18))
#define IOCLR1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x1C))

amin1139
14-04-2013, 10:37
سلام
همون طور که در هدر LPC23xx.c رجیسترهای مد fast تعریف شده سایر رجیسترها هم که استفاده می کنیم تعریف شده:

/* General Purpose Input/Output (GPIO) */
#define GPIO_BASE_ADDR 0xE0028000
#define IOPIN0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x00))
#define IOSET0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x04))
#define IODIR0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x08))
#define IOCLR0 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x0C))
#define IOPIN1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x10))
#define IOSET1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x14))
#define IODIR1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x18))
#define IOCLR1 (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x1C))
ممنون
cnc رو به کجا رسوندی؟