PDA

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



1nafar
06-08-2010, 23:17
سلام
ویرایش دوم مجله ی pmm2 از طریق این آدرس (You can see links before reply) در دسترس شماست .
برای اینکه مطاب مجلات دارای تر تیب باشه و خواننده مشکلی در یادگیری مبحث نداشته باشه مجله ی 3 pmm نیز ویرایش شد . تغییرات ایجاد شده به شرح زیر هست :
1- اضافه شدن آموزش نحوه ی نوشتن هدر( به همراه مثال عملی )
2- بررسی کتابخانه ی delay.h
3- بررسی کامل نحوه ی راه اندازی lcd کارکتری ، و ارائه ی هدر lcd.h که با اون میشه lcd رو به صورت 4 و 8 بیت راه اندازی کرد و دستوراتش به فرم کامپایلر ccs در اومده .
4- بررسی رجیستر های adc و نحوه ی کار با اونا ، هدر adc.h
5- بررسی مد wave تایمر / کانتر
6- حل شدن مشکل lcd سه بیتی
در ویرایش دوم مجلات سعی شده مطالب به صورت کامل و با نقل از منابع معتبر بیان بشه همچنین مطالب ارائه شده دارای تدام و به نوعی پشت سر هم هست( از این شاخه به اون شاخه نشه ) .
هر چند روی ویرایش دوم مجلات وقت زیادی گذاشته شده ، اما بازم ایراد به اونا وارده و ممکنه از نظر محتوا یا مطالب یا ... دارای اشکال باشه ، پس قبل از داتلود در خبر نامه ی سایت (You can see links before reply)عضو بشید تا در صورت بروز تغییر در مطالب یا وجود بروز رسانی و ... بتونیم از طریق ایمیل به شما خبر بدیم .

You can see links before reply
مطالب این شماره :
 مقدمه صفحه 3
 آشنایی با توابع و نحوه ی نوشتن کتابخانه صفحه 4
 بررسی کتابخانه ی delay.h صفحه 10
 تبلیغات شما صفحه 13
 راه اندازی LCD کاراکتری به صورت4 و 8بیت صفحه 14
 راه اندازی مبدل آنالوگ به دیجیتال صفحه 24
 تایمر وکانتر صفحه 36
 راه اندازی LCD2*16 فقط با استفاده از 3پین میکرو صفحه 67
 مطالب مجله شماره 4 صفحه 76
 تهیه کنندگان صفحه 78
دانلود :
You can see links before reply


منتظر نظرات و پیشنهادات و انتقادات سازنده ی شما در ادامه ای این پست هستیم


برد جدیدی که توسط تیم ما طراحی شده است قابلیت کار باسیم بردبردی می باشد و کیفیت ان بسیار بالا می باشد.برای دریافت مشخصات لطفا به فروشگاه ما (You can see links before reply) مراجعه فرمائید.نمونه عکس آن نیز ضممیه شده است

morteza01
06-08-2010, 23:40
سلام
لطفا فایل سورس pmm1 رو هم بذارین

meh1011
07-08-2010, 15:39
سلام خدمت همه ی زحمت کشان گروه کویر .
یه مشکلی در برنامه نویسی برام پیش اومده اگه میشه راهنمایی کنید، ممنون
شما در مجله چندین مثال زدین که بدون استفاده از هدر lib_at91sam7x مقدار رجیتر های تایمر رو تغییر دادین مثلا این یکیشه
* AT91C_PMC_PCER = (1<< AT91C_ID_TC2);
حالا من یه جایی خوندم که اگه فقط از هدر at91sam7x256 استفاده کنیم باید اول یک اشاره گر تعریف کنیم وسپس مقدار رجیستر رو تغییر بدیم مثل زیر
volatile AT91PS_PMC pPMC = AT91C_BASE_PMC;
pPMC->PMC_PCER = (1<<AT91C_ID_US0);
خواهش میکنم راهنمایی کنید این مسئله رو یه بار دیگم مطرح کردم در قسمت USART ولی کسی جواب نداد

