ايران ويج

نسخه‌ی کامل: WinAVR
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
سلام :wink:

من اون آموزش WinAVR را خوندم. اما میخام شما به سوالاتم جواب بدین.

1- اصلا این WinAVR کلش کجاست؟ مثلا روی ایکون CodeVision که کلیک میکنیم، برنامه اجرا میشه. اما PN مربوط به WinAVR نیست.

2- این شرتکات ها که روی دسکتاپ میسازه چی؟

کد:
AVR Insight [WinAVR]
MFile [WinAVR]

3- چجوری میشه در WinAVR به جای اینکه بنویسیم:

کد:
PORTB=0x01;

بنویسیم:

کد:
PORTB.0=1;

???

:wink:
اون pn که می بینی می شه بهش دستور اضافه کرد تقریبا با همون کار داری و اون make file که برای ساختن اون m file ها نیاز داری
اینو اول فایلت بزار
کد:
#define bitset(port,bit) ((port) & (1<<bit))
بعد هر جا خواستی (bitset(PORTB,0
البته بقه هم هست مثلا برای پاک کردن bitclr یه سرچ کنس پیدا می شه خودت هم می تونی بنویسی
اینو خودم ساختم.
من تازه کارم پس شاید برای شما خیلی برنامهی بچه گانه یی باشه!
فقط بگو مشکلی نداره؟ اگه راه ساده تری هم داره بگید. ممنون :roll:
کد:
/*********************************************
Name : vahid.h
Version : 20070202
Date    : 2007/02/02
Author  : Vahid
Comments:

    1. bitset(port,bit)
    2. bitclr(port,bit)
    3. bsc(port,bit,val)
    3. POA~E(val)
    4. DRA~E(val)
*********************************************/

// Define bitset/clr >
#define bitset(port,bit) ((port) |= (1<<bit))
#define bitclr(port,bit) ((port) &= (~(1<<bit)))
// <

// Define scb >
#define bsc(port,bit,val) if(val) bitset(port,bit); else bitclr(port,bit)
// <

//Define POA~E >
#define POA0(val) bsc(PORTA,0,val)
#define POA1(val) bsc(PORTA,1,val)
#define POA2(val) bsc(PORTA,2,val)
#define POA3(val) bsc(PORTA,3,val)
#define POA4(val) bsc(PORTA,4,val)
#define POA5(val) bsc(PORTA,5,val)
#define POA6(val) bsc(PORTA,6,val)
#define POA7(val) bsc(PORTA,7,val)

#define POB0(val) bsc(PORTB,0,val)
#define POB1(val) bsc(PORTB,1,val)
#define POB2(val) bsc(PORTB,2,val)
#define POB3(val) bsc(PORTB,3,val)
#define POB4(val) bsc(PORTB,4,val)
#define POB5(val) bsc(PORTB,5,val)
#define POB6(val) bsc(PORTB,6,val)
#define POB7(val) bsc(PORTB,7,val)

#define POC0(val) bsc(PORTC,0,val)
#define POC1(val) bsc(PORTC,1,val)
#define POC2(val) bsc(PORTC,2,val)
#define POC3(val) bsc(PORTC,3,val)
#define POC4(val) bsc(PORTC,4,val)
#define POC5(val) bsc(PORTC,5,val)
#define POC6(val) bsc(PORTC,6,val)
#define POC7(val) bsc(PORTC,7,val)

#define POD0(val) bsc(PORTD,0,val)
#define POD1(val) bsc(PORTD,1,val)
#define POD2(val) bsc(PORTD,2,val)
#define POD3(val) bsc(PORTD,3,val)
#define POD4(val) bsc(PORTD,4,val)
#define POD5(val) bsc(PORTD,5,val)
#define POD6(val) bsc(PORTD,6,val)
#define POD7(val) bsc(PORTD,7,val)

#define POE0(val) bsc(PORTE,0,val)
#define POE1(val) bsc(PORTE,1,val)
#define POE2(val) bsc(PORTE,2,val)
#define POE3(val) bsc(PORTE,3,val)
#define POE4(val) bsc(PORTE,4,val)
#define POE5(val) bsc(PORTE,5,val)
#define POE6(val) bsc(PORTE,6,val)
#define POE7(val) bsc(PORTE,7,val)
// <

// Define DRA~E >
#define DRA0(val) bsc(DDRA,0,val)
#define DRA1(val) bsc(DDRA,1,val)
#define DRA2(val) bsc(DDRA,2,val)
#define DRA3(val) bsc(DDRA,3,val)
#define DRA4(val) bsc(DDRA,4,val)
#define DRA5(val) bsc(DDRA,5,val)
#define DRA6(val) bsc(DDRA,6,val)
#define DRA7(val) bsc(DDRA,7,val)

#define DRB0(val) bsc(DDRB,0,val)
#define DRB1(val) bsc(DDRB,1,val)
#define DRB2(val) bsc(DDRB,2,val)
#define DRB3(val) bsc(DDRB,3,val)
#define DRB4(val) bsc(DDRB,4,val)
#define DRB5(val) bsc(DDRB,5,val)
#define DRB6(val) bsc(DDRB,6,val)
#define DRB7(val) bsc(DDRB,7,val)

#define DRC0(val) bsc(DDRC,0,val)
#define DRC1(val) bsc(DDRC,1,val)
#define DRC2(val) bsc(DDRC,2,val)
#define DRC3(val) bsc(DDRC,3,val)
#define DRC4(val) bsc(DDRC,4,val)
#define DRC5(val) bsc(DDRC,5,val)
#define DRC6(val) bsc(DDRC,6,val)
#define DRC7(val) bsc(DDRC,7,val)

#define DRD0(val) bsc(DDRD,0,val)
#define DRD1(val) bsc(DDRD,1,val)
#define DRD2(val) bsc(DDRD,2,val)
#define DRD3(val) bsc(DDRD,3,val)
#define DRD4(val) bsc(DDRD,4,val)
#define DRD5(val) bsc(DDRD,5,val)
#define DRD6(val) bsc(DDRD,6,val)
#define DRD7(val) bsc(DDRD,7,val)

#define DRE0(val) bsc(DDRE,0,val)
#define DRE1(val) bsc(DDRE,1,val)
#define DRE2(val) bsc(DDRE,2,val)
#define DRE3(val) bsc(DDRE,3,val)
#define DRE4(val) bsc(DDRE,4,val)
#define DRE5(val) bsc(DDRE,5,val)
#define DRE6(val) bsc(DDRE,6,val)
#define DRE7(val) bsc(DDRE,7,val)
// <

پایان
:wink:
فکر جالبیه ولی با همون 2 تا تابع اولی کافیه دیگه این همه تعریف نمی خواد
با سلام
من یه سوال داشتم
چه طور میشه مکان یه متغیر رو در winavr مشخص کرد
در کدویژن با یه @ می شد دسترسی پیدا کرد ولی تو این یکی انگار فرق داره
باتشکر
مکان متغییر؟ منظورت آدرس؟ یه آشاره گر باید تعریف کنی و آدرسش رو برابر اون چیزی که می خوای بزاری و برای گرفتن آدرس هم &
اما اونی رو که می گی انگار داشت ولی دقیق یادم نیست اینو امتحان کن _at_
با سلام دو تا سوال
این لینک های دانلود کتابخانه های winavr کجاست؟
مثل اینکه چند وقتی هست که سایت sourceforge.net تعطیله . 8O نمی شه ورژن جدید رو دانلود کرد. شما هم یه نگاه بکنید.
Sf.net رو ببین البته اونم سر جاشه تکون نخورده
یادم نیست توی سایت هم لینک به sf یا توی سایت
یه sff.net هست که ربطی نداره. نمی دونم آیا به server من ربط داره یا نه ولی sourceforge.net باز نمیشه 8O :(
sourceforge.net اینجا که باز می شه
با سلام
بنده چند وقت پیش در رابطه با مشخص کردن مکان یک متغیر در winavr سوال کرده بودم و این توضیح رو هم دادم که در کدویژن با یه @ این کار ممکنه. مثلا
unsigned char k @0x100
شما گفتید که _at_ رو امتحان کنم . خوب من این کار و کردم ولی جواب نداد. اگه ممکنه بیشتر راهنمایی کنید.
صفحه‌ها: 1 2 3 4