PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل در debug برنامه LCD 16*2



HoaX
24-12-2011, 09:24
سلام برنامه کار با LCD کاراکتری را دانلود کردم که در زیر ضمیمه می کنم
یه پروژه جدید برای LPC2368 با Keil می سازم و فایل LCD.c و LCD_4bit.c و delay.h و LCD.h را در پوشه پروژه Paste می کنم
پروژه رو Build All می کنم بدون error و Warning فایل Hex را تولید می کند اما وقتی وارد قسمت Debug می شم Ctrl + F5 برنامه توی Loop گیر میکنه و فقط زمان می گذره ، نگا کردم برنامه در فایل LPC2300.s دچار مشکل می شه که اون قسمتشو در زیر میذارم :


; Exception Vectors
; Mapped to Address 0.
; Absolute addressing mode must be used.
; Dummy Handlers are implemented as infinite loops which can be modified.

Vectors LDR PC, Reset_Addr
LDR PC, Undef_Addr
LDR PC, SWI_Addr
LDR PC, PAbt_Addr
LDR PC, DAbt_Addr
NOP ; Reserved Vector
; LDR PC, IRQ_Addr
LDR PC, [PC, #-0x0120] ; Vector from VicVectAddr
LDR PC, FIQ_Addr

Reset_Addr DCD Reset_Handler
Undef_Addr DCD Undef_Handler
SWI_Addr DCD SWI_Handler
PAbt_Addr DCD PAbt_Handler
DAbt_Addr DCD DAbt_Handler
DCD 0 ; Reserved Address
IRQ_Addr DCD IRQ_Handler
FIQ_Addr DCD FIQ_Handler

Undef_Handler B Undef_Handler
SWI_Handler B SWI_Handler
PAbt_Handler B PAbt_Handler
DAbt_Handler B DAbt_Handler
IRQ_Handler B IRQ_Handler
FIQ_Handler B FIQ_Handler


دقیقا روی خطی که قرمز کردم گیر می کنه و دیگه ادامه نمیده
اگر Device رو از LPC2368 به LPC2378 تغییر بدم درست میشه اما من میخوام با LCP2368 کار کنم و برنامه رو Debug کنم
دوتا سوال دارم اول اینکه مشکل کجاس که با LPC2368 کار نمیکنه و دوم اینکه چیکار کنم درست شه؟؟؟

اگر کسی این چند خط بعد از Main رو هم توضیح بده که چییه و چیکار می کنه ممنون می شم


PINSEL0=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE0=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
IO0DIR=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL1=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE1=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL2=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE2=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
IO1DIR=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL3=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE3=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL4=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE4=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
FIO2DIR=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL6=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE6=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
FIO3DIR=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL7=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE7=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL8=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE8=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
FIO4DIR=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINSEL9=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */
PINMODE9=0x00000000; /* binary: 00000000_00000000_00000000_00000000 */

shayanmelody
24-12-2011, 10:03
اين برنامه رو ول كن.
برو به لينك زير ،‌ پست يكي مونده به آخر.پروژه ال سي دي كاراكتري رو گذاشتم كه خيلي ساده هست.
اونو يه تستي بزن
نحوه اتصالlcd کاراکتری 16*2 به میکرو - صفحه 2 - ایـــــــــران میـــــــکرو ™ (You can see links before reply)

mzarkoob
24-12-2011, 11:07
سلام برنامه کار با LCD کاراکتری را دانلود کردم که در زیر ضمیمه می کنم
یه پروژه جدید برای LPC2368 با Keil می سازم و فایل LCD.c و LCD_4bit.c و delay.h و LCD.h را در پوشه پروژه Paste می کنم
پروژه رو Build All می کنم بدون error و Warning فایل Hex را تولید می کند


اگر Device رو از LPC2368 به LPC2378 تغییر بدم درست میشه اما من میخوام با LCP2368 کار کنم و برنامه رو Debug کنم



این برنامه ای که گذاشتید و البته فکر کنم از اینجا (You can see links before reply) گرفته باشید را اجرا کردم. خطا میداد و تیک مربوط به ایجاد فایل هگز نخورده بود.
حالا در مورد اینکه این برنامه را ول کنیم یا نه، کاری ندارم ولی لزومی به بودن تمام کدهای که قرار داده شده برای pinsel انگار نیست و همینها کفایت می کنه:

PINSEL8=0x00000000;
PINMODE8=0x00000000;
FIO4DIR=0x00000000;
PINSEL9=0x00000000;
PINMODE9=0x00000000;
حالا چرا نمی دونم. ودیگه اینکه من این را دیباگ نکردم ولی در برد lpc2378 جواب میده
و بازم اینکه من این برنامه در حین کار با پورت سریال استفاده کردم، کار نمی داد، ولی به تنهایی کار می کنه!

HoaX
24-12-2011, 11:12
آقا این برنامه رو هم چک کردم اینم همین مشکلو داره ، Device رو از LPC2378 به LPC2368 تغییر میدم باز همین طوری میشه و همون جا گیر میکنه توی Debug
علت این قضیه چییه؟
اگه Device روی LPC2378 باشه چی میشه؟!

HoaX
24-12-2011, 11:27
آره از همون جا گرفتم تمام پست های شما رو هم خوندم
اما مشکلم سر اینه که وقتی از منوی Flash ، Configure Flash tools و تو قسمت Device از LPC2378 به LPC2368 تغییر میدم و تیک های Hex و Use memory layout... را میزنم و وارد start debug می شم برنامه روی همون خطی که گفتم گیر میکنه
الان برای برنامه شایان هم امتحان کردم همین مشکلو داشت

shayanmelody
24-12-2011, 11:58
اين 2 تا ميكرو فقط تو تعداد پايه ها با هم فرق ميكنند.
پس شما يه چك بكن ببين پايه هايي كه داري استفاده ميكني رو 2368 اصلا داره يا نه !‌

HoaX
24-12-2011, 12:37
اصلا بحث پایه نیس
یه برنامه
#include <lpc23xx.h>


int main(){

//SCS=1;

while(1){


}

}
نوشتم خط اول که LPC2300.s رو اجرا میکنه گیر میکنه :))
نمی دونم مشکلش کجاس
فقطم موقع Debug ایطوری می شه وگر نه بدون Error , Warrning Build میشه