hamid69
08-08-2010, 03:09
این مشکل منم هست ، می شه بگین کلا این مقدار دهی به چه معنیه؟ * at91c_pmc_pcer = (1<< at91c_id_tc2);
یعنی همه بیت هاش یک میشه؟

meh1011
08-08-2010, 14:17
این مشکل منم هست ، می شه بگین کلا این مقدار دهی به چه معنیه؟ * at91c_pmc_pcer = (1<< at91c_id_tc2);
یعنی همه بیت هاش یک میشه؟

نه من مشکلی با این دستور ندارم ، این دستور یعنی این که بیت مربوت به tc2 ست بشه ، من میگم که نوع اون دوتا دستور بالا که نوشتم چه فرقی داره ؟ آیا دستورات برای مقدار دهی رجیستر ها در کامپایلر های مختلف keil, air, ... با هم فرق داره این تفاوت دلیلش اینه که برای کامپایلر های مختلفه؟

electronicman
29-01-2011, 01:02
دستتون درد نکنه واقعا خسته نباشید

bbj
15-02-2011, 18:55
salam khaste nabashid
failhaie peivast ro dar majale 3 az koja mitonam download konam

masoodhashemy
15-02-2011, 19:07
You can see links before reply
تمام سورس کدهای مجله 1 تا 4 هست

skyzare
07-04-2011, 01:13
واقعا خسته نباشید اجرکم عندالله :oبرای سلامتی همه عزیزان صلوات :125:

Doloop
13-08-2011, 20:45
Your site is perfect

tarasheh
10-04-2012, 15:36
X=(???? * f ) /5
در فرمل محاسبه تاخیر 5/ از کجا اومده؟چرا تقسیم بر 5؟؟؟

samira.m
19-08-2012, 11:21
سلام خسته نباشید
من برنامه ی راه اندازی LCD که در مجله شماره 3 هست رو اجرا کردم ولی به مشکل برخوردم کلا ارور داره اینم چند تا از ارور ها
lcd.h(37): error: #20: identifier "PIO_ClearOutput" is undefined
lcd.h(37): error: #20: identifier "LCD_DB4" is undefined
lcd.h(37): error: #20: identifier "LCD_DB5" is undefined
البته تعدادش زیاده.... cry::
خواهش میکنم کمکم کنید خیلی کارم واجبه.....

beroz
07-09-2012, 22:02
سلام
من هم مشکل کاربر بالا رو دارم


lcd.h(45): error: #20: identifier "PIO_ClearOutput" is undefined
lcd.h(47): error: #20: identifier "PIO_SetOutput" is undefined
lcd.h(58): error: #20: identifier "PIO_SetOutput" is undefined
lcd.h(62): error: #20: identifier "PIO_ClearOutput" is undefined
lcd.h(73): error: #20: identifier "PIO_ClearOutput" is undefined
lcd.h(75): error: #20: identifier "PIO_SetOutput" is undefined
lcd.h(88): error: #20: identifier "PIO_enable" is undefined
lcd.h(89): error: #20: identifier "PIO_CfgOutput" is undefined
lcd.h(93): error: #20: identifier "PIO_SetOutput" is undefined
lcd.h(95): error: #20: identifier "PIO_ClearOutput" is undefined

beroz
07-09-2012, 22:03
کدی که استفاده میکنم و خطای بالا رو میگیرم


#include <AT91SAM7X256.h>
#include "delay.h"
#include "pio.h"

#define LCD_bit 4
#define LCD_PORT B
#define LCD_RS 0
#define LCD_E 1
#define LCD_DB4 2
#define LCD_DB5 3
#define LCD_DB6 4
#define LCD_DB7 5
#include "lcd.h"


