۱۴-شهریور-۱۳۸۹, ۰۲:۳۵:۰۵
۱۴-شهریور-۱۳۸۹, ۰۲:۵۳:۳۶
چنین چیزی امکان داره کامپایلری مستقیم برنامه ای رو که کامپایل میکنه به زبان ماشین تبدیل کنه؟
اون که دلیل نمیشه.خوب فایل سی تولید نکنه دلیل نمیشه مستقیم هگز کنه
اون که دلیل نمیشه.خوب فایل سی تولید نکنه دلیل نمیشه مستقیم هگز کنه
۱۴-شهریور-۱۳۸۹, ۰۳:۰۷:۲۹
منطق اینه که تبدیل به اسمبلی بکنه ولی خوب اگه میکرد حتما خروجیشو می ذاشت !!!!!
ولی مطمئن باش تبدیل به سی نمی کنه !
مثلا می تونی معادل دستور DTMF رو تو زبان سی بگی !!!!
ولی مطمئن باش تبدیل به سی نمی کنه !
مثلا می تونی معادل دستور DTMF رو تو زبان سی بگی !!!!
۱۴-شهریور-۱۳۸۹, ۰۳:۳۶:۱۵
ببین
میدونیم که بیسیک تابع یا دستوری تحت این عنوان نداره
پس خیلی دستورای دیگه مختص میکرو توی کامپایلر نوشته شده ، طراحی شده ، تابع نویسی شده
شما حسابشو بکن
این دستور DTMF چند درصد از حافظه ی یه مگا 16 رو اشغال میکنه؟
پس معلوم میشه این دستور باچهار تا دستور mov یا ldیا ldi یا setیا clr توی اسمبلی (توی سی رو نمیدنم) نوشته شده،برای اجرای هر این از این دستورات چند سیکل ساعت باید طی بشه؟این میشه اون اختلافی که میگفتم
حسابشو بکن . خودت میتونی یه کامپایلر بسازی ، خودت یه سری دستور از خودت در میاری
اما این دستوراتی که ایجاد کردی در اصل با چه دستوراتی ساخته شده؟اینها اختلاف و تاخیر درست میکنه.اما روی کاغذ باید درست در بیاد
میدونیم که بیسیک تابع یا دستوری تحت این عنوان نداره
پس خیلی دستورای دیگه مختص میکرو توی کامپایلر نوشته شده ، طراحی شده ، تابع نویسی شده
شما حسابشو بکن
این دستور DTMF چند درصد از حافظه ی یه مگا 16 رو اشغال میکنه؟
پس معلوم میشه این دستور باچهار تا دستور mov یا ldیا ldi یا setیا clr توی اسمبلی (توی سی رو نمیدنم) نوشته شده،برای اجرای هر این از این دستورات چند سیکل ساعت باید طی بشه؟این میشه اون اختلافی که میگفتم
حسابشو بکن . خودت میتونی یه کامپایلر بسازی ، خودت یه سری دستور از خودت در میاری
اما این دستوراتی که ایجاد کردی در اصل با چه دستوراتی ساخته شده؟اینها اختلاف و تاخیر درست میکنه.اما روی کاغذ باید درست در بیاد
۱۴-شهریور-۱۳۸۹, ۰۴:۴۱:۲۶
درسته ولی اکثر دستورات اصلی بسکام و کدویژن مشابه هستن و نباید فرقی تو زمان اجرای اونها باشه !!
مثلا دستور for وقتی به اسمبلی تبدیل میشه یه کدهای مشابه داره و نباید بگیم چون اون بسکامه پس حتما سرعتش پایینه !!!
دستور DTMF حدود 3 درصد اتمگا 16 رو پر می کنه !!
شما همین دستور رو تو کدویژن شبیه سازی کن و ببین چند درصد میشه !!!!
کلا همه دستورات بسکام مختص کار با avr هستش ولی واسه اینکه یه روالی اشته باشه از منطق بیسیک پیروی کرده !! ( مثلا واسه تعریف کردن متغیرها و یا طریقه ایجاد حلقه ها )
winavr بحثش جداست !!!
ولی بین کدویژن و بسکام قدرت تو بسکامه !!!
شاید یه آدمی که برنامه نویسی هم بلد نباشه بتونه با بسکام راحت کارهاشو انجام بده ولی مطمئن باش دستورات و روال هایی که حرفه ای بسکام استفاده می کنه خیلی فرق داره !!!
هم واسه مبتدی هاست و هم حرفه ای ها !!!
مثلا دستور for وقتی به اسمبلی تبدیل میشه یه کدهای مشابه داره و نباید بگیم چون اون بسکامه پس حتما سرعتش پایینه !!!
دستور DTMF حدود 3 درصد اتمگا 16 رو پر می کنه !!
شما همین دستور رو تو کدویژن شبیه سازی کن و ببین چند درصد میشه !!!!
کلا همه دستورات بسکام مختص کار با avr هستش ولی واسه اینکه یه روالی اشته باشه از منطق بیسیک پیروی کرده !! ( مثلا واسه تعریف کردن متغیرها و یا طریقه ایجاد حلقه ها )
winavr بحثش جداست !!!
ولی بین کدویژن و بسکام قدرت تو بسکامه !!!
شاید یه آدمی که برنامه نویسی هم بلد نباشه بتونه با بسکام راحت کارهاشو انجام بده ولی مطمئن باش دستورات و روال هایی که حرفه ای بسکام استفاده می کنه خیلی فرق داره !!!
هم واسه مبتدی هاست و هم حرفه ای ها !!!
۱۴-شهریور-۱۳۸۹, ۱۵:۱۰:۲۲
ببین درسته
خیلی از حرفاتو قبول دارم
منتهاببین وقتی تو کدوِزن یه تایمرو پیکره بندی میکنیم ، مستقیم رجیسترارو مقدار دهی میکنیم
یه جور دیگه بگم
یه برنامه رو تو بسکام بنویس
همونو تو بسکام منتها با اسمبلی بنویس
فرقشون زیاد میشه
دستورات کد ویژن هم شبه سی هستند و شبه اسمبلی
خیلی از حرفاتو قبول دارم
منتهاببین وقتی تو کدوِزن یه تایمرو پیکره بندی میکنیم ، مستقیم رجیسترارو مقدار دهی میکنیم
یه جور دیگه بگم
یه برنامه رو تو بسکام بنویس
همونو تو بسکام منتها با اسمبلی بنویس
فرقشون زیاد میشه
دستورات کد ویژن هم شبه سی هستند و شبه اسمبلی
۱۴-شهریور-۱۳۸۹, ۱۶:۰۰:۲۷
تنظیمات رو شما تو ویزارد انجام میدین !
فقط اون میاد چیزهایی که انتخاب کردین رو به معادلش که همون مقداردهی مستقیم رجیستر هستش می نویسه !
ولی وقتی می خوای تایمر یک رو روی مد کانتر ببری خوب باید تو یه رجیستر خواص دیتایی بنویسی !!!
مطمئن باش بسکام هم فقط همون ار رو می کنه و دلیلی نداره بیاد بقیه رجیسترها رو هم دست بزنه !
فقط چون نشون نمی ده چی کار می کنه این حس القا میشه که کار اضافه می کنه !!!
و در ضمن میشه تو بسکام مستقیم تو رجیسترها نوشت !!!
ولی من که ت احالا لازمم نشده !! ( ولی از رجیستر DDR ها زیاد استفاده می کنم )
اسمبلی که مشخصه !!
ولی کدویژن هم همچین اسمبلی که میگی نیست !!!
یه حرکت فنی الان من انجام دادم !!!
برنامه زیر در کدویژن حجمش شد 768 بایت !!!
و اینم معادل برنامه فوق در بسکام که حجمش شد 168 بایت !!
خودتون تست کنین و تفاوت رو احساس کنین !!!
فقط اون میاد چیزهایی که انتخاب کردین رو به معادلش که همون مقداردهی مستقیم رجیستر هستش می نویسه !
ولی وقتی می خوای تایمر یک رو روی مد کانتر ببری خوب باید تو یه رجیستر خواص دیتایی بنویسی !!!
مطمئن باش بسکام هم فقط همون ار رو می کنه و دلیلی نداره بیاد بقیه رجیسترها رو هم دست بزنه !
فقط چون نشون نمی ده چی کار می کنه این حس القا میشه که کار اضافه می کنه !!!
و در ضمن میشه تو بسکام مستقیم تو رجیسترها نوشت !!!
ولی من که ت احالا لازمم نشده !! ( ولی از رجیستر DDR ها زیاد استفاده می کنم )
اسمبلی که مشخصه !!
ولی کدویژن هم همچین اسمبلی که میگی نیست !!!
یه حرکت فنی الان من انجام دادم !!!
برنامه زیر در کدویژن حجمش شد 768 بایت !!!
کد php:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 9/5/2010
Author : Ali
Company : NT
Comments:
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega8.h>
#include <delay.h>
unsigned char a,b,c;
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
while (1)
{
a=1;
b=2;
c=a+b;
delay_ms(100);
};
}
و اینم معادل برنامه فوق در بسکام که حجمش شد 168 بایت !!
خودتون تست کنین و تفاوت رو احساس کنین !!!
کد php:
$regfile = "M8def.dat"
$crystal = 8000000
Dim A As Byte , B As Byte , C As Byte
Do
A = 1
B = 2
C = A + B
Waitms 100
Loop
۱۴-شهریور-۱۳۸۹, ۱۶:۱۴:۵۸
منظورم این نیست که کار دیگه ای انجام میده
اون کاری که میخواد انجام بده رو با تاخیر بیشتر انجام میده
ساده بگم
هنه
تست کردم.قبولت دارم
توی بقیه گفته هات همشونو قبول دارم
یه چیز دیگه
توی تنظیمات کامپایلر توی قسمت putput اگر تیک optimize code رو بزنی ظاهرا برنامه از نظر سرعت بهینه میشه
(چیزی که winavr یها خیلی براش پز میدن)
تست کردی؟
خود هلپ هم این طور گفته:
This options does additional optimization of the generated code. Since it takes more compile time it is an option
اون کاری که میخواد انجام بده رو با تاخیر بیشتر انجام میده
ساده بگم
هنه
تست کردم.قبولت دارم
توی بقیه گفته هات همشونو قبول دارم
یه چیز دیگه
توی تنظیمات کامپایلر توی قسمت putput اگر تیک optimize code رو بزنی ظاهرا برنامه از نظر سرعت بهینه میشه
(چیزی که winavr یها خیلی براش پز میدن)
تست کردی؟
خود هلپ هم این طور گفته:
This options does additional optimization of the generated code. Since it takes more compile time it is an option
۱۵-شهریور-۱۳۸۹, ۰۰:۰۷:۳۰
آقای آقا بیگی نظری ندارن؟
۱۵-شهریور-۱۳۸۹, ۱۶:۴۶:۱۷
با سلام
بنده یک نظر کلی دارم و آن اینست که هر شخص دوست دار سخت افزار و الکترونیک , با یک زبان و محیط برنامه نویسی احساس راحتی میکند و یک شخص حرفه ای در نهایت هرجا که محیط دستش را برای اعمال دستورات بسته کند میتواند از دستورات اسمبلی بهره ببرد و یا حتی کلا از اسمبلی استفاده کند.
بنده یک نظر کلی دارم و آن اینست که هر شخص دوست دار سخت افزار و الکترونیک , با یک زبان و محیط برنامه نویسی احساس راحتی میکند و یک شخص حرفه ای در نهایت هرجا که محیط دستش را برای اعمال دستورات بسته کند میتواند از دستورات اسمبلی بهره ببرد و یا حتی کلا از اسمبلی استفاده کند.
۱۹-دى-۱۳۸۹, ۱۵:۰۹:۲۲
به نظرمن اسمبلی با اینکه خیلی سخته ولی بسیار قدرت منده من خودم c و ترجیح می دم چون امکان نوشتن اسمبلی داخل کد سی و بهتون می ده فکر نکنم بیسیک این کارو کنه ولی از لحاظ سادگی واقعا بیسیک خوبه