PDA

View Full Version : AVR



mhmmdshirazi
پنج شنبه 11 مهر 1387, 03:09 صبح
هر کی سوالی در مورد avr داره بپرسه جواب می دم.

sudy3090
جمعه 12 مهر 1387, 10:56 صبح
سلام. من برنامه صفحه کلیدی که با میکرو ای وی آر باشه و با زبان سی باشه میخوام که روی ال سی دی گرافیکی نشان بده .می توانید کمکم کنید ؟

mhmmdshirazi
جمعه 12 مهر 1387, 13:21 عصر
بیشتر توضیح بده درست منظورتو نفهمیدم.

sudy3090
شنبه 13 مهر 1387, 00:32 صبح
سلام.سوالمو بهتر مطرح می کنم.یک برنامه می خوام به زبان CیاC++برای میکروی AVR.میکرو به یک lcd گرافیکی مدل ts12864A-2 (که از تراشه ی ks0108استفاده می کنه)و هم چنین یک صفحه کلید 4×4 وصل است.می خوام هر کلیدی که زده شد روی lcdنمایش بده.مثلا اگه کلید 6 را زدیم عدد 6 را نمایش بده.لطفا کمکم کنید.ممنونم

sudy3090
شنبه 13 مهر 1387, 17:35 عصر
ای بابا هیچ کس نیست جواب منو بده؟ من عجله دارم.:عصبانی++:

mhmmdshirazi
شنبه 13 مهر 1387, 19:23 عصر
ببین از نظر سخت افزاری که مشکلی نداری اما من باز توضیح می دم اولا که بهتره از Lcd معمولی استفاده کنی چون تو lcd گرافیکی کار با text سخته اما من هردو حالتشو توضیح می دم فقط الان یه مشکل دیگه هست اونم اینه که از چه ادیتوری واسه پروگرم کردن استفاده می کنی.

sudy3090
شنبه 13 مهر 1387, 22:44 عصر
از پروگرامر stk400استفاده می کنم.استاد:شیطان: مجبورم کرده از این lcd استفاده کنم.مرسی که می خواین کمکم کنید.:گریه:

sudy3090
سه شنبه 16 مهر 1387, 10:55 صبح
سلام.من خیلی عجله دارم. از لحاظ سخت افزار هم مشکل ندارم.حتی می دونم چه طور روی lcd هم نشون بدم. فقط یه برنامه می خوام که هر کلیدی را زدیم تشخیص دهد و مثلا اگر کلید 8 را زدیم وارد یک تابعی بشود به نام key 8. کارهایی که قراره توی تابع انجام بشه را خودم بلدم.فقط تشخیص فشردگی کلید و این که کدوم کلید فشرده شده را نمی دونم.:ناراحت:

mhmmdshirazi
سه شنبه 16 مهر 1387, 18:10 عصر
ببین کی برد حالت ماتریس داره ینی تو هر دکمه رو که فشار می دی اون سطر و سطون به هم وصل می شن.
پس اگه از کی برد 4*4 استفاده می کنی باید چهار تا سیم مربوط به سطر یا سطون رو پول دان کنی(با یه مقاومت کم به GRD وصل کنی) تا نویز نگیره بعد دونه دونه به اون چهار تا پایه دیگه ولتاژ می دی با میکرو و اون چهار تای دیگه رو هم چک می کنی به همین راحتی.
مثلا تو سطون رو پول دان می کنی و به سطر ولتاژ میدی (اونی رو که پول دان کردی چک می کنی) مثلا وقی به سطر دو ولتاژ دادی اگه سطون 3 دارای ولتاژ باشه یعنی دکمه 8 فشار داده شده.
من خودم با codevisionavr کار می کنم و تا بحال با stk400ا کار نکردم اما اگه الگوریتمو متوجه نشدی برنامشم می نویسم ببینی چطوریه.

sudy3090
چهارشنبه 17 مهر 1387, 22:07 عصر
سلام.آقا ما جواب نخواستیم. این توضیحاتو خودم بلدم. بابا مثلا مهندس کامپیوترم.من برنامه را می خواستم که انگار شما فقط دارید منو می پیچونید.تازه امروز بالاخره جواب گرفتم . خداحافظ

mhmmdshirazi
پنج شنبه 18 مهر 1387, 20:26 عصر
اینم برنامه.
مثلا ردیف افقی رو پول دان کردی
و همه رو 4تای پول دان شوده روی پرت b0-b3 و 4تای دیگه رو روی b4-b7 گذاشتی.


PORTB.4=1;
if(PINB.1==1)
{
lcd_putchar('1');
}
if(PINB.2==1)
{
lcd_putchar('2');
}
if(PINB.3==1)
{
lcd_putchar('3');
}
if(PINB.4==1)
{
lcd_putchar('a');
}
PORTB.5=1;
if(PINB.1==1)
{
lcd_putchar('4');
}
if(PINB.2==1)
{
lcd_putchar('5');
}
if(PINB.3==1)
{
lcd_putchar('6');
}
if(PINB.4==1)
{
lcd_putchar('b');
}
PORTB.6=1;
if(PINB.1==1)
{
lcd_putchar('7');
}
if(PINB.2==1)
{
lcd_putchar('8');
}
if(PINB.3==1)
{
lcd_putchar('9');
}
if(PINB.4==1)
{
lcd_putchar('c');
}
PORTB.7=1;
if(PINB.1==1)
{
lcd_putchar('d');
}
if(PINB.2==1)
{
lcd_putchar('e');
}
if(PINB.3==1)
{
lcd_putchar('f');
}
if(PINB.4==1)
{
lcd_putchar('g');
}

SamaPic
یک شنبه 01 دی 1387, 21:58 عصر
با سلام خدمت دوست عزيز.
من مبتدي نيستم ( به عنوان مثال اين برنامه اي كه دوستمان در خواست كرده بودند را من قبلا نوشته بودم.) ولي مي خواهم براي ادامه كارم در اين رشته دست به كار شوم و اطلاعات خود را در زمينه ي كمي و كيفي افزايش دهم .
مي شود يك كتاب مناسب به من معرفي كنيد( كه حاوي مطالب سطح بالاتر و مثال هاي متنوع و مفيد تر باشد).
اين مورد شايان ذكر است كه من در مورد AVR مي خواهم.
با تشكر .
خدانگهدار.

r-electronic
چهارشنبه 30 اردیبهشت 1388, 14:23 عصر
سلام از راستش من یه برنامه فلاشر با c نوشتم که روی پورت a یه برنامه و روی پورت b و d یه برنامه دیگه اجرا میکنه ولی مشکل اینجاست که برنامه هر دو پورت رو همزمان اجرا نمیکنه میتونید در این مورد کمکم کنید برنامش چطوری میشه ممنون میشم

kernel
پنج شنبه 31 اردیبهشت 1388, 11:15 صبح
اگه از سری ATmega استفاده میکنی مدل mega128 میتونه سیستم عامل های ساده رو اجرا کنه تا بتونی تو سیستم پردازش موازی رو داشته باشی

البته تو سری های 8 بیت من فقط mega 128 رو دیدم که بتونه OS اجرا کنه بقیه رو نمی دونم

ولی سری ها 16 و 32 بیتی رو به راحتی میتونی روش سیستم عامل نصب کنی حتی لینوکس و ویندوز


البته نظر شخصی من اینه که با یکم تلاش و اضافه کردن امکانات جانبی شاید بتونی نسخه uclinux رو هم تو mega128 اجرا کنی !

r-electronic
جمعه 01 خرداد 1388, 00:41 صبح
یعنی با mega16 نمیشه این کارو انجام داد راستش من تازه واردم و زیاد نمیتونم برنامه های سخت رو بنویسم میتونید یکم واضح تر توضیح بدید که در نهایت با این ای سی میتونم یا نه میخوام اگه لطف کنید من رو تو نوشتن برنامه یاری کنید ممنون میشم:ناراحت::ناراحت::خجالت:: جالت::لبخندساده::گیج:

r-electronic
جمعه 01 خرداد 1388, 00:42 صبح
منظورتون از لوازم جانبی چیه

SamaPic
شنبه 02 خرداد 1388, 17:50 عصر
یعنی با mega16 نمیشه این کارو انجام داد راستش من تازه واردم و زیاد نمیتونم برنامه های سخت رو بنویسم میتونید یکم واضح تر توضیح بدید که در نهایت با این ای سی میتونم یا نه میخوام اگه لطف کنید من رو تو نوشتن برنامه یاری کنید ممنون میشم:ناراحت::ناراحت::خجالت:: جالت::لبخندساده::گیج:

با سلام.
نه بامگا 16 نمی شه.مگا 16 یک سری امکانات در اختیار افراد قرار می دهد ولی فقط برای شروع کار خوب است.
هر آی سی را بهر کاری ساخته اند.شما می توانید به بروشور این محصول رجوع کنید تا بهتر بتوانید آی سی مورد استفاده را پیدا کنید.
البته اگر شما بیشتر توضیح می دادید که دقیقا چه کار انجام می دید ، می شد راهنمایی بیشتری انجام داد.
موفق باشید.

r-electronic
شنبه 02 خرداد 1388, 21:58 عصر
میتونین بگین باید چکار کنم و با چه ای سی این کارو انجام بدم ببینین من میخوام برنامه ای بنویسم که روی پورت A میکرو یکسری led چشمک بزنه و روی پورت B و D میکرو یکسری دیگه LED با یه برنامه دیگه چشمک بزنه یه برنامه فلاشر ولی میخوام این دو برنامه مختلف روی این دو پورت بصورت همزمان اجرا بشه یعنی دو پورت مستقل از هم کارکنن حالا میتونین راهنمایی کنین با چه ای سی و برنامش چطوری میشه

r-electronic
شنبه 02 خرداد 1388, 22:01 عصر
یه سوال دیگه هم داشتم چطور میشه یه باتری بک آپ رو به atmega16 وصل کرد کسی نقشه ای در این مورد داره یعنی باید به کدوم پایه ها وصل کرد طریقه وصل کردنش چطوریه

r-electronic
شنبه 02 خرداد 1388, 22:21 عصر
اینم برنامه :
#include <mega16.h>
#include <delay.h>
#define B PORTB
#define D PORTD
#define A PORTA
char i;
char x;
char z;
void main(void)
{
PORTA=0x00;
DDRA=0x0F;
PORTB=0x00;
DDRB=0xff;
PORTD=0x00;
DDRD=0xFf;

while (1)
{
i=0x55; //1
B=i;
D=i;
delay_ms(50);
B=B<<1;
D=D<<1;
delay_ms(50);
x=0X0F; //2
A=x;
delay_ms(50);
x=0X00;
A=x;
delay_ms(50);
}
}

SamaPic
دوشنبه 04 خرداد 1388, 11:49 صبح
با سلام.
دوست من ، در اینجا خیلی برنامه مهم نیست.چون در هر صورت برنامه قابل تغییر است.در اینجا فقط مدار و توانایی آی سی است که غیر قابل تغییر است.
آی سی ای که دوست خوبم آقای کرنل پیشنهاد دادند برای این کار باید مناسب باشد.ولی بااین وجود در بعضی موارد شاهد آن خواهیم بود که همه چیز آنطور که ما می خواهیم پیش نمی رود.

منظور شما از باتری بک آپ چیست؟
اگر منظور شما باتری پشتیبان است (که احتمالا هم همین است ) ، باید از طریق یک رله به مصرف کننده وصل شود و سپس کنترل آن رله را به آی سی بدهید.این روشی است که همواره جواب می دهد ولی روش های دیگر ی وجود دارد که از این روش بسیار ساده تر بوده ولی مختص شرایط خاص هستند.
دلیل شکم بر نام باتری این است که ، مداری که شما از آن صحبت کرده اید نیازی به باتری بک آپ ندارد.مگر منظور شما غیر از این باشد.
باز هم اگر موردی هست سوال کن ولی سعی کن آن را در یک پست جدید مطرح کنی.
البته از این پس برای سوال خود توضیحات دقیق تر و با ذکر مشخصات سوال بفرمایید.چون همانطور که می دانید دانش الکترونیک مبتنی بر مشاهده و بررسی دقیق است که بدون شرح جزئیات این مهم تحقق نمی یابد.

خدانگهدار.

kernel
سه شنبه 05 خرداد 1388, 21:34 عصر
منظورتون از لوازم جانبی چیه

یعنی یه SD memory و LCD +... هر چی دلت خواست به سیستمت اضافه کن تا بتونی OS رو اجرا کنی

* حافظه داخلی میکرو برای ذخیره OS خیلی کمه ! * برای مثال نسخه UCLinux یه فایل HEX به عنوان کرنل داره که تقریبا 16MB حجم داره !

r-electronic
جمعه 08 خرداد 1388, 00:10 صبح
کسی نیست یه جواب به ما بده:عصبانی::عصبانی::عصبانی++: :عصبانی++:

r-electronic
جمعه 08 خرداد 1388, 00:12 صبح
:عصبانی::عصبانی::عصبانی++::عص انی++:کسی نیست یه جواب به ما بده

r-electronic
جمعه 08 خرداد 1388, 22:17 عصر
ببینین من یک برنامه ساعت با mega16دارم که باتری پشتیبان نداره و هر وقت تغذیه قطع میشه ساعت از اول شروع به کار میکنه میخوام زمان دقیق رو تا وصل مجدد تغذیه حفظ کنه

r-electronic
جمعه 08 خرداد 1388, 22:24 عصر
در مورد سوال دیگم میتونین بگین باید چکار کنم و با چه ای سی این کارو انجام بدم ببینین من میخوام برنامه ای بنویسم که روی پورت A میکرو یکسری led چشمک بزنه و روی پورت B و D میکرو یکسری دیگه LED با یه برنامه دیگه چشمک بزنه یه برنامه فلاشر ولی میخوام این دو برنامه مختلف روی این دو پورت بصورت همزمان اجرا بشه یعنی دو پورت مستقل از هم کارکنن حالا میتونین راهنمایی کنین با چه ای سی و برنامش چطوری میشه
اینم برنامه :
#include <mega16.h>
#include <delay.h>
#define B PORTB
#define D PORTD
#define A PORTA
char i;
char x;
char z;
void main(void)
{
PORTA=0x00;
DDRA=0x0F;
PORTB=0x00;
DDRB=0xff;
PORTD=0x00;
DDRD=0xFf;

while (1)
{
i=0x55; //1
B=i;
D=i;
delay_ms(50);
B=B<<1;
D=D<<1;
delay_ms(50);
x=0X0F; //2
A=x;
delay_ms(50);
x=0X00;
A=x;
delay_ms(50);
}
}