int main (void)
{
int a=58;

while(1)
{
lcd_gotoxy(2,5);
lcd_putsf("You can see links before reply");
cursor_on();
delay_s(5);
cursor_off();
delay_s(5);
cursor_blink();
delay_s(5);
Display_off();
delay_s(5);
Display_on();
delay_s(5);
lcd_clear();
delay_s(5);
lcd_gotoxy(2,1);
lcd_putsf("xxxxxxxx");
delay_s(5);
lcd_gotoxy(1,2);
lcd_puts(a);
delay_s(5);
lcd_shift_right(5);
delay_s(5);
lcd_clear();
lcd_putsf("123654789");
delay_s(5);
lcd_shift_left(4);
delay_s(5);
lcd_clear();
}
}


ممنون میشم بگید اشکال کارم کجاست

beroz
07-09-2012, 22:11
فهمیدم مشکل کجا بود

در فایل اصلی باید به صورت زیر تغییر ایجاد شه


#define LCD_PORT_B

به جای


#define LCD_PORT B

1362msi
12-12-2012, 23:03
سلام بجز تشکر چیزه دیگه ای برا گفتن ندارم

Newton
14-12-2012, 21:16
سلام دمتون گرم.واقعا خسته نباشيد و دستخوش داره كاري كه انجام مي ديد.
ممنون