HoaX
24-12-2011, 12:46
روی خط 626 از LPC2300.s گیر میکنه
اصلا به اجرای برنامه من نیرسه
توی Debug این پیغام رو هم میده

Data Abort: ARM Instruction at 0000012CH, Memory Access at FFE08000H

mzarkoob
24-12-2011, 12:52
دقیقا روی خطی که قرمز کردم گیر می کنه و دیگه ادامه نمیده
اگر Device رو از LPC2368 به LPC2378 تغییر بدم درست میشه اما من میخوام با LCP2368 کار کنم و برنامه رو Debug کنم



منظورتون را متوجه شدم چی میگید ولی دلیلشو نه!!
تا میرید در قسمت دیباگ ، هنوز استارت کار را نزده، میبینید که خودش داره زمان میندازه و اجرا میشه و ... . کاری هم به برنامه lcd نداره. خوب من قبلا وقتی تنظیمات startup.s را خارج از رنج انتخاب می کردم می دیدم که این جور شده. مثلا فرکانس اعمالی به هسته در lpc2378 خیلی بیشتر از 72 مگ شده بود یا pll بین 275 و 550 مگ نبود. ولی اینجا فکر کنم مشکلی نیست. البته تنظیمات lpc2368 را نمی دونم.:hi:

HoaX
24-12-2011, 13:20
خودم فهمیدم چیکارش کنم
وقتی که توی Debuger میرید و Stop رم میزنید که برنامه متوقف شه
بعد فایل LPC2300.s رو باز می کنید و از زیر صفحه روی Tab ، Configuration Wizard تیک External memory control setup رو بردارید برنامه درست شروع به Debug شدن میکنه

ممنون از همه

HoaX
24-12-2011, 13:35
اين برنامه رو ول كن.
برو به لينك زير ،‌ پست يكي مونده به آخر.پروژه ال سي دي كاراكتري رو گذاشتم كه خيلي ساده هست.
اونو يه تستي بزن
نحوه اتصالlcd کاراکتری 16*2 به میکرو - صفحه 2 - ایـــــــــران میـــــــکرو ™ (You can see links before reply)


شایان جان من برنامتو میخوام با پورت 1 و پایه هایی که در زیر آمده تغییر بدم 29 تا Warrning میده مشکلی نیس؟!
اصلا فایل LCD.h که اینکلود کردی تو پروژت نیس و میشه اونم بذاری؟

RS = P1.28
RW = زمین یا P1.29
E = P1.31

DB4 = P1.24
DB5 = P1.25
DB6 = P1.26
DB7 = P1.27


اینجوری تغییر دادم



#define LCD_PORT_1
#define LCD_RS 28
#define LCD_E 31
#define LCD_DB4 24
#define LCD_DB5 25
#define LCD_DB6 26
#define LCD_DB7 27
#include <lcd.h>



و وقتی LCD رو وصل می کنم کلا هیچیش روشن نمیشه و حتی صفحه پشتش
داستان چییه؟؟؟

HoaX
24-12-2011, 16:03
مرسی موفق شدم روی LCD نمایش بدم:D
فقط این x , y چه جوریه؟!
x از چند تا چنده مال خط بالاس یا پایین
برا جلو عقب بردنه
کلا این x , y را توضیح دهید
متشکرم

HoaX
24-12-2011, 16:26
اینم خودم فهمیدم
توی پرانتز جلوی gotoxy مقدار اول Y و مقدار دوم X است
که Y مربوط یه خط بالا یا خط پایین است که بین 1 و 2 مقدار می گیره
X هم مربوط به جلو و عقب است که از 1 تا 16 مقدار دهی می شود

mzarkoob
24-12-2011, 16:56
مرسی موفق شدم روی LCD نمایش بدم:D

با تغییراتی که اعمال کردید نمایش داد یا همون برنامه اول؟
به این شکل دیگه اون warningها را نمی ده ولی انگار چیزی هم نشون نداد:

#include <lpc23xx.h>

#define LCD_PORT_1
#define LCD_RS 28
#define LCD_E 30
#define LCD_DB4 24
#define LCD_DB5 25
#define LCD_DB6 26
#define LCD_DB7 27
#include "lcd.h"

HoaX
24-12-2011, 21:46
با تغییراتی دادم نمایش داد
متشکرم