r-electronic
چهارشنبه 13 خرداد 1388, 14:40 عصر
بابا تورو خدا به ما هم کمک کنید :عصبانی::عصبانی++:برنامش چطوری میشه عجله دارم این با برنامه رو هم براتون گذاشتم میتونید راهنمایی کنید چطور میشه برنامه روی پورت a و پورت b هر دو همرمان و مستقل اجرا بشه

r-electronic
دوشنبه 25 خرداد 1388, 14:41 عصر
بابا یعنی یه نفر نیست این برنامه رو بلد باشه کسی از این موضوع سر در نمیاره:عصبانی:

ghasedak2716
شنبه 06 تیر 1388, 09:17 صبح
دو تا راه داری یا برای برنامه ساعت از یه iC real time clock استفاده کن مثل ds1307 اینا خودشون باتری بک آپ قبول میکنه و ساعت همیشه درسته یا نه اگه میخوای برای خود میکرو باتری بک آپ بذاری باید یه مدار باشه احتمالا با یه رله و مدار شارژ باتری

java_nith
شنبه 06 تیر 1388, 11:42 صبح
یک سوال
من تاحالا با اتمل کار نکردم

فقط هم س بلدم
چه نو AtMel برای اولین بر کار با AVR پیشنهاد می‌کنید (مدل)
که هم با س کار کنه و هم نه زیاد گنده باشه که زیاد بشه

و در ادامه چجوری می‌شه programmer برای آور سخت به که اکثرشون بخوره و ساختنش اسون باشه
چون اینجا programmer خیلی‌ گرونه...

و در ادامه من پرت USB فقط توی پک‌ام دارم و serial ندارم
اینو در ادامهٔ حرف programer میگم، که یه پرگرممری باشه که با USB بشه وصل کر

r-electronic
شنبه 06 تیر 1388, 13:26 عصر
در مورد مدار فلاشرم که برنامشم گذاشتم میتونی بهب کمک کنی

java_nith
شنبه 06 تیر 1388, 17:23 عصر
در مورد مدار فلاشرم که برنامشم گذاشتم میتونی بهب کمک کنی

می‌شه بهتر توضیح بدید؟
منظور که خوده برنامه نیست بلکه programmer است که کد رو توی Atmel بریزم از طریقه USB

r-electronic
دوشنبه 08 تیر 1388, 13:33 عصر
میتونین بگین باید چکار کنم و با چه ای سی این کارو انجام بدم ببینین من میخوام برنامه ای بنویسم که روی پورت A میکرو یکسری led چشمک بزنه و روی پورت B و D میکرو یکسری دیگه LED با یه برنامه دیگه چشمک بزنه یه برنامه فلاشر ولی میخوام این دو برنامه مختلف روی این دو پورت بصورت همزمان اجرا بشه یعنی دو پورت مستقل از هم کارکنن حالا میتونین راهنمایی کنین با چه ای سی و برنامش چطوری میشه
اینم برنامه :
#include <mega16.h>
#include <delay.h>
#define B PORTB
#define D PORTD
#define A PORTA
char i;
char x;
char z;
void main(void)
{
PORTA=0x00;
DDRA=0x0F;
PORTB=0x00;
DDRB=0xff;
PORTD=0x00;
DDRD=0xFf;

while (1)
{
i=0x55; //1
B=i;
D=i;
delay_ms(50);
B=B<<1;
D=D<<1;
delay_ms(50);
x=0X0F; //2
A=x;
delay_ms(50);
x=0X00;
A=x;
delay_ms(50);
}
}

r-electronic
دوشنبه 08 تیر 1388, 13:48 عصر
اتفاقا منظورم خود برنامس

farzadsw
دوشنبه 08 تیر 1388, 16:58 عصر
با سلام
من به طور اتفاقی این تاپیک رو دیدم . بعد دیدم r-electronic یه سوال نسبتا ساده مطرح کرده و حدود 2 ماهه کسی جواب نداده!:عصبانی++: برای همین هم عضو شدم تا بتونم کمک کنم.:چشمک:
امیدوارم که r-electronic بی خیال نشده باشه!
اول یه سوال میکنم تا موضوع مورد نظر شما ، برای من روشنتر بشه:
برنامه شما شیفت دادن led ها روی پورت b,c به صورت یکی در میون و خاموش روشن کردن 4 تا led روی پورت a ؛ با اختلاف زمانی 50 میلی ثانیه هست دیگه؟ درضمن 4 تا از پایه های پورت a به جایی وصل نیست دیگه؟
اگه بله ، پس کافیه:
1. این 4 خط رو ببری قبل از while (تو main)
x=0X0F
i=0x55;
B=i;
D=i;

2. تابع while رو تغییر بدی:
while (1)
{
delay_ms(50);
B=B<<1;
D=D<<1;
x=~x ;
A=x;

}

برای یه برنامه ای به این سادگی به پردازش موازی و سیستم عامل هیچ نیازی نیست! درضمن میکرو های avr سری atmega میکرو های پر قدرتی هستند(برای کار های معمولی) ؛ به طور مثال با همین atmega 16 میشه همزمان اطلاعات 8 تا سنسور رو همزمان خوند وبعد با توجه به این اطلاعات ،دور موتور 3 تا موتور رو باز همزمان کنترل کرد و اطلاعات مورد نیاز رو به صورت realtime به کامپیوتر داد.:لبخندساده:

farzadsw
دوشنبه 08 تیر 1388, 17:42 عصر
یک سوال
من تاحالا با اتمل کار نکردم

فقط هم س بلدم
چه نو AtMel برای اولین بر کار با AVR پیشنهاد می‌کنید (مدل)
که هم با س کار کنه و هم نه زیاد گنده باشه که زیاد بشه


ببخشید ، یه سوال دارم : شما خارج از ایران(نروژ) هستید دیگه؟
اگه منظورتون از این که گنده نباشه ، گرون قیمت نبودنش هست ؛ باید بگم قیمتشون ارزونه . مثلا قیمت atmega 32 که یه مدل تقریبا کامل و قدرتمند با 40 تا pin هست ، حدود 4 دلاره. منم همین رو پیشنهاد میکنم، چون همه امکانات رو داره و ازش میشه تو پروژه های کوچیک تا نسبتا بزرگ استفاده کرد(من یکدونه atmega 32 خریدم و 2ساله دارم ازش تو همه پروژه ها استفاده میکنم!) . اما اگه اندازه (و قیمت) خیلی براتون مهمه ، قیمت atmega 8 حدود 2 دلار هست و 28 pin داره (کوچیکتره) ولی امکانات خوبی داره.



و در ادامه چجوری می‌شه programmer برای آور سخت به که اکثرشون بخوره و ساختنش اسون باشه
چون اینجا programmer خیلی‌ گرونه...

و در ادامه من پرت USB فقط توی پک‌ام دارم و serial ندارم
اینو در ادامهٔ حرف programer میگم، که یه پرگرممری باشه که با USB بشه وصل کر

اگه ابزار (سیم و هوییه و ...) و حوصله دارید ، خودتون یه پروگرمر بسازید ارزونتر براتون در میاد(تو ایران نصف و تو خارج یک سوم قیمت) . من یه نقشه مدار پروگرمر usb داشتم ، ببینم اگه پیدا کردم براتون میگذارم. درضمن اگه کیس(همون پک) شما فقط پورت usb داره برای serial میتونید از کابل تبدیل serial به usb هم استفاده کنید . من اونو تو ایران خریدم 5 هزار تومن(5 دلار).

farzadsw
دوشنبه 08 تیر 1388, 17:47 عصر
می‌شه بهتر توضیح بدید؟
منظور که خوده برنامه نیست بلکه programmer است که کد رو توی Atmel بریزم از طریقه USB

سوء تفاهم شده !

java_nith
سه شنبه 09 تیر 1388, 00:55 صبح
ببخشید ، یه سوال دارم : شما خارج از ایران(نروژ) هستید دیگه؟
اگه منظورتون از این که گنده نباشه ، گرون قیمت نبودنش هست ؛ باید بگم قیمتشون ارزونه . مثلا قیمت atmega 32 که یه مدل تقریبا کامل و قدرتمند با 40 تا pin هست ، حدود 4 دلاره. منم همین رو پیشنهاد میکنم، چون همه امکانات رو داره و ازش میشه تو پروژه های کوچیک تا نسبتا بزرگ استفاده کرد(من یکدونه atmega 32 خریدم و 2ساله دارم ازش تو همه پروژه ها استفاده میکنم!) . اما اگه اندازه (و قیمت) خیلی براتون مهمه ، قیمت atmega 8 حدود 2 دلار هست و 28 pin داره (کوچیکتره) ولی امکانات خوبی داره.




اگه ابزار (سیم و هوییه و ...) و حوصله دارید ، خودتون یه پروگرمر بسازید ارزونتر براتون در میاد(تو ایران نصف و تو خارج یک سوم قیمت) . من یه نقشه مدار پروگرمر usb داشتم ، ببینم اگه پیدا کردم براتون میگذارم. درضمن اگه کیس(همون پک) شما فقط پورت usb داره برای serial میتونید از کابل تبدیل serial به usb هم استفاده کنید . من اونو تو ایران خریدم 5 هزار تومن(5 دلار).


مرسی‌ از جوابتون
بله من در نروژ زندگی می‌کنم
نه اصلا منظوره من قیمت خود AVR نبود
میدونید که کلا AVR توی نروژ درست شده...

It is believed the AVR basic architecture was conceived by two students at the Norwegian Institute of Technology (NTH) Alf-Egil Bogen and Vegard Wollan.[1][2]

منظوره من programmer بود

گفتم که یه AVR پیشنهاد کنید که کوچیک باشه، نه از لحاظه قیمت
ولی‌ از لحاظه اینکه زیاد پیشرفته نباشه ... ولی‌ خوب مسلیک اونی که شما پیشنهاد کردید بدرده منم میخوره

قیمت programmer اینجا خیلی‌ بالاست... که گفتم خودم درست کنم
من laptop فقط USB داره، seriall نداره
نبدیل سیم seriall به USB هم شنیدم که هر تبدیلی نمیخوره
اگه می‌شه یه لینک بذرید / یه عکس که ببینم منظوره شما دقیقا همونو که من میگم یا نه
بدم در برنامه مثلا CodeVision برای این تبدیل با مشگل بر نمیخورم؟

من خودم دوست دارم بسازم، که یادم بگیرم
الکتریک خندم و می‌دونم چجوری لحیم کنم اگه نقش باشه

من توی سایت avr.ir یه نقشه خیلی‌ ساده دیدم
حالا ۲سوال دارم از شما...
توی فایل PDF نوشته شده بود که این برنامه با BASCOM کار میکنه
ولی‌ من باید کدم رو توی CodeVision بریزم چون C بلدم، اگه ایشون گفتم که با BASCOM کار میکنه
اهتمهله اینکه این programmer با CodeVisionهم کار کنه است؟

یل سوال دیگه... این programmer که من دیدم
و یا شما قرار است بدید
به اکثر AteMega می‌خوره؟

یا هر AtMega باید programmer خودشو داشته باشه؟

http://www.avr.ir/pdf/Sample_programmer.pdf

مرسی‌

یادم رفت اینو بگم
این Programmer برای پرت Parallell یا پرینتر است
که من فقط و فقط USB دارم

farzadsw
سه شنبه 09 تیر 1388, 01:33 صبح
قبلا اینجا دیده بودم :
http://mag2009.mihanblog.com/post/28
ولی لینک فایل پاک شده!
اما سایت اصلی این پراگرمر(پراگرمر خودمم همین نوعه!) همه اطلاعات رو داره:
http://www.fischl.de/usbasp/

farzadsw
سه شنبه 09 تیر 1388, 02:20 صبح
اینم همون پروگرمر از سایت kavirelectronic ، بعد از نصب یه فایل help کوچیک داره:
http://kavirelectronic.ir/fa/modules.php?name=News&file=article&sid=74

گفتم که یه AVR پیشنهاد کنید که کوچیک باشه، نه از لحاظه قیمت
ولی‌ از لحاظه اینکه زیاد پیشرفته نباشه ... ولی‌ خوب مسلیک اونی که شما پیشنهاد کردید بدرده منم میخوره
اگه میخواید خیلی کوچیک باشه ( مثلا 8 pin) سری ATtiny این خصوصیت رو داره. و البته امکاناتشم کمتره . اما در کل برنامه نویسی همه avr ها مثل همه (از ATtiny تا ATmega) ، برای همین فرقی نمیکنه با کدوم شروع کنید ، بعلاوه کار کردن میکرو های بزرگتر به دلیل داشتن پایه های بیشتر راحت تره. چون اون پایه های اضافی پورت(i/o) اضافی هستند و اگه لازم نداشته باشید هیچی بهشون وصل نمیکنید ولی در عوض میکرو های کوچیکتر فشرده تر هستن و هر پایه برای چند کار مختلف استفاده میشه و در نتیجه پیچیده تر میشن!:لبخندساده:

نبدیل سیم seriall به USB هم شنیدم که هر تبدیلی نمیخوره
اگه می‌شه یه لینک بذرید / یه عکس که ببینم منظوره شما دقیقا همونو که من میگم یا نه
بدم در برنامه مثلا CodeVision برای این تبدیل با مشگل بر نمیخورم؟
من از این تبدیل برای وصل کردن میکرو با پورت سریال (برای انتقال اطلاعات به کامپیوتر نه پروگرم) به لپتاپم استفاده کردم و هیچ مشکلی نداشت. عکسشو تو ضمیمه گذاشتم(با موبایله!) ولی برای پروگرم امتحان نکردم، چون پروگرمر usb داشتم.