m.elexal
07-03-2013, 03:57
آقا لطفا یکی کمک منه مستمند کنه
دهنم یعنی سرویس شد
2 روزه سر تابع delay گیر کردم هرجور حساب میکنم میزنم جور در نمیاد
پروسسور من LPC1768
با کریستال 12Mhz
طبق فرمولی که همه استفاده میکنن
t*f(cpu)/5
یعنی
60*100000000=6000000000
/5
1200000000
که عقلانی نیست
اگه فرکانس کریستال
که جواب اونم میشه 144000000
اینم نمیشه
!!!!!!!!!!
من بصورت تجربی به عدد 1800000 برای ثانیه رسیدم که خوبه اما بازم میزون نیست فقط میدونم باید همین حول و حوش باشه :(
لطفا کمک کنید و بگید چه مقداری طبق چه فرمولی باید گذاشته شه
ممنون






اینم تابع فعلی

#ifndef _DELAY_INCLUDED_
#define _DELAY_INCLUDED_
int t;
void delay_us(int i)
{
for (t=0;t<2*i;t++);//4
}


void delay_ms(int i)
{
for (t=0;t<1800*i;t++);//1900-4800
}


void delay_s(int i)
{
for (t=0;t<1800000*i;t++);
}

#endif



اینم تابعی که در فایل پیوست موجود بود اینم سریع تر کار میکنه میزنم 1 ثانیه با اسکوپ هم که زدم تقریبا 600 تا 650 میلی ثانیه یک بار یک میشه جای یک ثانیه !!
ممنون میشم کمک کنید


//presentation Header file
#ifndef _DELAY_INCLUDED_
#define _DELAY_INCLUDED_
//presentation variable
unsigned long crystal=12000000; // for other crystal change 18432000
unsigned long x;
unsigned long y;

//presentation subs ( we have three sub 1- delay_us 2- delay_ms 3- delay_s
void delay_us(unsigned long a);
void delay_ms(unsigned long b);
void delay_s(unsigned long c);
// sub delay_us
void delay_us(unsigned long a){
do{
unsigned long d=0;
x=crystal/50000000; //
for (d=0;d<x;d++); //start the VALUE off d is 0 , increase d ,
//if d > x goto next line ,else (d<x) increase d
y++; // increase y
} while(y<a); //if y > a goto next line ,else (y<a) goto "do{"
y=0;
}
//in mine program , you write "delay_s(4);" . in this Header "a" is 4 & do-while
//loop repeat 4 ---time = (x*5)/ crystal
// sub delay_ms
void delay_ms(unsigned long b){
do{
unsigned long e=0;
x=crystal/5000;
for (e=0;e<x;e++);
y++;
} while(y<b);
y=0;
}
// sub delay_s
void delay_s(unsigned long c){
do{
unsigned long f=0;
x=crystal/5;
for (f=0;f<x;f++);
y++;
} while(y<c);
y=0;
}
#endif


ساعت پست رو ببینید متوجه اوضاع میشید :unh::(:brk::baad:

m.elexal
07-03-2013, 14:35
کسی نیست مارو راهنمایی کنه ؟؟؟؟؟؟؟؟؟؟؟؟؟

stinkor
30-03-2013, 15:58
سلام دوستان
موقع اجرای پروژه شماره 3 وقتی که یکی از کانالها رو به زمین مدار وصل میکنم عدد 173 رونشون میده ... اگه اون یکی کانال رو به VCC وصل کنم کانالی که به زمین وصل بود میشه 133 و در کل عدد نزدیک به صفر نمیده ...
کسی میدونه مشکل از کجاست ؟
You can see links before reply

stinkor
05-04-2013, 23:45
سلام دوستان
من اولین برنامه مربوط به تایمر/کانتر هارو (با یکم تغییر) رو برد آزمایشیم تست کردم ولی سه تا مشکل دارم
اول اینکه وقتی کلید شمارنده رو فشار میدم مقدار کانتر چند تا تغییر میکنه و یکی یکی نمیره بالا
دوم اینکه مقدار اولیه کانتر 4 هست به جای 0
سوم اینکه کلید مربوط به تریگر خارجی اصلا کار نمیکنه و عملا نمیشه شمارنده رو ریست کرد ...
کدی که استفاده میکنم :

#include <AT91SAM7X256.h>
#include <stdio.h>
#include <delay.h>
#define LCD_PORT_B
#define LCD_RS 0
#define LCD_E 1
#define LCD_DB4 2
#define LCD_DB5 3
#define LCD_DB6 4
#define LCD_DB7 5
#include <lcd.h>
int main (void){
char lcd_buffer[10];
int a;
// Enable TC Clock
* AT91C_PMC_PCER = (1<< AT91C_ID_TC2);
// Timer Counter Configuration : Capture Mode
// TC_CCR2 Configuration : (CLKEN = 1) (CLKDIS = 0) (SWTRG = 1)
* AT91C_TC2_CCR = 0x00000005;
// TC_CMR2 Configuration : (TCCLKS = 101) (CLKI = 1) (BURST = 10) (CPCTRG = 1) (WAVE =0)
* AT91C_TC2_CMR = 0x0000402D;
// Put 20 In The Timer Counter Register C (RC)
* AT91C_TC2_RC = 20;
lcd_init();
while(1)
{
lcd_clear();
cursor_off();
lcd_gotoxy(1,1);
a=* AT91C_TC2_CV;
sprintf(lcd_buffer,"counter:%d",a);
lcd_putsf(lcd_buffer);
delay_ms(500);
}}
برای اطمینان از پول آپ خارجی هم استفاده کردم
کلید کانتر رو به پورت B.12 و کلید ریست رو به پورت B.19 وصل کردم.
کسی میتونه منو راهنمایی کنه ؟
با تشکر

spring110.sh
22-09-2013, 11:15
:018:

spring110.sh
22-09-2013, 13:24
تو مجله برای نوشتن هدر و تابع ، فقط به آموزش ایجاد فایل هدر (.h) اشاره شده . در صورتی که من دیدم معمولا هم تابع هدر و هم تابع با پسوند (.c ) رو ایجاد می کنن ، سپس تو برنامه اصلی استفاده می کنن

spring110.sh
22-09-2013, 16:43
تو مجله برای نوشتن هدر و تابع ، فقط به آموزش ایجاد فایل هدر (.h) اشاره شده . در صورتی که من دیدم معمولا هم تابع هدر و هم تابع با پسوند (.c ) رو ایجاد می کنن ، سپس تو برنامه اصلی استفاده می کنن

با عرض پوزش از همه بینندگان عزیز ... اشکال در فرستنده است ... به گیرنده های خود دست نزنید !
من الان یه هدر نوشتم تو یه فایل با پسوند (.c) بعد که تو برنامه ازش استفاده کردم چونان شیر غران نعره کشید و کار کرد !!!

:wink::hi::125: