با سلام
لینک دانلود کجاست؟
با سلام
لینک دانلود کجاست؟
هدر فایل برای راه اندازی LCD چهار سیمه:
//---------------------------------------------------------------------------------------------------------------------
//--------------------------------------Edit this part for LCD pins configuration--------------------------------------
//---------------------------------------------------------------------------------------------------------------------
//Change PIOA to port name you want.(eg. AT91C_BASE_PIOB ...)
#define _LCD_Port_Base AT91C_BASE_PIOA
//To change the RS and En pin, change the numbers. (Zero based)
#define __En_pin 9
#define __RS_pin 8
//Set _DB_offset for DB4 pin:
//DB4->PORTx.(_DB_offset) ,DB5->PORTx.(_DB_offset+1) ,DB6->PORTx.(_DB_offset+2) ,DB7->PORTx.(_DB_offset+3)
#define _DB_offset 0
//Connect RW pin to Ground(GND) !!!
/*----------------------------------------------------------------------------------------------------------------
Use the functions below:
void lcd_command(unsigned char cmd);
void lcd_char(unsigned char dta);
void lcd_init(void);
void lcd_clear(void);
void lcd_home(void);
void lcd_xy(unsigned char x,unsigned char y);
void lcd_string(unsigned char *str);
-----------------------------------------------------------------------------------------------------------------*/
//---------------------------------------------------------------------------------------------------------------------
//---------------------------------------------Don't change parts below------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
#define lcd_port_PER _LCD_Port_Base->PIO_PER
#define lcd_port_PSR _LCD_Port_Base->PIO_PSR
#define lcd_port_OER _LCD_Port_Base->PIO_OER
#define lcd_port_OSR _LCD_Port_Base->PIO_OSR
#define lcd_port_SODR _LCD_Port_Base->PIO_SODR
#define lcd_port_CODR _LCD_Port_Base->PIO_CODR
#define lcd_port_ODSR _LCD_Port_Base->PIO_ODSR
unsigned int __i;
#define _wait for(__i=0;__i<0x8FF;__i++);
void lcd_command(unsigned char cmd);
void lcd_char(unsigned char dta);
void lcd_init(void);
void lcd_clear(void);
void lcd_home(void);
void lcd_xy(unsigned char x,unsigned char y);
void lcd_string(unsigned char *str);
void _En_H(){
lcd_port_SODR=lcd_port_ODSR|(1<<__En_pin);
}
void _En_L(){
lcd_port_CODR=(1<<__En_pin);
}
void _RS_H(){
lcd_port_SODR=lcd_port_ODSR|(1<<__RS_pin);
}
void _RS_L(){
lcd_port_CODR=(1<<__RS_pin);
}
void lcd_command(unsigned char cmd){
_En_H();
_RS_L();
_wait;
lcd_port_CODR = 0xF*(1<<_DB_offset);
lcd_port_SODR = (cmd /16)*(1<<_DB_offset);
_wait;
_En_L();
_wait;
_En_H();
_wait;
lcd_port_CODR = 0xF*(1<<_DB_offset);
lcd_port_SODR = (cmd & 0x0F)*(1<<_DB_offset);
_wait;
_En_L();
}
void lcd_init(){
lcd_port_PER = lcd_port_PSR | 0x3FF;
lcd_port_OER = lcd_port_OSR | 0x3FF;
_wait;
lcd_command(0x28);
lcd_command(0x02);
lcd_command(0x01);
lcd_command(0x0C);
}
void lcd_clear(){
lcd_command(0x01);
}
void lcd_home(){
lcd_command(0x02);
}
void lcd_char(unsigned char dta){
_En_H();
_RS_H();
_wait;
lcd_port_CODR = 0xF*(1<<_DB_offset);
lcd_port_SODR = (dta /16)*(1<<_DB_offset);
_wait;
_En_L();
_wait;
_En_H();
_wait;
lcd_port_CODR = 0xF*(1<<_DB_offset);
lcd_port_SODR = (dta & 0x0F)*(1<<_DB_offset);
_wait;
_En_L();
}
void lcd_xy(unsigned char x,unsigned char y){
if(y)
lcd_command(0xC0 | x);
else
lcd_command(0x80 | x);
}
void lcd_string(unsigned char *str){
int i=0;
while(str[i]!='\0'){
lcd_char(str[i]);
i++;
}
}
این رو دوستم نوشته کار خودم نیست فقط استفاده می کنم D:
یادم رفت ضمیمش کنم، اینم ضمیمش
سلام
فایل پیوست هدر adc.h کجاست؟
سلام دوستان
یه پیشنهاد خوب دارم امیدورام استقبال کنید.
به نظر من با توجه به نبود هیچ منبعی در مورد Arm (البته به جز مجلات خودمون) بهتره یه کم کار رو برای کاربرهای تازه کار با Arm (مثل من) راحت تر کنیم تا سردر گمی پیش نیاید .
مشکل خود من توی همین header هاست چون من 10 تا header یک نام دارم و نمیدونم کدومش درست کار می کنه !!!
بهتره یه قسمت مخصوص هدر درست بشه و هر چی هدر تازه نوشته میشه و یا تغییری توش داده میشه و کلا" هرچی هدر تا حالا نوشته شده تو اونجا قرار بگیره تا استفاده از اون راحت تر بشه .
ممنون از مطالب مربوط به arm من که خودم تازه کار باهاش رو شروع کردم و خیلی خوشم اومده .
(ای رو بگم ها من خودم تو مقولات دیگر حرفهایی دارم ها ...
یا علی
بچهها یه سوال؛ تا وقتی هدرهای ساده وجود دارن چه لزومی داره که هدرهای مشکل رو یاد بگیریم؟
مثلا تا هدر pio.h که اینقد ساده هست، چرا باید lib_at91sam7 رو یاد بگیریم؟!
راستی این هدر pio.h یه هدر معتبر هست؟ یعنی برنامه نویسای دیگه هم ازش استفاده میکنن؟
ویرایش توسط mehdiar : 29-09-2010 در ساعت 00:10
سلام
اگه مجله ی شماره ی 2 ویرایش دوم رو با دقت بخونید ، متن زیر رو در صفحه ی 70 میبینید :
این به این معنی هست که اگه شما مشکلی در هنگام کار با این هدر داشتید میتونید به این انجمن مراجعه کنید .این جمله (گروه ایران میکرو با ارائهی هدر pio.h مشکل را حل کرده) یعنی هدر pio.h یه هدر شخصیه و همه گیر نیست؟
در کل شما برای کار خودت کد می نویسی و اگه کسی به برنامه ی شما نیاز داشته باشه مجبوره هدر های برنامه و توابع رو یاد بگیره .
مثلا شما چون به سورس های اتمل برای یادیگری نیاز دارید مجبورید توابع lib.at91sam.... رو یاد بگیرید .
هدر pio.h تقریبا دو ماه قبل نوشته شده و هنوز برنامه نویسان کمی از وجودش اطلاع دارن
سلام من میخوام سریال فلشو با spi راه اندازی کنم ولی نمیتونم. از مثال اتملم نمیتونم استفاده کنم خیلی پیچ در پیچه کامپایل کردنی هم ارور میده شما هدری واسه این کار دارین؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
سلام خسته نباشيد
من مجله ppm3 رو مطالعه كردم ولي هرچي توي سايت چرخيدم فايل lcd.h رو پيدا نكردم داخل فايل سورس keil كه از سايت دانلود كردم adc.h و خيلي چيزهاي ديگه توي يك پوشه زيپ شده به نام atmal بود ولي lcd و lcdg نبود.
اگه امكان داره فايلهاي هدر كه در مثالهاي مجله وجود داره رو لينكش را بزاريد
بازم تشكر ميكنم از لطفتون و مجله خيلي خوبتون
سلام
http://www.iranmicro.ir/forum/showthread.php?t=3828من مجله ppm3 رو مطالعه كردم ولي هرچي توي سايت چرخيدم فايل lcd.h رو پيدا نكردم داخل فايل سورس keil كه از سايت دانلود كردم adc.h و خيلي چيزهاي ديگه توي يك پوشه زيپ شده به نام atmal بود ولي lcd و lcdg نبود.
اگه امكان داره فايلهاي هدر كه در مثالهاي مجله وجود داره رو لينكش را بزاريد
سلام
http://www.iranmicro.ir/forum/showthread.php?t=2672من مجله ppm3 رو مطالعه كردم ولي هرچي توي سايت چرخيدم فايل lcd.h رو پيدا نكردم داخل فايل سورس keil كه از سايت دانلود كردم adc.h و خيلي چيزهاي ديگه توي يك پوشه زيپ شده به نام atmal بود ولي lcd و lcdg نبود.
اگه امكان داره فايلهاي هدر كه در مثالهاي مجله وجود داره رو لينكش را بزاريد
سلام.میخواستم اگه میشه هدر نویسی رو بگین که خودمون بنویسیم.اینطوری تو برنامه نویسی هم بهتر میشیم. و هدری که شما میدین واسه بردهای خودتونه مثلا پایه هایی که من واسه ال سی دی تعریف کردم تو مدارم با برد شما فرق داره آیا واسه مداره من هم کار میکنه یا باید تغییر داد هدر رو.
مرسی اگه میشه زود جواب بدین چون وقتم کمه
با سلام
دوستان عزیز کسی یک هدر ساده تر برای تایمرها ( تایمر- کانتر- pwm) نداره والا از بس که
با این رجیسترهای تایمر ور رفتم و جواب نگرفتم سردرد گرفتم .
سلام
شما در برنامتون lcd.h رو فراخوانی کردید اما این هدر رو در پوشه مورد نظر کپی نکردید.. در ضمن باید lib_at91sam7x256 را نیز در پوشه کپی کنید
سلام
يه سوال داشتم در مورد رجيستر ها .. گفتم شايد اينجا بشه پرسيد
براي تنظيم رجيستر ها چرا دو تا رجيستر براي فعال كردن خروجي و غير فعال كردنش وجود داره .. خب وقتي يه بيت رو يك ميكني براي غير فعال كردنش ميشه صفرش كرد ديگه .. چرا يه رجيستر ديگه بايد فرمان بديم كه پايه رو از خروجي خارج كن
؟؟
خب اين كار ها رو ميكنيد . مردم بسكام رو ميزارن روي سرشون حلوا حلوا ميكنن.. خداييش طلاست اين بسكام در سرعت نوشتن برنامه .. سادگي و دقت اجرا
كاش تمام ميكروهاي آرم اتمل رو هم پوشش بده ..
با سلام .... ببخشید من تازه دارم مجله رو میخونم من یه سری از دستورات هدر lib_at91sam7x256 رو نوشتم اما بعد از کامپایل برنامه میگه هدر رونمی شناسه هدر lib_AT91SAM7S64.h رو هم کپی کردم ولی باز هم ارور میده !!!!!!!چی کار کنممممممممممممممم ؟؟؟