من توی سایت avr.ir یه نقشه خیلی‌ ساده دیدم
حالا ۲سوال دارم از شما...
توی فایل PDF نوشته شده بود که این برنامه با BASCOM کار میکنه
ولی‌ من باید کدم رو توی CodeVision بریزم چون C بلدم، اگه ایشون گفتم که با BASCOM کار میکنه
اهتمهله اینکه این programmer با CodeVisionهم کار کنه است؟
آره ،این ساده ترین و ارزونترین پروگرمر هست ولی با پورت LPT !
منظور ایشون این بوده که با bascom هم کار میکنه. در کل پروگرمر یه چیز مستقل از کامپایلر هست. کامپایلر میکرو کنترلر یه خروجی hex. (به جای exe) تولید میکنه و پروگرمر اون فایل hex رو (حالا برای هر کاپایلری باشه) تو میکرو میریزه. حالا بعضی پروگرمر ها با کامپایلر هماهنگی دارن ، یعنی وقتی که کامپایل میکنن ، به طور خودکار پروگرم هم میکنن ،همین.

یل سوال دیگه... این programmer که من دیدم
و یا شما قرار است بدید
به اکثر AteMega می‌خوره؟

یا هر AtMega باید programmer خودشو داشته باشه؟
این پروگرمر ها به همه ی atmega , attiny ها میخورن ، فقط مشکل اینجاست که پایه های مخصوص پروگرم شدن برای بعضی از میکرو ها با هم فرق داره. به همین دلیل هم روی بورد های آماده پروگرم یه سوکت 40 پایه ، یه سوکت 28 پایه و غیره میگذارن.

java_nith
سه شنبه 09 تیر 1388, 04:30 صبح
باه باه آقا دستت طلا
خیلی‌ خوب توضیح دادی


چنتا سوال
نقشه بهترشم گیر میاد که من درستش کنم؟
شما مال خودتو خودتون درست کردید؟
Khazama AVR programmer چه کار میکنه در اصل؟

من تصمیم گرفتم که اینو درستش کنم
می‌شه برام یکم توضیح بعدی که از کجا شروع کنم
و چی‌ رو باید مواظب باشم

توی Proteus اول درستش کنم بهتر نیست؟
بد فایلشو بدم به یه مغازیه که برام کارتشو درست کنن

خیلی‌ ممنون
اگه خدا بخواد که یه پرگرممر تاپ برای همیشه درست کنم دیگه
الان چندین ساله می‌خوام AvR برنامه نویسی کنم ولی‌ بخاطر این programmer
تاحالا هیچی‌ درست نکردم

farzadsw
سه شنبه 09 تیر 1388, 11:39 صبح
نقشه بهترشم گیر میاد که من درستش کنم؟
شما مال خودتو خودتون درست کردید؟
Khazama AVR programmer چه کار میکنه در اصل؟
تا الان 90 درصد پروگرمر usb برای avr دیدم از همین مدار استفاده کرده(از یه atmega 8 برای پروگرم و اتصال usb استفاده شده) ، حالا ممکنه طراحی بردش فرق بکنه ، مثل همون هایی که تو سایت اصلیش گذاشته.
البته usbprog هم هست ولی کمتر استفاده میشه و منم باهاش کار نکردم:
http://www.embedded-projects.net/index.php?page_id=165
من برای خودم رو خریدم(تقریبا 19 دلار) ، چون 2 سال پیش حوصله این کارا رو نداشتم. ولی این برد رو هرکی که امتحان کرده جواب گرفته.
نرم افزار استفاده شده برای پروگرام در طرف کامپیوتر ، برنامه USBasp هست. این یه برنامه کوچیکه (شبیه درایور عمل میکنه) و از اون تو برنامه های دیگه که دارای gui هستند استفاده میشه. Khazama AVR programmer هم یکی از این برنامه هاست . برنامه progisp که توی اون لینک kavirelectronic هست هم همینطور ولی کاملتره (منم از این استفاده میکنم) و علاوه بر USBasp از usbprog و تمامی مدارات پروگرمر دیگر پشتیبانی میکنه.

من تصمیم گرفتم که اینو درستش کنم
می‌شه برام یکم توضیح بعدی که از کجا شروع کنم
و چی‌ رو باید مواظب باشم
با توجه به اینکه نقشه مدار چاپی رو تو سایت اصلی usbasp گذاشته(انواع مختلف) ، کافیه
*یکی از اونارو انتخاب کنید
*برد pcb رو بدید مغازه براتون بزنه
*قطعات مدار رو بخرید
*قطعات رو سر جاشون لیحم کنید
استفاده از pcb این مزیت رو داره که اصلا سیم کشی نداره و در نتیجه هیچ خطایی هم در کار نخواهد بود و 100 درصد جواب میگیرید.

توی Proteus اول درستش کنم بهتر نیست؟
بد فایلشو بدم به یه مغازیه که برام کارتشو درست کنن
این مدارات قبلا تست شده و کار میکنه
موفق باشید

farzadsw
سه شنبه 09 تیر 1388, 12:11 عصر
اینم میکرو هایی که برنامه progisp (همون که تو لینک کویرالکترونیکه) ساپورت میکنن:
http://www.avrfreaks.net/index.php?module=Freaks%20Tools&func=viewItem&item_id=803
راستی برای انتخاب pcb بهتره به چند نکته توجه کنید:
برای اینکه میکرو رو توسط پروگرمر ، پروگرم کنید ؛ 2 روش هست
یکی اینکه میکرو رو داخل سوکت هایی که تو پروگرمر(احتمالا) هست قرار بدی.اون سوکت های خالی در قسمت بالایی پروگرمر شکل زیر:
http://www.fischl.de/usbasp/bilder/usbasp_mg.jpg

راه دوم استفاده از کابل ISP: In System Programing هست. برای پروگرم کردن به این روش 5 تا سیم از این کابل رو به پایه های مخصوصی تو میکرو وصل می کنید. مزیت این روش اینه که لازم نیست هر دفعه میکرو رو از مدار در بیارید -بگذارید رو پروگرمر -پروگرم کنید -میکرو رو از پروگرمر در بیارید-بگذارید روی مدار !!! بلکه کافیه فقط دکمه پروگرمر رو تو کامپیوتر بزنید!:چشمک:
به عنوان مثال من یه عکس از پروگرمر خودم (هر دو روش رو داره)میگذارم:
http://img33.picoodle.com/img/img33/2/6/30/farzadsw/f_programerm_a9cdd57.jpg

البته تقریبا همه ی pcb های توی اون سایت از روش دوم استفاده میکنن ، که به نظر من هم روش بهتریه. برای راهنمایی بیشتر قسمت آخر pdf زیر رو بخونید
http://www.4shared.com/file/115047774/78384148/FARSIHELP.html

java_nith
سه شنبه 09 تیر 1388, 12:42 عصر
خیلی‌ ممنون
توزیع‌هات تون حرف نداره
من الان ۳ ساعت خوابیدم ,منتظر جوابتون بودم مشتاقانه

اینجا فقط یه مقازی کامله الکترونیکی‌ است
که الان بهشون ایمیل دادم و گفتن که دیگه این کارو انجام نمیدم
یعنی‌ PCB بگیرن و برام درستش کنن
برای همین باید خودم دستگهشو درست کنم

زیاد مسلیک سخت نیست، ولی‌ شاید دفه اول زیاد کیفیتش خوب نشه

توئه این چند روز سعی‌ می‌کنم کارتشو درست کنم
و بد این پرگرممر رو درست کنم
البته پرگرممر AVR اینجا زیاد گرون نیست، ارزنه ولی‌ خوب دوست دارم خودم درستش کنم
ولی‌ مال PIC نمیدونم چرا آنقدر گرونه
AVR تقریبا 46 US$ قیمتش
ولی‌ PIC قیمتش 380 US$

ولی‌ مال PIC برای خود شرکت MicroChip استش

یه سوال کوچولو،
تا الان فهمیدم که Khazama AVR programmer مثل یک driver کار میکنه همین
usbprog پس کاری چی‌ است؟
البته تا انجی که من فهمیدم همین برنامه هستش که فایل HEX رو PUSH میکنه توی IC

و با کدوم برنامه در اصل کد PUSH می‌شه توی IC

دنبال ZIF-socket هم هستم که کار راحت تر بشه


برای درست کردنه دستگاه کارت هم از این لینک می‌خوام استفاده کنم، شاید بدردتان بخوره
http://avforum.no/forum/761611-post1.html

java_nith
سه شنبه 09 تیر 1388, 12:44 عصر
فرزاد جان تا الان خیلی‌ فایل‌های خوبی‌ دادید
همه‌رو پرینت کردم
اگه بازم مطلب دارید بدید که خیلی‌ ممنون میشم

farzadsw
سه شنبه 09 تیر 1388, 14:32 عصر
یه سوال کوچولو،
تا الان فهمیدم که Khazama AVR programmer مثل یک driver کار میکنه همین
usbprog پس کاری چی‌ است؟
البته تا انجی که من فهمیدم همین برنامه هستش که فایل HEX رو PUSH میکنه توی IC

و با کدوم برنامه در اصل کد PUSH می‌شه توی IC

دنبال ZIF-socket هم هستم که کار راحت تر بشه
نه، usbasp مثل یه درایور عمل میکنه که از اون ،توی برنامه های Khazama AVR programmer و progisp استفاده شده. این دو برنامه ی Khazama AVR programmer و progisp هردو یه کار رو انجام میدن(میتونید از هرکدوم استفاده کنید) و این دو برنامه هستن که فایل رو روی ic میریزن(push ) . ولی به نظر من progisp کاملتر هست.
اما در مورد usbprog : این یه مدار دیگه (غیر از usbasp) برای پروگرمر usb هست ولی زیاد استفاده نمیشه. usbprog رو برای این معرفی کردم چون شما پرسیدید مدار دیگه ای هم هست. اما به نظر من usbasp بهتره و کاری با usbprog نداشته باشید.
امیدوارم این اسمامی مشابه که همشون کلمه های usb , prog دارن رو با هم اشتباه نگیرید!
موفق باشید

java_nith
سه شنبه 09 تیر 1388, 14:41 عصر
منم فکر کنم که تا همین الان برای شباهت اسم قاطی‌ کردم
فرزاد جان خیلی‌ ممنون
من همین امروز میرم چیز‌های که احتیاج دارم رو میخرم
و اگه خواستی‌ جوابشو با عکس برات PM میزنم

تا الان که خیلی‌ کار راحت شده

از این به بعدش با اون الکترنیکی که بلدم
و با برنامه نوسی مدار درست می‌کنم

بازم خیلی‌ ممنون
اگه کمکی‌ از من بر میاد بگید حتما :=)

farzadsw
سه شنبه 09 تیر 1388, 14:55 عصر
مدارش که آماده شد مارو هم در جریان بگذار:لبخند:
موفق باشید

java_nith
سه شنبه 09 تیر 1388, 15:08 عصر
مدارش که آماده شد مارو هم در جریان بگذار:لبخند:
موفق باشید

حتما دوست عزیز
هم از مدار و هم از دستگاه و هم اگه وقت یه مداره کوچیک میسازم
عکس میزارم برات :=)

farzadsw
سه شنبه 09 تیر 1388, 15:55 عصر
مشکل r-electronic حل شده یا اینکه ایشون بی خیال شدن؟ آخه تا 3 ساعت قبل از پست من خیلی پیگیر بودن!

r-electronic
سه شنبه 09 تیر 1388, 17:37 عصر
آقا دستتون درد نکنه ممنونم ولی می هنوز پیگیرم چون واقعا این موضوع برام خیلی مهم بود فقط یه سوال اینکه الان پورت a و d bمستقل از هم این برنامه رو اجرا میکنن یعنی شیفت ال ای دی ها روی دو پورت d و bو برنامه روی پورت a بطور مستقل از هم اجرا میشن؟ راستش من یکم تازه کارم و هنوز بطور حرفه ای برنامه نویسی رو یاد نگرفتم :گیج:در هر حال از ینکه کمک کردین بسیار ممنونم:تشویق:

farzadsw
سه شنبه 09 تیر 1388, 18:21 عصر
بله الان همه led ها باید همزمان تغییر کنن
راستی تاخیر 50 میلی ثانیه خیلی کمه و led ها خیلی سریع تغییر میکنن ، بهتره تاخیر رو حدود 500 میلی ثانیه کنید.

r-electronic
جمعه 12 تیر 1388, 19:39 عصر
سلام راستش همه led ها با هم تغییر میکنند ولی روی پورت b و d فقط یهبار تکرار میشه و تا اخر میره و خاموش میشه و فقط پورت a کار میکنه و پورت b و d خاموش میشن راستی اگه بخوام بزنامه دیگه هم به اونها اضافه کنم میشه مشکلی پیش نمیاد

farzadsw
شنبه 13 تیر 1388, 01:16 صبح
سلام راستش همه led ها با هم تغییر میکنند ولی روی پورت b و d فقط یهبار تکرار میشه و تا اخر میره و خاموش میشه و فقط پورت a کار میکنه و پورت b و d خاموش میشن راستی اگه بخوام بزنامه دیگه هم به اونها اضافه کنم میشه مشکلی پیش نمیاد

خب اینکه PORTb ,PORTc بعد از چند مرحله ، کلا خاموش میشن(اگه منظورتون همین باشه؟!) مربوط میشه به کد برنامه خودتون :

B=B<<1;
D=D<<1;

یعنی بدیهیه که بعد از چندتا شیفت غیر از صفر چیزی باقی نمی مونه!
01010101
10101010
01010100
10101000
01010000
10100000
01000000
10000000
00000000:لبخند:
اگه میخواید c , d هم مثل a همیشه تکرار بشن باید بنویسید:
i = ~i
B = i
C = i

چه برنامه ای میخواید اضافه کنید؟ مربوط به این led هاست؟ یکم توضیح بدید.

r-electronic
یک شنبه 21 تیر 1388, 21:57 عصر
بله دوست عزیز یعنی اینکه بخوام روی پورت A چند تا برنامه دیگه هم اضافه کنم 2تا3تا برنامه دیگه ، تاخیر در برنامه ایجاد نمیکنه و مشکلی پیش نمیاد راستی تاخیر هر کانال بطور جداگانه قابل تغییره یا نه هر 3،2کانال باهم تغییرمیکنند تاخیرشونو میگم:گیج:ضمنا از پاسختون بسیار ممنونم خیلی به من کمک کردین:تشویق::تشویق::تشویق::ت ویق:

farzadsw
یک شنبه 21 تیر 1388, 22:38 عصر
هر خط از برنامه به طور کلی (تقریبی) 1 میکرو ثانیه ( 1 هزارم میلی ثانیه) طول میکشه! بنابراین هرچقدر هم به برنامتون اضافه کنید زمان اجرا تغییر خاصی نمیکنه(بازم به طور کلی).
اگه تاخیر ها یکی نباشه ، یه راه حل ساده (غیر از interrupt) اینه که زمان تاخیر رو برابر کوتاهترین تاخیر انتخاب کنبد و هر چند دفعه که تاخیر انجام شد ، مورد دوم رو هم تغییر بدین.
مثلا تاخیر ها یکی 100 میلی ثانیه (برای کارA) و یکی 300 میلی ثانیه (برای کارB)،توی حلقه مینویسی:

kare A
if c ==2
{
kare B
c = 0
{
c = c +1
waitms (100


البته من عین دستوراشو ننوشتم ، چون هم تو اینجا درست نشون نمیده و هم خواستم منظورو برسونم
شما لطف دارید ، ولی برای تشکر کافیه دکمه تشکر رو بزنید !

farzadsw
دوشنبه 19 مرداد 1388, 10:14 صبح
ممنون از پاسختون به سوالم در مورد پروژه ی finger print.
ولی من فعلا فقط می خوام کد بزنم و در proteus شبیه سازی کنم.
مشکلم عدم آشنایی با کد زدنه، یعنی نمی دونم چی باید بنویسم تا میکروکنترلر با سنسور ارتباط برقرار کنه!
اگه شما میخواید با codevision بر نامه نویسی کنید این pdf رو بخونید (فایل مثال هاشم همراشه):
http://www.4shared.com/file/124062027/fcef5d37/avr-codvision.html
بهتره از صفحه 18 به بعد رو بخونید چون قبلش بیشتر مربوط به کار عملی میشه.
برای winavr (اینم زبان c ولی سختره) :
http://kavirelectronic.ir/winavr/
برای بسکام (زبان basic و خیلی ساده ! ):
http://forum.iranled.com/showthread.php?tid=12117

کلا برای کار با هر سنسوری اول باید دیتا شیتش رو بخونید ، تو اونجا گفته چطور باید وصل بشه. من خودم با این سنسور اثر انگشت کار نکردم ، برای همین اگه در خصوص این سنسور سوالی داشتید تو همون تاپیک اثر انگشت مطرح کنید . فکر کنم skflower در این مورد اطلاعات داشته باشه.

r-electronic
دوشنبه 02 شهریور 1388, 10:04 صبح
سلام ببخشید شما اطلاعی در مورد لیزر دارین میتونین در مورد کار با اون راهنمایی کنین

Royce_Da
شنبه 07 شهریور 1388, 03:50 صبح
سلام

من چطوری میتونم یه پروگرمر USB بسازم که احتیاجی به درایور یا یه شناسه برای ویندوز نداشته باشه مثل بعضی از پروگرمر های پورت سریال


ممنون میشم جوابمو بدین

farzadsw
شنبه 07 شهریور 1388, 18:59 عصر
دوست عزیز پورت usb براخلاف سریال بدون درایور کارنمیکنه ! حتی کول دیسک و موس هم درایور میخواد اما چون به طور دیفالت رو ویندوز نصب شده احتیاجی به نصب نداره.

سيد مجتبي هاشمي
شنبه 21 شهریور 1388, 17:23 عصر
سلام. دوشت عزیز من یک مدار دارم که روی ال سی دی چهار مقدار خروجی رو بهم نشون میده. حالا میخوام یک پورت USB بهش اضافه کنم تا این اطلاعات را از طریق این پورت وارد برنامه ای بکنه که با دلفی 7 نوشتم.

حالا میخواستم ببینم چه طور میتونم توی برنامه ام پورت USB رو بشناسم و این اطلاعات رو بخونم. لطفا بهم کمک کنید. خیلی خیلی بهش نیاز دارم. اگه کامپوننتی هم دارید لطف کنید و بهم معرفی کنید. باز هم ممنون از راهنماییتون.

farzadsw
شنبه 21 شهریور 1388, 22:57 عصر
من با usb کار نکردم(چون واقعا لازم نشده) . اگه هدفتون فرستادن اطلاعات هست نه خود usb بهتره از پورت سریال استفاده کنید. من با دلفی کار نکردم ولی میدونم که اگه تو گوگل در مورد rs232 و دلفی یه جستجو کنی همه چی پیدا میکنی. اگرم کامپیوتر شما پورت سریال نداره از یه کابل تبدیل سریال به usb استفاده کنید.
اگه در مورد ارتباط سریال تو میکرو سوال داشتید بپرسید.
اگرم فقط با پورت usb میخواید کار کنید تو گوگل avrusb رو جستجو کنید ، هم نقشه مدارش هست هم برنامه میکرو و هم برنامه طرف کامپیوتر . اما کار باهاش زیاد راحت نیست(البته من حتی سعی نکردم امتحانش کنم!)

r-electronic
پنج شنبه 26 شهریور 1388, 15:20 عصر
سلام ببخشید شما اطلاعی در مورد لیزر دارین بابا یعنی توی این مهندسین عزیز کسی تاحالا لیزر ندیده یا با اون کار کرده باشه که بتونه اطلاعاتی در مورد اون بده میتونین در مورد کار با اون راهنمایی کنین:عصبانی++::عصبانی++::عصبا ی::عصبانی:

r-electronic
پنج شنبه 26 شهریور 1388, 15:24 عصر
سلام ببخشید شما اطلاعی در مورد لیزر دارین بابا یعنی توی این مهندسین عزیز کسی تاحالا لیزر ندیده یا با اون کار کرده باشه که بتونه اطلاعاتی در مورد اون بده میتونین در مورد کار با اون راهنمایی کنین:عصبانی::عصبانی++::عصبان ::عصبانی++::عصبانی++:

farzadsw
جمعه 27 شهریور 1388, 00:13 صبح
لیزر دیدیم ولی خود لیزر چیزی نداره که بخوایم توضیح بدیم . ماژول های لیزر مثل led عمل میکنن ، فقط نورشون از جنس لیزره . مهم کار با منشور و آینه و چرخش اینا هست تا یه تصویر درست بشه. ولی من تو زمینه اپتیک کار نکردم(و احتمالا هم نمیکنم) .

ArshiaJ
جمعه 27 شهریور 1388, 15:28 عصر
سلام . اول از همه بگم که من مبتدی هستم و جز اطلاعاتی که این روزها از اینترنت گرفتم اطلاعی دیگر ندارم.
فقط یک سوال داشتم که ببینم اگر جواب مثبت است به یادگیری خود ادامه دهم.
من می خواهم گزینه هایی روی یک ال سی دی لمسی نمایش بدم ، و بعد با انتخاب هر یک از این ها توسط کاربر ، اطلاعات دیگری بر روی ال سی دی نمایش داده بشه و همچنین با توجه به دستوراتی که از قبل برنامه ریزی شد ، یک عمل خاصی بر روی دیگر اجزا بیوفته.
مثلا کاربر با انتخاب گزینه (تست) بتونه متونی مانند (شما در حال تست هستید) رو ببینه و در همین حین مثلا سنسور حرارت شروع به کار کنه و یا یک موتور شروع به کار کردن بکنه .
و در پایان هم مثلا وقتی کار انجام شد بر روی صفحه ال سی دی ( عملیات انجام شد ) نقش ببنده.
می خواستم ببینم با یک میکروکنتلر AVR می تونم تمام این اعمال رو انجام بدم (حدود 8-9 تا عمل مختلف ولی مرتبط به هم) و اگر بله با چه مدلی از AVR و چه کتاب هایی و نرم افزاری را توصیه می کنید.


سپاس مندم.:خجالت:

farzadsw
شنبه 28 شهریور 1388, 00:42 صبح
بله میشه . اگه سطوح یادگیری میکرو رو به 3 دسته a,b,c تقسیم کنیم شما باید تا B+ یاد بگیرید !
تقریبا همه atmega ها میتونن این کار رو بکنن ولی چون به پایه های زیادی احتیاج پیدا میکنید(حدود 20 پایه) بهتره از مدلهای 40پایه استفاده کنید ، مثل Atmega16 , Atmega32 .
باید اول زبان برنامه نویسیتون رو مشخص کنید : بیسیک یا سی
-کار با بیسیک(بسکام) خیلی راحتره
- کار با کدویژن یکم سخت تره(ولی بازم راحته) اما زبانش c هست . که باعث میشه حجم برنامه کمتر و بهینه تر و درکل مهندسی تر بشه.
- کار با winavr نسبت به اون دوتا سختره(c) ولی کامپایلرش رایگانه . که همین باعث شده بیشتر خارجی ها با همین برنامه کار کنن و مثال و کتابخونه برای winavr حدود 10 برابر بقیه کامپایلر هاست.(فقط شروع باهاش سخته ولی بعدش ...)
برای هر کدوم از این سه تا خوشبختانه ebook فارسی موجود هست . اما اگه کتاب چاپی بخواید winavr نداره . من زیاد دنبال کتاب چاپی نبودم فقط کتاب avr از علی کاهه رو دیده ام ، برای بسکام هست و توش توضیحات نسبتا کاملی در مورد قسمتهای مختلف میکرو به همراه پروژه وجود داره (کتاب خوبیه).

mostafa_shaeri_tj
یک شنبه 29 شهریور 1388, 11:21 صبح
در مورد کار با صفحه لمسی یک کتاب هست : کاربرد میکروکنترلر های avr از عبدالرحمان حیدری که خوب توضیح داده.

alireza_ap
یک شنبه 29 شهریور 1388, 23:20 عصر
اقای فرزاد عزیز
من یه تکه کد برای ارسال اس ام اس با gsm نوشتم که اینجا می زارم

عزیزان کسی می تونه تست کنه ببینه این درست هست یا نه؟ جواب می گیرید ؟

ممنون می شم از همگی

#include<mega32.h>
#include<stdio.h>
#include<delay.h>

unsigned char str1[] = "AT+CMGF=0";
unsigned char str2[] = "AT+CMGS=29";
unsigned char str3[] = "079189390500410001000B819071077538F6000012F3F61C44 2FCFE920B3FCDD0685EDF210";

void main(void)
{
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;

PORTA.0 = 1;
delay_ms(1500);
PORTA.0 = 0;

puts(str1);

PORTA.1 = 1;
delay_ms(2000);
PORTA.1 = 0;

puts(str2); //AT+CMGS=29
putchar(0x0D);

PORTA.0 = 1;
delay_ms(1500);
PORTA.0 = 0;

delay_ms(3000);
puts(str3); //Message in PDU format

PORTA.1 = 1;
delay_ms(2000);
PORTA.1 = 0;

putchar(0x1A); //Control-z
putchar(0x0D);

PORTA.0 = 1;

}

اگه مشکلی داره بنده را راهنمایی می کنید یا تکه کدی بذارید که جواب گرفته باشید ؟ ممنون

farzadsw
دوشنبه 30 شهریور 1388, 19:51 عصر
متاسفانه من ماژول gsm ندارم که امتحان کنم .

alireza_ap
سه شنبه 31 شهریور 1388, 23:25 عصر
کسی دیگه جواب ما رو نمی ده؟

babakzg
شنبه 24 بهمن 1388, 01:41 صبح
سلام
شاید این سئوالی که می پرسم زیاد با تاپیک های قبلی فرق کنه !
سئوالم در مورد kmz 52 است !
آیا برای راه اندازیش میشه از amr استفاده کرد یا باید از avr استفاده بشه ؟
اگر مطلبی در این مورد دارید راهنمایی کنید چون شدیدا به این مدار نیاز دارم
مرسی
باز هم عذر خواهی می کنم اگه یکم موضوع فرق داره !:لبخند:

M_Ali_Safdari
شنبه 24 بهمن 1388, 03:47 صبح
سئوالم در مورد kmz 52 است !
آیا برای راه اندازیش میشه از amr استفاده کرد یا باید از avr استفاده بشه ؟


اگر همان سنسور مغناطیسی آنالوگ است با هر میکرو یی که ADC دارد می شود استفاده کرد و به ARM یا AVR هیچ ارتباطی ندارد.

navidwhacker
جمعه 06 فروردین 1389, 15:44 عصر
سلام من میخوام avr رو یاد بگیرم.
ممکن کتاب معرفی کنید و راهنماییم کنید؟

farzadsw
شنبه 07 فروردین 1389, 02:15 صبح
تو اینجا چند ebook فارسی معرفی شده:
http://barnamenevis.org/forum/showthread.php?t=166278

اگه کتاب چاپ شده میخواید ، برای زبان بیسیک و کامپایلر بسکام ، کتاب علی کاهه خوبه.

برای یاد گیری سعی کنید وسایل لازم رو برای بستن مدار تهیه کنید(خود مبکرو ، پروگرمر ، برد برد و..) یا حداقل از شبیه ساز پروتئوس استفاده کنید . هر قسمتی که رو که یاد گرفتید اون رو امتحان کنید و پله پله برید جلو ، نه اینکه کل کتاب رو بخونید و بعد تازه شروع کنید.

navidwhacker
شنبه 07 فروردین 1389, 02:40 صبح
تو اینجا چند ebook فارسی معرفی شده:
http://barnamenevis.org/forum/showthread.php?t=166278

اگه کتاب چاپ شده میخواید ، برای زبان بیسیک و کامپایلر بسکام ، کتاب علی کاهه خوبه.

برای یاد گیری سعی کنید وسایل لازم رو برای بستن مدار تهیه کنید(خود مبکرو ، پروگرمر ، برد برد و..) یا حداقل از شبیه ساز پروتئوس استفاده کنید . هر قسمتی که رو که یاد گرفتید اون رو امتحان کنید و پله پله برید جلو ، نه اینکه کل کتاب رو بخونید و بعد تازه شروع کنید.



ممنونم از راهنماییتون خیلی کمک کردید.

ghameshloe
پنج شنبه 19 فروردین 1389, 12:18 عصر
با سلام
من تازه می خوام برنمه نویسی با Avr را شروع کنم
یک کتاب هم در این رابطه پیدا کردم
و زبان برنامه نویسی هم C است
اولین مشکلی که دارم نحوه ارتباط با پورت
بهتر بگم هیچی در مورد سخت افزار مورد نیاز برای برنامه نویسی و مشاهده نتایج در سخت افزار نمی دونم

mhmmdshirazi
یک شنبه 09 خرداد 1389, 13:25 عصر
با سلام
من تازه می خوام برنمه نویسی با Avr را شروع کنم
یک کتاب هم در این رابطه پیدا کردم
و زبان برنامه نویسی هم C است
اولین مشکلی که دارم نحوه ارتباط با پورت
بهتر بگم هیچی در مورد سخت افزار مورد نیاز برای برنامه نویسی و مشاهده نتایج در سخت افزار نمی دونم

یه کتاب یه زمانی بهترین مرجع بود اونم اسمش بود میکرو کنترلر AVR طرح روی جلدش یه مریخ نورده اونو بخر خیلی خوبه بعد هم مشکلت رو دقیق بگو من کمک می کنم!!!!

TOWHEN
یک شنبه 03 مرداد 1389, 17:39 عصر
من میخوام یه سروو موتور رو کنترل کنم. اینو متوجه شدم که یه vcc و gnd میگیره و سیم وسط وصل میشه به میکرو. حالا با میکرو باید بهش پالس بدم؟ دقیقا نمیدونم باید چطور بهش دستور چرخش بدم. متشکرم

تو یه برنامه آماده که دیده بودم عبارتی به این صورت بود:
;PORTA=~i
اون علامت ~ برای چی هست؟

farzadsw
دوشنبه 04 مرداد 1389, 01:57 صبح
اون نقیض هست ، برای toggle شدن وضعیت پورت . یا به عبارتی تولید موج مربعی

بانوی ایران
جمعه 09 مهر 1389, 23:47 عصر
من میخوام یه سروو موتور رو کنترل کنم. اینو متوجه شدم که یه vcc و gnd میگیره و سیم وسط وصل میشه به میکرو. حالا با میکرو باید بهش پالس بدم؟ دقیقا نمیدونم باید چطور بهش دستور چرخش بدم. متشکرم

تو یه برنامه آماده که دیده بودم عبارتی به این صورت بود:
;PORTA=~i
اون علامت ~ برای چی هست؟
سلام دوست عزيز
اول اينكه شما براي راه اندازي موتور نبايد مستقيما به ميكرو اتصال بدي بايد با ترانزيستور وصل كني وگرنه موتور جريان زياد ميكشه ميكرو ميسوزه
اگر ميخواي بگو نحوه اتصال ترانزيستورو بگم بهت
براي پالس دادنم بايد پايه ي ترانزيستور رو به يكي از تايمراي ميكرو وصل كني و با fast pwmپالس بدي
براي چرخش موتور هم هيچ دستور خاصي نميخواد بديد فقط بايد تايمر رو فعال كنيد
و براي كنترل سرعتم فقط لازمه مقدار 0cr رو تغيير بدي
البته ميدونم خيلي دير اين جوابو زدم اما ممكنه به درده يكي ديگه بخوره
توضيح بيشتر خواستيد بگيد تا دقيق تر بگم

sohrab_2007_h
چهارشنبه 19 آبان 1389, 20:29 عصر
سلام آموزشگاه معتبری که کلاس avr داشته باشه سراغ دارید؟

robochoo
چهارشنبه 03 آذر 1389, 17:15 عصر
سلام به روی گل همه دوستان
برای راه اندازی GLCD تویه AVR شما به یه کتابخوانه احتیاج دارین.
اینها که میخواید خیلی سادست. کتابخونشو خودم نوشتم
هرکدوم از دوستان میخواد بگه واسش ایمیل کنم.
اما در مورد فارسی باید بگم فونتشو باید درست کنید.
تو این برنامه فونت رو باید یهش معرفی کنید که یه تیبل هست

robochoo
چهارشنبه 03 آذر 1389, 17:17 عصر
تدریس خصوصی AVR هم در خدمت هستسم

robochoo
چهارشنبه 03 آذر 1389, 17:20 عصر
سرو متور ها انواع مختلفی دارن. اما با دادن پالس مربعی و VCC , 'GRand را نمیفتن.
یه جور سرو دیسی هست که 180 درجه هم فقط حرکت میکنه که درایورش هم روشه که اونها میشه با دادن پالس به ورودیشون بهشون فرمان داد

alireza976
چهارشنبه 10 آذر 1389, 22:39 عصر
سلام
من میخوام با بسکام از portc.2 که وصله به یه میکرو سوییچ ورودی بگیرم
مثلا وقتی vcc وصل شد به اون پین میکرو بفهمه و یکسری دستوراتو انجام بده ، زمانی ام که ولتاژ قطع شد یکسری دستوره دیگه انجام بدم.
اینم کدمه :
Do While Portc.2 == 0
portb.6=1
Loop
Do While Portc.2 == 1
portb.6=1
Loop
قبلش هم portc رو به عنوان ورودی معرفی کردم.
حالا موقع کامپایل اروره invalid datatype میده
میخواستم اگه میشه راهنماییم کنید که بدونم مشکل چیه
ممنون

alireza976
پنج شنبه 11 آذر 1389, 11:43 صبح
لااقل یکی بگه چطوری میتونم حالیش کنم که تو یک بیت از یک پورت ولتاژ هست یا نه؟ بنویسم portc.0==0 یا 1 میفهمه خودش؟

farzadsw
پنج شنبه 11 آذر 1389, 22:16 عصر
1.عبارت == در زبان بیسیک وجود نداره . یعنی برای مقایسه هم باید از = استفاده کنید .
2. برای خوندن ورودی باید از pinc.2 استفاده کنید . portc.2 وقتی استفاده میشه که قرار باشه پایه مورد نظر(2) خرورجیش تغییر کنه.
3. بهتره پول آپ داخلی پایه ای که ورودی میشه رو فعال کنید (و یا از پول آپ - پول دان خارجی استفاده کنید) در غیر این صورت مقدار ورودی به سادگی تغییر میکنه و نویز روش اثر میگزاره (حتی با نزدیک کردن دست هم مقدارش عوض میشه)

به نظر من بهتره برنامه رو اینطوری بنویسید :



if pinc.2 =0 then
portb.6=1
else
portb.6=0
end if

alireza976
جمعه 12 آذر 1389, 23:15 عصر
سلام
ممنون بابت راهنماییتون
ولی یه مشکل ، من نمیتونم از if استفاده کنم . دلیل اینکه از do while استفاده کردم اینه که pinc.2 معلوم نیست که چه زمانی مقدارش تغییر میکنه و من میخوام تا زمانی که تغییر نکرده تو اون قسمت از دستورات بچرخه(loop انجام بشه) تا ورودیش تغییر کنه و بعد بره سر دستورات دیگه.
کد طبق توضیحاتتون بصورت زیر شد ولی باز هم همون ارور رو میده:
Do While Pinc.2 = 0
portb.6=1
Loop
Do While Pinc.2 = 1
portb.6=1
Loop

farzadsw
دوشنبه 15 آذر 1389, 11:10 صبح
دستورات do-loop و while-wend به صورت جدا وجود دارند و عبارتی که شما نوشتید تو زبان بیسیک تعریف نشده هست . یه نگاهی به راهنمای خود بسکام بندازید مشکلتون برطرف میشه:
http://avrhelp.mcselec.com/index.html?do_loop.htm
http://avrhelp.mcselec.com/index.html?while_wend.htm

alireza976
چهارشنبه 17 آذر 1389, 14:49 عصر
دستوراتو به شکل زیر نوشتم جواب داد
Do
If Pinc.7 = 1 Then Portb.6 = 1
If Pinc.7 = 0 Then Exit Do
Loop
...
بازم ممنون بابت راهنماییتون

hossein.dapper
جمعه 03 دی 1389, 03:22 صبح
سلام
من می خوام یه 7segment رو با atmega16 روشن کنم برنامش هم نوشتم. طریقه وصل کردن این دو را در proteus می خواستم.

vahid5695
دوشنبه 25 بهمن 1389, 10:54 صبح
سلام. من ميخواستم اصول كلي طراحي منو در كدويژن(نه بيسكام) رو برام توضيح بدين. مثلا از چه دستوراتي بايد استفاده بشه و الگوي كلي ايجاد منو چطوريه. ممنون

farzadsw
دوشنبه 25 بهمن 1389, 17:15 عصر
منو(menu ) برای lcd گرافیکی منظورتونه ؟
دستور خاصی نداره ! البته یه سری کتابخونه گرافیکی به زبان C هست که احتمالا تو اون ها یه سری تابع داشته باشه ( اگه تو وب بگردید پیدا میکنید) ولی در کل روش کلی خیلی بدیهیه و به این صورته که شما یه تعداد شکل (مثلا مستطیل) رو یه جای lcd ،مثلا سمت راست، میکشید . بعد روی اونها (مختصات هر مستطیل) متنتون رو با رنگ مخالف مینویسید . مثلا توی lcd های گرافیکی مونوکروم (همین lcd های گرافیکی معمولی 128*64 ) مستطیل رو با سیاه ایجاد میکنید و توش متن رو با سفید مینویسید (اغلب کتابخونه های lcd گرافیکی یه آرگومان برای رنگ دارند).دیگه بقیه اش بستگی به سلیقه و حوصله شما داره تا چقدر خوشگل از آب در بیاد ! مثلا منو میتونه همین مستطیل ها باشه و یه مثلث کوچیک جلوی گزینه ی فعال باشه که با پایین و بالا بردن (با کلیدی که تو مداره) مکانش تغییر کنه و گزینه دیگه ای فعال کنه ، یا اینکه گزینه فعال شده highlight بشه (رنگ مستطیل و متن جابه جا بشه) یا اینکه ............

فقط یادتون باشه که تقریبا تمامی کتابخونه های lcd گرافیکی که توابع اولیه (مثل ریم مستطیل و متن و خط و...)رو دارن ، برای هر پیکسل فقط بک بیت (0 یا 1) در نظر میگیرند . برای همین در حقیقت یک لایه گرافیکی بیشتر ندارید . مثلا اگه اول نوشته رو بنویسید و بعد مستطیل رو روش بکشید ، فقط مستطیل دیده میشه ، مثل کاغذ معمولی و مداد. برای همین بهتره منوها و سایر عناصر گرافیکی رو به صورت تابع تعریف کنید تا بتونید به دفعات زیادی از اونها استفاده کنید. مثلا اگه یکی گزینه ی ساعت رو انتخاب بکنه و بعدش صفحه ساعت باز بشه ، باید قبلش کل صفحه پاک بشه و بعد ساعت رسم بشه ، همینطور بعد از برگشتن به منو کل صفحه باید پاک بشه و دوباره منو ها رسم بشن .

در کل اگه یکم با کتابخونه lcd گرافیکی آشنا بشید و چندتا شکل و نوشته رو رسم کنید ، همه چیز دستتون میاد.

hosseinzamani13677
یک شنبه 18 اردیبهشت 1390, 19:37 عصر
سلام اگر از برنامه الکترو برای program کردن آی سی استفاده کنی مشکلت حل می شه.
بازم اگه مشکلی داشتی به انجمن Roboforum.ir یه سری بزن انشاالله مشکلت برطرف میشه.

ho_612
شنبه 22 مرداد 1390, 11:43 صبح
مشکل با پورت سریال
آقا سلام.
یه چند خط برنامه از اینور و اونور پیدا کردم تونستم از میکرو به پی سی دیتا بفرستم مشکلی نیست حالا می خوام از پی سی به میکرو بفرستم البته به طور همزمان . کجای برنامه و به چه صورتی باید کار کنم.مرثی
البته لازمه که بگم ارسال و دریافت دیتا از طریق وی بی دات نت هست.
برنامه به صورت زیر هست:

$regfile = "m32def.dat"
$crystal = 16000000
$lib "lcd4.lbx"
$baud = 19200

Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Postb.7
Config Lcd = 16 * 2
Config Kbd = Portc
Dim Row As Byte , Column As Byte , Key As Byte , Sendkey As String * 10 , Convert As Byte
Column = 1 : Row = 1

Main:
Key = Getkbd()
Locate Row , Column
Lcd Key
Sendkey = Sendkey + Str(key)
Waitms 500
Incr Column
End

farzadsw
شنبه 22 مرداد 1390, 21:33 عصر
1.باید برنامتون داخل یه حلقه بینهایت باشه ، که تو کد شما برنامه 1 بار اجرا میشه و تموم میشه.
2. برای خوندن اطلاعات از کامپیوتر باید از دستور های WAITKEY و INKEY و امثالهم استفاده کنید تا کاراکتر ورودی رو بخونید
3. برای ارسال از دستور print استفاده میشه .
برنامه رو تا یه جایی بنویسید ، بعد اگه مشکلی بود سوالتون رو بپرسید.

jblaox
چهارشنبه 23 شهریور 1390, 21:59 عصر
مشکل با پورت سریال


آقا سلام.
یه چند خط برنامه از اینور و اونور پیدا کردم تونستم از میکرو به پی سی دیتا بفرستم مشکلی نیست حالا می خوام از پی سی به میکرو بفرستم البته به طور همزمان . کجای برنامه و به چه صورتی باید کار کنم.مرثی
البته لازمه که بگم ارسال و دریافت دیتا از طریق وی بی دات نت هست.
برنامه به صورت زیر هست:

$regfile = "m32def.dat"
$crystal = 16000000
$lib "lcd4.lbx"
$baud = 19200

Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Postb.7
Config Lcd = 16 * 2
Config Kbd = Portc
Dim Row As Byte , Column As Byte , Key As Byte , Sendkey As String * 10 , Convert As Byte
Column = 1 : Row = 1

Main:
Key = Getkbd()
Locate Row , Column
Lcd Key
Sendkey = Sendkey + Str(key)
Waitms 500
Incr Column
End

سلام

کد های خودتون همواره در تگ مربوطه قرار بدهید تا ...

اینجا را نگاه کنید : http://ouo.ir/serial-port-monitor.html ، فایل دانلود کنید در خود کد ها ، کلی کامنت آموزشی قرار دادم .

احتمالا مشکل شما حل میشود چون C# با Vb زیاد فرق نداره تازه مبدل هم زیاد وجود داره ...

سوال داشتی دقیق بپرس جواب بدم ...

موفق باشید

erfan_f65
پنج شنبه 24 شهریور 1390, 12:42 عصر
سلام من می خوام با آی سی های avr کار کنم و تا حالا برنامه نویسی نکردم.(فقط متلب کار کردم!).می خوام یه کتاب یا یه مرجع بهم معرفی کنید تا این کار رو یاد بگیرم.یکی میگه با بسکام یکی میگه با کدویژن.بالاخره من نفهمیدم چی به چیه.لطفا راهنمایی کنید.ممنون

farzadsw
جمعه 25 شهریور 1390, 01:03 صبح
کتاب الکترونیکی تو این تاپیک (http://barnamenevis.org/showthread.php?166278-%DA%86%D9%86%D8%AF-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%85%DB%8C%DA%A9%D8%B1%D9%88-AVR-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C)معرفی شده ، کتاب چاپی هم خیلی زیاده ، من هم هیچکدومش رو نخوندم (غیر از کتاب علی کاهه) برای همین نمی تونم بگم کدوم بهتره.
برای شروع بهتره میکرو و وسایل مربوطه اش رو تهیه کنید و بعد قدم به قدم یاد بگیرید . تو این تاپیک (http://barnamenevis.org/showthread.php?270411-%D8%B4%D8%B2%D9%88%D8%B9-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D9%85%DB%8C%DA%A9%D8%B1%D9%88-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1-%D9%87%D8%A7-(-AVR-PIC-...)) مقدمات کار گفته شده .
در مورد زبان بهتره با C کار کنید (کامپایلر هم سلیقه ای هست) ولی اگه فقط میخواید کارتون راه بیوفته و بعدا زیاد با میکرو سر و کار ندارید ، از بسکام (بیسیک) هم میتونید استفاده کنید.

sam166
سه شنبه 29 شهریور 1390, 00:52 صبح
میشه در مورد ساخت منو های تو در تو در کدویژن توضیح بدبد و مثال بزنید

raminrayat
چهارشنبه 13 مهر 1390, 21:49 عصر
سلام.آقا ما جواب نخواستیم. این توضیحاتو خودم بلدم. بابا مثلا مهندس کامپیوترم.من برنامه را می خواستم که انگار شما فقط دارید منو می پیچونید.تازه امروز بالاخره جواب گرفتم . خداحافظ


چه طرز حرف زدنه .واقعا بعضی ها ادم رو به تعجب وا میدارن که اینا واقعا 12 13 سال درس خوندن ودانشجو هستن.از همون اول که استاد رو با:شیطان: نشون داد مشخص بود ادم با ادبی نیست
خیلی خیلی بی ادبانه حرف زدید.
من از شما دوست عزیز معذرت خواهی میکنم عوض این طرف
وقتی مفت مفت مدرک بدن همینه وضعمون دیگه

121314
یک شنبه 13 آذر 1390, 09:29 صبح
سلام من درباره Avr ,Codvision آشنایی مقدماتی دارم الان به یه پروژه معمولی به همراه Pcb اون نیاز دارم. کمکم کنید

Arcsinos
چهارشنبه 23 آذر 1390, 12:12 عصر
سلامُ علیکم

یه سوال داشتم : میخواستم ببینم آیا میشود با Java برای AVR برنامه نوشت یا نه فقط C جواب میدهد ؟

خدانگهدارتان باشد

farzadsw
پنج شنبه 24 آذر 1390, 13:16 عصر
زبان java قابلیت تبدیل شدن به کد ماشین رو نداره و به همین دلیل هم نمیشه ازش تو برنامه نویسی میکروکنترلر ها استفاده کرد . به غیر از C ، بیسیک و پاسکال هم تو برنامه نویسی میکروکنترلرها استفاده میشن.

anasha
یک شنبه 07 اسفند 1390, 12:56 عصر
سلام به همگی
دوستان من به پایه صفر پورت B یک کلید وصل کردم و میخوام که هر موقع کلید را فشار دادم LED روشن بشه و با رها کردن کلید خاموش بشه باید از تابع خاصی برای این برنامه استفاده کنم ؟؟
ضمنا برنامه را در Codevision باید بنویسم
لطفا منو راهنمایی کنید

farzadsw
دوشنبه 08 اسفند 1390, 17:33 عصر
کافیه مقدار رجیستر PINB رو بخونید ، با توجه وضعیتش (مقدار رجیستر) میتونید بفهمید کلید فشار داده شده یا نه . در ضمن قبل از استفاده باید پایه مورد نظر رو به صورت ورودی و با پول آپ داخلی تنظیم کنید.

asgharjoon2
سه شنبه 23 اسفند 1390, 12:30 عصر
اقا اینجا کسی هست ما یه پروژه avr بخوایم واسمون انجام بده ؟

sharin
سه شنبه 23 اسفند 1390, 13:25 عصر
سبك فروم ، معمولا اينجوريه كه يه سري مشكلاتشون رو مطرح مي كنن و كسايي كه بلد هستن ، جواب مي دن.
شما هم شروع كن به كار كردن روي پروژه و هر جا كه مشكل داشتي بپرس تا كسايي كه مي تونن كمك كنن .

موفق باشيد.

samanta3000
چهارشنبه 13 اردیبهشت 1391, 19:23 عصر
با سلام خدمت دوستان عزیز
من می خوام یه برنامه با codevision بنویسم که یه متنی را روی LED Matrix به صورت رواننمایش بده
با میکرو atmega16
به صورت ثابت راحته ولی نمیدونم چجوری روانش کنم

خیلی هم تو زمینه AVR مبتدی هستم ولی باید این مشکلو حل کنم
خواهش می کنم کمکم کنید

mg_mahyar
دوشنبه 18 اردیبهشت 1391, 00:26 صبح
سلام
من یک سری کد دارم نمیدونم معنیش چیه لطفا بهم بگید:

ACSR=0XC0;
ADCSRA=0X87;
lcd_init(16);

ADCSRA=0X40;
Return ADCW;

اون دو خط یعنی چی و چرا عدد 16 پاس شده؟

farzadsw
دوشنبه 18 اردیبهشت 1391, 20:02 عصر
ACSR و ADCSRA و ADCW رجیستر های میکرو (بخش ADC و مقایسه کننده آنالوگ هستند) . اینکه دقیقا چکاری میکنند رو باید از روی کل برنامه و اطلاعات داخل دیتا شیت میکرو خودتون ببینید .
lcd_init هم احتمالا مربوط به راه اندازی اولیه lcd کاراکتری هست و داره مشخص میکنه که lcd چند خطی هست(16 خطی) . بازم برای جزییات باید خودتون کد کامل و دیتا شیت میکرو (بخش تعریف رجیستر های مربوطه) رو ببینید.

small_rz
جمعه 05 خرداد 1391, 17:24 عصر
تا حالا کسی اینحا با aubtm 20 کار کرده؟ با میکرو داده بفرسته با لپ تاپ دریافت کنه؟ موقع وصل کردن به میکرو txd ماژول و به txd میکرو وصل می کنیم و rxd ماژول و به زمین؟ اتصال بقیه ی پایه های ماژول به چه صورته؟ ممنون میشم کسی راهنمایی کنه؟

kinj3927
جمعه 26 خرداد 1391, 15:26 عصر
سلام دوستان
این برنامه منه
http://uploadkon.ir/uploads/27678403407086ef1a6157f27f56b663.zip
وقتی به ال سی دی میزنم یه چیزای در هم نشون میده ولی اصلا معلوم نیست چیه http://www.eca.ir/forum2/Smileys/phpbb/icon_confused.gif
یه چیزی من این برنامه رو از یکی از دوستان گرفتم .فایل فونت رو نداده بود خودم یه 8*8 از جایه دیگه گذاشتم تو فولدر ,این کار میتونه باعث مشکل شه؟
میخواستم ازتون خواهش کنم یه نگاهی به برنامه بندازید
برنامه gps هستش http://www.eca.ir/forum2/Smileys/phpbb/f.gif http://www.eca.ir/forum2/Smileys/phpbb/f.gif http://www.eca.ir/forum2/Smileys/phpbb/f.gif
خیلی خیلی ممنون

na_kh_2008
دوشنبه 26 تیر 1391, 08:27 صبح
با سلام به اساتید گرامی خودم. چند وقتیه به دنبال چگونگی ارتباط میکرو AVR به جی اس ام مودم ویوکام هستم.این مودم پورت کام هم داره.اگر کسی از نظر چگونگی این ارتباط و توضیح ویا عکسی که بتوان پایه های میکرو را به ما نشان بده و منو ارشاد کنه ممنون میشم. باز هم از همه تشکر میکنم.

poya121
پنج شنبه 26 مرداد 1391, 22:01 عصر
سلام.من دارم يك ربات مين ياب درست ميكنم،كه از سنسور SRF05 براي اون استفاده كردم.حالا براي برنامه نويسي اين سنسور گير كردم!در ضمن ميخوام برنامه به زبان سي باشه!كسي ميتونه توبرنامه نويسيش بهم كمك كنه؟اگه نمونه كد هم داريد برام خواهشن بفرستيد.فقط دوستان من خيلي خيلي عجله دارم!!خواهش ميكنم يكي زود جوابمو بده!!ممنون.

mhmmdshirazi
یک شنبه 12 شهریور 1391, 14:39 عصر
تا حالا کسی اینحا با aubtm 20 کار کرده؟ با میکرو داده بفرسته با لپ تاپ دریافت کنه؟ موقع وصل کردن به میکرو txd ماژول و به txd میکرو وصل می کنیم و rxd ماژول و به زمین؟ اتصال بقیه ی پایه های ماژول به چه صورته؟ ممنون میشم کسی راهنمایی کنه؟

توصیه میکنم از ic های ftdi مثل ft232rl استفاده کنید خیلی راحت تره و اگه کمک خواستی من باهاش کار کردم!

farshadfoes
جمعه 31 شهریور 1391, 10:01 صبح
سلام
من تازه کار با ای وی ار رو شروع کردم
به ما یه پروژه دادن که خودم هرکاری کردم نتونستم راش بندازم همه ی کاراشو بلدم فقط تو راه اندازی 7seg-mpx2-ca مشکل دارم
تو نصبش تو پروتئوس مشکل ندارم
اگه می شه کد های کد ویژنشو بگید مشکلمم اینه که نمی تونیم یه عدد دو رقمی توش نشون بدم مثلا 14
مرسی

Abbas Amiri
جمعه 14 مهر 1391, 16:38 عصر
باسلام ، این تالار واقعا مهجور مانده وبه همین دلیل کسی هم دیگر سوالی نمی پرسد من جمله بنده که دیر با آن آشنا شدم . متاسفانه کاربر محترم farzadsw که جور بسیاری از مشکلات مطرح شده را کشیده اند هم مشغول پروژه ها و وبلاگ خودشان هستند .
آقای فرشاد خان برای این جور مطالب با یک جستجو در وب ، موارد زیادی یافت میشوند که نیازمند تغییرات اندک هستند . منجمله کدهای زیر که برای کدویژن تغییراتی داده شده است .



#define SEVEN_SEGMENT_SHIFT_DDR DDRB
#define SEVEN_SEGMENT_SHIFT_PORT PORTB
#define SEVEN_SEGMENT_PORT PORTD
#define SEVEN_SEGMENT_DDR DDRD
#define SEVEN_SEGMENT_DIGITS 2 // تعداد رقم

volatile unsigned char digits[SEVEN_SEGMENT_DIGITS];

void SevenSegment(unsigned char n)
{
/*
This function writes a digits given by n to the display
*/
if(n<10)
{
switch (n)
{
case 0:
SEVEN_SEGMENT_PORT=0b00000011;
break;
case 1:
SEVEN_SEGMENT_PORT=0b10011111;
break;
case 2:
SEVEN_SEGMENT_PORT=0b00100101;
break;
case 3:
SEVEN_SEGMENT_PORT=0b00001101;
break;
case 4:
SEVEN_SEGMENT_PORT=0b10011001;
break;
case 5:
SEVEN_SEGMENT_PORT=0b01001001;
break;
case 6:
SEVEN_SEGMENT_PORT=0b01000001;
break;
case 7:
SEVEN_SEGMENT_PORT=0b00011111;
break;
case 8:
SEVEN_SEGMENT_PORT=0b00000001;
break;
case 9:
SEVEN_SEGMENT_PORT=0b00001001;
break;
}
}
else
{
//This symbol on display tells that n was greater than 9
//so display can't handle it

SEVEN_SEGMENT_PORT=0b11111101;
}
}

void Print(unsigned int num)
{
/*
This function breaks apart a given integer into separete digits
and writes them to the display array i.e. digits[]
*/
unsigned char i=0;
unsigned char j;
unsigned int max_num=1;
for (j=0;j<SEVEN_SEGMENT_DIGITS;j++)
max_num=max_num*10;
if(num>(max_num-1)) return;

while(num)
{
digits[i]=num%10;
i++;

num=num/10;
}
for(j=i;j<SEVEN_SEGMENT_DIGITS;j++) digits[j]=0;
}

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
static unsigned char i=0;
//TCNT0=0xD9;

if (i<=SEVEN_SEGMENT_DIGITS) i=0;
SEVEN_SEGMENT_SHIFT_PORT=(1<<i);
i++;
SevenSegment(digits[i]);
}


در هرجای برنامه که خواستید مقدار سون سگمنتها را تغییر دهید از تابع print استفاده کنید:

print(anyVariable);
در ایجا ازتایمر0 برای ریفرش کردن سگمنتها استفاده شده است . شما برحسب نیاز خود آنرا تغییر دهید.
با تغییر در خطهای اول تا پنجم پورت هارا مطابق پروژه خود تنظیم کنید ودر تابع ()main مقادیر اولیه به را به آنها بدهید


SEVEN_SEGMENT_SHIFT_DDR=(1<<SEVEN_SEGMENT_DIGITS); // =~(1<<SEVEN_SEGMENT_DIGITS); اگر درايور سگمنتها اينورتر است
SEVEN_SEGMENT_SHIFT_PORT=0x00;
SEVEN_SEGMENT_PORT=0xFF;
SEVEN_SEGMENT_DDR=0xFF;

رسول21
شنبه 29 مهر 1391, 17:09 عصر
با سلام من یه برنامه فلاشر 8 کاناله رقص نور دارم به زبان سی هست اگه اشتباه نکنمکه افکتهای متععددی رو اجرا میکنه میخاستم ببینم کسی میتونه تعداد کانالهاشو ویرایش کنه یعنی از 8 کانال به 10 کانال و 4 کانال و 5 و6 و7 کانال تغییر پیداکنه البته با همین رقص نورها فعلا 10 کاناله رو لازم دارم اگه سخته این دو تا 4 و 6 کاناله رو هم کارم راه میوفته اینم لینک برنامه (http://wdl.persiangig.com/pages/download/?dl=http://lednama.persiangig.com/flasher_m8_x8.zip)

SEZAR.CO
یک شنبه 03 دی 1391, 18:05 عصر
با عرض سلام
من می خوام برای اولیت بار برم یه میکرو avr از نوع مگا بخرم
به نظر شما تو تهران کجا برم
رنج قیمتا چقدره
با تشکر

hamid-nic
دوشنبه 04 دی 1391, 00:01 صبح
با عرض سلام
من می خوام برای اولیت بار برم یه میکرو avr از نوع مگا بخرم
به نظر شما تو تهران کجا برم
رنج قیمتا چقدره
با تشکر
تهران خیابان جمهوری پاساژ امجد می تونی بری یا اینکه همون حوالی مغازه و پاساژ تو زمینه برق و الکترونیک زیاد هست قیمت هم از 6-7 هزار به بالا متفاوت است . بستگی به مدلش داره .

farzad_d
سه شنبه 26 دی 1391, 18:09 عصر
با عرض سلام
من می خوام 1) از visual c++ برای برنامه نویسی avr استفاده کنم چجوری امکان پذیر هست؟ 2) قصد دارم از یک دوربین برای پردازش تصویر توسط avr استفاده کنم چجوری باید دوربین رو به avr وصل کنم و فریم ها رو از اون بگیرم؟ برای پردازش تصویرش آیا می تونم از کتابخونه opencv استفاده کنم ؟ 3) برای این کار ها از کدوم سری از avr ها می تونم استفاده کنم؟

SEZAR.CO
سه شنبه 26 دی 1391, 20:21 عصر
دوست عزیز بهتره سوالات توی یه تاپیک دیگه بپرسی
اونجا بیشتر می بینند و شاید بتونند بهت جواب دهند

mohammadali1375
سه شنبه 26 دی 1391, 22:43 عصر
1) با visuall c++‌نمیشه. اگه میخاید C++ باشه باید با avr studio‌بنویسید که البته همون ide ویژال سی پلاس پلاس رو داره. 2)پردازش تصویر خودش یه مبحث جداس . بهتره بدون میکرو اول کار کنید بعد . برای پردازش تصویر خود میکرو احتمالا کم میاره. بهتره یه کامپیوتر این وسط باشه که کار پردازش رو انجام بده 3) بستگی به کارتون داره و این که میخایند چجوری این کارارو انجام بدید

farzad_d
چهارشنبه 27 دی 1391, 20:44 عصر
من از visul c++ به این دلیل می خوام استفاده کنم چون از کتابخونه opencv هم می شه اونجا استفاده کرد حالا اگه از این مو ضوع بگذریم می خوام بدون که کتابخونه opencv تو میکروکنترلر avr جواب می ده یا نه بعدش حتی اگه من از avr 32 بیتی هم استفاده کنم به نظر شما کم می یاره؟؟؟ من نمی خوام از کامپیوتر این وسط استفاده کنم پردازش تصویر تو کامپیوتر رو با کتابخونه opencv رو کار کردم

mohammadali1375
چهارشنبه 27 دی 1391, 23:08 عصر
من از visul C++‎ به این دلیل می خوام استفاده کنم چون از کتابخونه opencv هم می شه اونجا استفاده کرد حالا اگه از این مو ضوع بگذریم می خوام بدون که کتابخونه opencv تو میکروکنترلر avr جواب می ده یا نه بعدش حتی اگه من از avr 32 بیتی هم استفاده کنم به نظر شما کم می یاره؟؟؟ من نمی خوام از کامپیوتر این وسط استفاده کنم پردازش تصویر تو کامپیوتر رو با کتابخونه opencv رو کار کردم
والا من فکر نکنم پردازش تصویر با یدونه میکرو و یه دوربین شدنی باشه :متفکر: ( اینا نظرات منه ها. شاید درست نباشه ) . استفاده از opencv هم کلا تو میکرو 99.99٪ نشدنیه ( والا تو این دنیا نمیشه چیزی رو 100٪ گفت :لبخند: ) . الان دیگه پردازش تصویر رو با کینکتی چیزی انجام میدند . که اونم میکرو خالی نیست. خلاصه من اطلاعاتم در مورد اینکاری که شما میخواید بکنید در همین حد بود. فکر نکنم با یه دوربین و یه میکرو بشه کاری کرد. :متفکر: ( مثلا فکر نکنم یه برنامه پردازش تصویر بتونه تو atmega 32 جا بشه )

farzadsw
پنج شنبه 28 دی 1391, 00:06 صبح
opencv رو نمی تونید با AVR یا avr32 استفاده کنید. البته اگر بتونید توابعش رو متناسب با پلتفورمتون پورت کنید،قابل استفاده هست ولی این کار خیلی سخت و زمانگیر است. به جز پلتفورم x86 و ARM های جدید (cortex-a8,cortex-a9) به طور رسمی opencv برای پلتفورم دیگه ای پورت نشده و قابل استفاده نیست.
البته 2-3 تا پروژه تو اینترنت هست که از AVR برای پردازش تصویر ساده (تشخیص تعقیب رنگ) استفاده کرده. اگر بگردید میتونید پیدا کنید.

mwpy20
سه شنبه 06 فروردین 1392, 10:54 صبح
سلام سال نو مبارک چه طور میتونم با ات مگا32 یه برنام برایه 8 خروجی بنویسم به این شکل که در هرثانیه یک پالس بفرسته و یک ال ای دی رو روشن کنه بیزحمت فقط کد

aliblue
چهارشنبه 07 فروردین 1392, 12:01 عصر
شما به این انجمن برو حتما به جواب میرسی.
http://www.eca.ir/forum2/index.php

taghdir2009
شنبه 31 فروردین 1392, 00:09 صبح
شمارنده 3 رقمی با کلید و lcd متنی
با سلام .
من برای اولین بار تو کدویژن برنامه نوشتم و تو پروتئوس طراحی کردم .اما به یه مشکل بر می خورم برنامم اینه : باید بازدن کلید از 0 تا 999 بشماره اگه کلید قطع شد دوباره 0 بشه .
برنامه تو کد ویزن اروری نمیده اما تو پروتئوس وقتی کلید و میزنی هیچی نشون نمیده یا چند تا حروف واعدادو علائم بی ربط نشون میده ممنون میشم کمکم کنید.

اینم برنامه ای که نوشتم:
http://up.iran30t.com/uploads/1366404276.zip

Abbas Amiri
شنبه 31 فروردین 1392, 00:50 صبح
شمارنده 3 رقمی با کلید و lcd متنی
با سلام .
من برای اولین بار تو کدویژن برنامه نوشتم و تو پروتئوس طراحی کردم .اما به یه مشکل بر می خورم برنامم اینه : باید بازدن کلید از 0 تا 999 بشماره اگه کلید قطع شد دوباره 0 بشه .
برنامه تو کد ویزن اروری نمیده اما تو پروتئوس وقتی کلید و میزنی هیچی نشون نمیده یا چند تا حروف واعدادو علائم بی ربط نشون میده ممنون میشم کمکم کنید.

اینم برنامه ای که نوشتم:
http://up.iran30t.com/uploads/1366404276.zip

سلام
کد زیر رو تصحیح کن :


sprintf(buffer,"I=%d",i);

taghdir2009
یک شنبه 01 اردیبهشت 1392, 09:57 صبح
با سلام به همه دوستان.
بیزحمت تو این برنامه راهنماییم کنید.
نمایش یک عدد 4 رقمی بروی سون سگمنت مالتی پلکسری( عددها با کلید وارد شود.)
من این برنامه رو نوشتم اما نمایشگر چرت و پرت نشون میده و کلید ها اصلا" کار نمی کنند.

ممنون میشم راهنماییم کنید.

اینم برنامم:
http://up.iran30t.com/uploads/1366553988.zip

Abbas Amiri
یک شنبه 01 اردیبهشت 1392, 20:32 عصر
سلام
مقدارمنسوب به پورت A را متمم 2 کنید


PORTA=~part1;

taghdir2009
یک شنبه 01 اردیبهشت 1392, 23:34 عصر
سلام
مقدارمنسوب به پورت A را متمم 2 کنید


PORTA=~part1;

سلام ممنون اما کد رو تصحیح کردم جواب نداد!!!

Abbas Amiri
دوشنبه 02 اردیبهشت 1392, 22:54 عصر
کدهای تصحیح شده و تصویر درحال اجرا


void main(void)
{
unsigned char number;
PORTA=0xff;
DDRA=0xFF;
PORTB=0xFF;
DDRB=0x00;
PORTC=0x0F;
DDRC=0x0F;
while (1)
{
number=PINB;
hex_to_seg(number);
PORTC=0b00001110;
PORTA=~part1;
delay_ms(5);
PORTC=0b00001101;
PORTA=~part2;
delay_ms(5);
PORTC=0b00001011;
PORTA=~part3;
delay_ms(5);
PORTC=0b00000111;
PORTA=~part4;
delay_ms(5);
}
}

babaha
جمعه 03 خرداد 1392, 20:58 عصر
سلام من واسه یک پروژه از یک lcd 128 64 استفاده کردم ولی فونتش خیکی بزرگه . آیا میشه کوچیکش کرد ؟ دستورش تو codevision چیه؟

SEZAR.CO
دوشنبه 13 خرداد 1392, 20:32 عصر
دوسن خوبم بهتره سوالات تو تاپیک ها معمولی بپرسی

Ali.Mor
یک شنبه 02 تیر 1392, 14:40 عصر
سلام دوست عزیز
میخوام به زبان اسمبلی با atmege32 هرکلید کی پد 4*4 که زده شد روی LCD نمایش داده بشه کلید با پورت سریال به کامپیوتر فرستاده بشه؟
میتونی کمکم کنی؟ :(

nanosi
دوشنبه 28 مرداد 1392, 14:02 عصر
سلام.آقا ما جواب نخواستیم. این توضیحاتو خودم بلدم. بابا مثلا مهندس کامپیوترم.من برنامه را می خواستم که انگار شما فقط دارید منو می پیچونید.تازه امروز بالاخره جواب گرفتم . خداحافظ

اين همه طرف جوابتو داد. چه بيشعور...

s699fx_bpr
شنبه 11 آبان 1392, 00:13 صبح
سلام دوستان خوشحالم که یه پست avr دیدم . من ic sim900 رو با avr راه اناختم همچیش Ok ]ست خالا میخوام کدهایی رو که از sim 900 با usart میگیرم رو داخل یه ارایه بریزم و بعد تحلیل کنم . مشکل اینجاست که کد ها طولشون معلوم نیست بعضیا 3 10 یا 40 تان اما عموما بیشتر از 100 نمیشن . ولی مشکلم اینجاست که نمیدونم با چه دستوری میتونم بگیرمشون ؟ scan - gets- fget رو امتحان کردم همه تعداد میخوان و واییسن تا اخرین کاراکتر هم بیاد ! چجوری یه رسته ای بگیرم که تعدادش مشخص نیست !؟ راستی اسپیس هم داره :(

xiao123
سه شنبه 12 آذر 1392, 15:13 عصر
سلام دوستان
من میخوام برف پاک کن خودکار بسازم،که با بارش بارون شدت اون رو تشخیص بده و برف پاک کن به همون اندازه سرعت داشته باشه(2 یا 3 level) .
حالا من برای تشخیص شدت بارون میخوام از سنسور فرستنده گیرنده مادون قرمز (به شکل زیر) استفاده کنم.که اگه شیشه خشک باشه تمام امواج رو برمیگردونه و درصورت خیس بودن ،به نسبت میزان خیس بودن برگشت امواج هم کمتر میشه ، خلاصه من برنامه ای (به زبان c ) برای راه اندازی این سنسور میخواستم .
در هر حدی که تونستید راهنمایی کنین ممنون میشم.

http://upload.tehran98.com/upme/uploads/28fc25a95933f81f1.png

javady_joon
شنبه 05 مهر 1393, 00:54 صبح
سلام
من با کد ویژن یه برنامه چراغ چشمک زن نوشتم
و هرعددی رو بریا delay_ms میدم
اصلا برای delay اهمیتی قائل نیست و باز همون آهنگ خاموش روشن شدن خود رو دنبال میکنه
ممنون میشم کمک کنید اینم سورس

#include <mega16.h>#include <delay.h>


void main ()
{
PORTA=0x00;
DDRA=0xFF;
for(;;)
{
if(PORTA.0==0)
{
PORTA.1=1;
delay_ms(5);
}
if(PORTA.1==1)
{
PORTA.0=0;
}
if(PORTA.1==0)
{
PORTA.0=1;
delay_ms (5);
}
}
}

مهدی کرامتی
شنبه 03 آبان 1393, 01:14 صبح
این کد رو قبل از تابع main اضافه کن:

#ifndef F_CPU
#define F_CPU 8000000UL
#endif
با دستکاری کردن اون عدد 8000000UL به مواردی مانند 1000000UL یا 4000000UL می تونی به مدت وقفه مورد نظرت در کد دست پیدا کنی.

amirhsg
شنبه 11 بهمن 1393, 16:57 عصر
سلام.من میخوام یه پیغام رابرا2ثانیه روی سگمنت4تایی نمایش بدم.حرف اول پیغام درست نمایش داده میشه ولی 3حرف بعدناخوانا اند:گریه:.بعداز2ثانیه سگمنت خاموش میشه ولی بقیه برنامه باتغییروضعیت دیپ سوئیچ اجرانمیشه:گریه:.خواهشااگه میشه کمک کنیدتامشکل برنامه راحلش کنم.
این حلقه forهستش برا2ثانیه اول:

128065

واینم قسمتی ازبقیه برنامه:
128067

128066

amir_mhdi
سه شنبه 14 بهمن 1393, 10:43 صبح
امیر هوشنگ خان ، اینجوری که نمیشه . باید کدت رو بزاری . کد تیکه تیکه فایده نداره.
موفق باشی.

amirhsg
پنج شنبه 16 بهمن 1393, 11:37 صبح
سلام .این هم کدکامل.فقط آپلودکه شدبه هم ریخت میی بخشید.اگه میتونین کمک یاراهنمایی کنین که مشکلش راپیداکنم.خیلی ممنون:
#include <mega16.h>
#include <delay.h>
unsigned int m;


void main(void)
{
DDRA=(1<<DDA7) | (1<<DDA6) | (1<<DDA5) | (1<<DDA4) | (1<<DDA3) | (1<<DDA2) | (1<<DDA1) | (1<<DDA0);
PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
for(m=0;m<=200;m++){PORTB=0X0E;
PORTA=0X77;
delay_ms(4);
PORTB=0X0D;
PORTA=0X5E;
delay_ms(4);
PORTB=0X0B;
PORTA=0X54;
delay_ms(6);
PORTB=0X07;
PORTA=0X6D;
delay_ms(6);}
PORTB=0X0F;
while (1)
{
switch(PINC){case 1:
PORTB=0X0E;
PORTA=0X6D;
delay_ms(4);
PORTB=0X0D;
PORTA=0X29;
delay_ms(4);
PORTB=0X0B;
PORTA=0X77;
delay_ms(1);
PORTB=0X07;
PORTA=0X38;
break;
case 2:
PORTB=0X0E;
PORTA=0X77;
delay_ms(1);
PORTB=0X0D;
PORTA=0X3E;
delay_ms(1);
PORTB=0X0B;
PORTA=0X78;
delay_ms(1);
PORTB=0X07;
PORTA=0X5C;
break;
case 3:
PORTB=0X0E;
PORTA=0X55;
delay_ms(1);
PORTB=0X0D;
PORTA=0X5F;
delay_ms(1);
PORTB=0X0B;
PORTA=0X54;
delay_ms(1);
PORTB=0X07;
PORTA=0X1C;
break;
case 4:
PORTB=0X0E;
PORTA=0X76;
delay_ms(1);
PORTB=0X0D;
PORTA=0X10;
delay_ms(1);
PORTB=0X0B;
PORTA=0X79;
delay_ms(1);
PORTB=0X07;
PORTA=0X50;
break;
case 5:
PORTB=0X0E;
PORTA=0X5C;
delay_ms(1);
PORTB=0X0D;
PORTA=0X54;
delay_ms(1);
PORTB=0X0B;
PORTA=0X5E;
delay_ms(1);
PORTB=0X07;
PORTA=0X76;
break;
case 6:
PORTB=0X0E;
PORTA=0X76;
delay_ms(1);
PORTB=0X0D;
PORTA=0X6E;
delay_ms(1);
PORTB=0X0B;
PORTA=0X76;
delay_ms(1);
PORTB=0X07;
PORTA=0X10;
break;
case 7:
PORTB=0X0E;
PORTA=0X5C;
delay_ms(1);
PORTB=0X0D;
PORTA=0X71;
delay_ms(1);
PORTB=0X0B;
PORTA=0X5E;
delay_ms(1);
PORTB=0X07;
PORTA=0X76;
break;
case 8:
PORTB=0X0E;
PORTA=0X38;
delay_ms(1);
PORTB=0X0D;
PORTA=0X5C;
delay_ms(1);
PORTB=0X0B;
PORTA=0X79;
delay_ms(1);
PORTB=0X07;
PORTA=0X50;
break;
case 9:
PORTB=0X0E;
PORTA=0X6C;
delay_ms(1);
PORTB=0X0D;
PORTA=0X54;
delay_ms(1);
PORTB=0X0B;
PORTA=0X5E;
delay_ms(1);
PORTB=0X07;
PORTA=0X38;
break;
case 10:
PORTB=0X0E;
PORTA=0X76;
delay_ms(1);
PORTB=0X0D;
PORTA=0X6E;
delay_ms(1);
PORTB=0X0B;
PORTA=0X38;
delay_ms(1);
PORTB=0X07;
PORTA=0X5C;
break;
case 11:
PORTB=0X0E;
PORTA=0X5C;
delay_ms(1);
PORTB=0X0D;
PORTA=0X71;
delay_ms(1);
PORTB=0X0B;
PORTA=0X5E;
delay_ms(1);
PORTB=0X07;
PORTA=0X38;
break;
case 12:
PORTB=0X0E;
PORTA=0X76;
delay_ms(1);
PORTB=0X0D;
PORTA=0X10;
delay_ms(1);
PORTB=0X0B;
PORTA=0X77;
delay_ms(1);
PORTB=0X07;
PORTA=0X38;
break;
case 13:
PORTB=0X0E;
PORTA=0X38;
delay_ms(1);
PORTB=0X0D;
PORTA=0X5C;
delay_ms(1);
PORTB=0X0B;
PORTA=0X77;
delay_ms(1);
PORTB=0X07;
PORTA=0X38;
break;
case 14:
PORTB=0X0E;
PORTA=0X76;
delay_ms(1);
PORTB=0X0D;
PORTA=0X6E;
delay_ms(1);
PORTB=0X0B;
PORTA=0X77;
delay_ms(1);
PORTB=0X07;
PORTA=0X38;
break;
case 15:
PORTB=0X0E;
PORTA=0X73;
delay_ms(1);
PORTB=0X0D;
PORTA=0X77;
delay_ms(1);
PORTB=0X0B;
PORTA=0X6D;
delay_ms(1);
PORTB=0X07;
PORTA=0X6D;
break;
case 16:
PORTB=0X0D;
PORTA=0X5C;
delay_ms(1);
PORTB=0X0B;
PORTA=0X50;
break;}
// Place your code here

}
}

amir_mhdi
پنج شنبه 16 بهمن 1393, 13:23 عصر
احتمالا کلیدهات تو وضعیتی هستند که عدد حاصلش بزرگتر از 16 میشه. شما بیاید و بجای"case 16:"بنویسید : "default:".
با اینکار شما به میکرو میگید که اگر غیر از حالتهایی که من گفتم بود بیا اینکار رو انجام بده.
موفق باشید.

amirhsg
جمعه 17 بهمن 1393, 17:16 عصر
احتمالا کلیدهات تو وضعیتی هستند که عدد حاصلش بزرگتر از 16 میشه. شما بیاید و بجای"case 16:"بنویسید : "default:".
با اینکار شما به میکرو میگید که اگر غیر از حالتهایی که من گفتم بود بیا اینکار رو انجام بده.
موفق باشید.
باسلام.کاری که گفته بودید انجام دادم.همجنان مانندقبل موقع راه اندازی حرف اول پیغام درست نمایش داده میشه ولی 3حرف بعداشتباه نمایش داده میشند.بعداز2ثانیه سون سگمنت خاموش میشه ولی بقیه برنامه باتغییروضعیت دیپ سوئیچ اجرانمیشه ومابقی پیام هاهم نمایش داده نمی شوند.
128234

amir_mhdi
شنبه 18 بهمن 1393, 08:07 صبح
شما یه زحمتی بکش، فایل پروتئوس و کدت رو بفرست.

amirhsg
شنبه 18 بهمن 1393, 13:24 عصر
چشم فایل هاراآپلودمی کنم.

amirhsg
یک شنبه 19 بهمن 1393, 06:53 صبح
سلام امیرمهدی خان.این هم لینک فایل های کدوپروتئوس که گفته بودیدآپلودکنم.
http://uplod.ir/b00f8kcxoo39/P1.prj.htm
http://uplod.ir/gztvjjk41xlh/p1.DSN.htm

amir_mhdi
یک شنبه 19 بهمن 1393, 07:15 صبح
فایل پروژه کامل نیست. باید کل فولدر رو zip کنی و بفرستی عزیز.
موفق باشی.

amirhsg
یک شنبه 19 بهمن 1393, 08:45 صبح
می بخشین اینم لینک فایل کل فولدر.
http://uplod.ir/aylhngp0v47z/P1.zip.htm

amir_mhdi
یک شنبه 19 بهمن 1393, 10:02 صبح
کد شما رو بهینه کردم و حجمش کم شد. اما مشکلات :
شما از دیپ سوییچ 5 بیتی استفاده کردید و چون 16 حالت میخواستید ، آنرا به 4 بیتی تغییر دادم.
کد شما بسیار ناخوانا بود که با تبدیل شدن به تابع و نوشتار صحیح (اضافه کردن TAB بعد از while و سایر موارد) کد اصلاح شد. اما علامتهایی که قصد داشتید روی سگمنتها نمایش دهید همچنان ناخوانا هستند و چون نمیدانستم چه چیزی قرار است نمایش داده شود نتوانستن در این بخش کمکی کنم.
طراحی علائم شما اشکال دارد ولی سایر بخشهای برنامه درست عمل میکند.
مثلا کاراکتر 'A' درست طراحی شده ولی مابقی خیر.
این هم لینک پروژه تغییر داده شده.
http://uplod.ir/9dn15pajqatx/P1.rar.htm

موفق باشید.

marzie1373
سه شنبه 09 تیر 1394, 23:27 عصر
سلام خسته نباشید
من موضوع پروژه کارشناسیم ساخت قفل دربازکن با سنسور اثرانگشت sm621با کدویژنه ولی اصلا نمیدونم از کجا باید شروع کنم فقط میدونم که باید تو usart بنویسم اما چطوری نمیدونم


:ناراحت:تورو خدا کمکم کنین تا آخر تیر وقت دارم فقط

bhossein
سه شنبه 07 مهر 1394, 18:31 عصر
هنوز هستی که بپرسم؟ پست مال خیلی وقت پیشه

rmghm950
چهارشنبه 25 فروردین 1395, 08:30 صبح
با سلام خدمت دوست عزيز.
من مبتدي نيستم ( به عنوان مثال اين برنامه اي كه دوستمان در خواست كرده بودند را من قبلا نوشته بودم.) ولي مي خواهم براي ادامه كارم در اين رشته دست به كار شوم و اطلاعات خود را در زمينه ي كمي و كيفي افزايش دهم .
مي شود يك كتاب مناسب به من معرفي كنيد( كه حاوي مطالب سطح بالاتر و مثال هاي متنوع و مفيد تر باشد).
اين مورد شايان ذكر است كه من در مورد AVR مي خواهم.
با تشكر .
خدانگهدار.

http://noise.blog.ir/

rmghm950
چهارشنبه 25 فروردین 1395, 08:32 صبح
تشکر
http://noise.blog.ir/

rmghm950
چهارشنبه 25 فروردین 1395, 08:32 صبح
http://noise.blog.ir/

http://noise.blog.ir/http://noise.blog.ir/

aliazs
سه شنبه 30 شهریور 1395, 19:06 عصر
تنظیم اتوماتیک ولتاژ با برنامه نویسی avr
...
من یه وسیله ای دارم میسازم.تو اون وسیله میخوام ولتاژ را کنترل کنم.مثلا ولتاز را روی 12 ولت نگه داره.
اگ ولتاژ زیاد شد درون باتری ذخیره کنه و اگه کم شد از باتری بگیره.
چطور میشه این کارو کرد
ایا با برنامه نویسی avr میشه؟ اخه تاحدودی برنامه نویسی avr با زبان c را بلد هستم.
اگه هم نمیشه بیاید چه کنم؟
ایا توی برنامه نویسی avr میشه بهش دستور داد که ولت را یه اندازه نگه داشت مثلا بگی
پورت آ =9ولت؟
اگ میتونید یه اموزش کلی از برنامه نویسی اش بدید خیلی خوبه...من میرم کلاس نهم و زبان برنامه نویسی سی شارپ را تقریبا بلد هستم و سی و سی پلاس پلاس هم کمی بلد هستم...من چند وقتیه وارد زمینه الکترونیک شده ام ولی خیلی بلد نیستم ....و حالا کمی از برنامه نویسی atmega16 با برنامه atmel stadio با زبان سی میدانم ولی اگ بتونید منو کمک کنید خیلی ممنون میشم..
اگ چه در زمینه میکرو و چه در زمینه ویندوز و اندروید و بازی کمک کنید ممنون میشم
ولی الان بیشتر به برنامه نویسی میکرو که گفتم احتیاج دارم.....مر30 از همگی
(اگ pdfبزارید یا فیلم خیلی ممنون میشم
اگ میتونیو فیلم اموزشی بزارید که درک اش راحت تر باشد...)

typeman9
دوشنبه 14 اسفند 1396, 14:12 عصر
سلام:
من پیشنهاد می کنم برای میکروکنترولر AVR به سایت اسمبلر Fasm سر بزنید:

https://flatassembler.net

روی عبارت Messsage Board کلیک کنید تا وارد انجمن کاربران زبان اسمبلی شوید.