۱۰-آبان-۱۳۸۸, ۲۲:۳۱:۲۴
۱۰-آبان-۱۳۸۸, ۲۲:۴۱:۱۰
کد php:
do
toggle porta.0
waitus 6
loop
البته این راحت ترین روش هستش و اصلا دقتی نداره !
اگه فرکانسش بیشتر بود تو حلقه به تعداد مورد نیاز دستور NOP رو اضافه کنید !
اگه فرکانس کمتر از مورد نیاز بودش زمان تاخیر رو کم کنین !
نکته : سعی کنید فرکانس میکرو رو تغییر ندین ( بالاتر باشه دقتتون بیشتره )
۱۱-آبان-۱۳۸۸, ۲۰:۰۹:۱۸
سلام
اخه اينو كه شما ميگيد خيلي سر خوده يعني كنترل اون سخته ...........
من مي خام بطور دقيقتر از اينكه شما گفتيد عمل كنم و يه فركانس رو به يه پايه بدم . راه ديگه اي نيس؟
اخه اينو كه شما ميگيد خيلي سر خوده يعني كنترل اون سخته ...........
من مي خام بطور دقيقتر از اينكه شما گفتيد عمل كنم و يه فركانس رو به يه پايه بدم . راه ديگه اي نيس؟
۱۱-آبان-۱۳۸۸, ۲۱:۱۳:۳۴
خوب باید بیایی سراغ تایمر ها
خروجی برنامه فوق الان 8 مگ تقیسم بر 256 هستش !
یعنی 31250 هرتز !
می تونی تایمر رو با یه عدد پیش فرض بارگذاری کنی تا فرکانسش رو بتونی تغییر بدی !
مثلا خروجی برنامه زیر 125000 هرتز است !
کد php:
$regfile = "M8def.dat" : $crystal = 8000000
Config Timer0 = Timer , Prescale = 1
On Timer0 Ant : Enable Interrupts : Enable Timer0
Do
Loop
Ant:
Toggle PortA.0
Return
خروجی برنامه فوق الان 8 مگ تقیسم بر 256 هستش !
یعنی 31250 هرتز !
می تونی تایمر رو با یه عدد پیش فرض بارگذاری کنی تا فرکانسش رو بتونی تغییر بدی !
مثلا خروجی برنامه زیر 125000 هرتز است !
کد php:
$regfile = "M8def.dat" : $crystal = 8000000
Config Timer0 = Timer , Prescale = 1
On Timer0 Ant : Enable Interrupts : Enable Timer0
Do
Loop
Ant:
Toggle PortA.0
Timer0 = 192
Return
۱۲-آبان-۱۳۸۸, ۱۵:۴۱:۱۸
سلام
ممنون از كمكتون
الان اين برنامه به كريستال خارجي نياز ندارد؟ درسته؟
اين فرمول بدست اوردن فركانس چيه كه بعضي جا نوشتن ؟
يعني فرمول خاصي داره؟
ببخشيد زياد سوال كردم .
ممنون از كمكتون
الان اين برنامه به كريستال خارجي نياز ندارد؟ درسته؟
اين فرمول بدست اوردن فركانس چيه كه بعضي جا نوشتن ؟
يعني فرمول خاصي داره؟
ببخشيد زياد سوال كردم .
۱۳-آبان-۱۳۸۸, ۰۱:۴۲:۲۲
فرمولی نداره !
تو روش اول تعداد کلاک های و زمان های هر دستور رو باید بدونی تا دقیق بتونی زمان رو بسازی که متاسفانه تو زبان های سطح بالا مثل بسکام معنی نداره !
تو روش دوم مثل پست قبلی من همون فرمول معروف برای به دست اوردن زمان وقفه تایمر هستش !
یعنی فرکانس میکرو تقسیم بر تقسیم فرکانسی ( همون پرسکالر ) تقسیم بر مقدر شمارش تایمر تا صفر شدن و فعال شدن وقفش !
مثال پست قبلی منو تمرکز کنی می فهمی چی شدش !
چون تایمر صفر 8 بیتی هستش پس از 0 تا 255 می شمره ! یعنی 256 تا
می شه ی عدد پیش فرض داخلش گذاشت تا کمتر شه !
تو روش اول تعداد کلاک های و زمان های هر دستور رو باید بدونی تا دقیق بتونی زمان رو بسازی که متاسفانه تو زبان های سطح بالا مثل بسکام معنی نداره !
تو روش دوم مثل پست قبلی من همون فرمول معروف برای به دست اوردن زمان وقفه تایمر هستش !
یعنی فرکانس میکرو تقسیم بر تقسیم فرکانسی ( همون پرسکالر ) تقسیم بر مقدر شمارش تایمر تا صفر شدن و فعال شدن وقفش !
مثال پست قبلی منو تمرکز کنی می فهمی چی شدش !
چون تایمر صفر 8 بیتی هستش پس از 0 تا 255 می شمره ! یعنی 256 تا
می شه ی عدد پیش فرض داخلش گذاشت تا کمتر شه !
۱۳-آذر-۱۳۸۸, ۲۲:۳۴:۵۲
چطور ميشيه سيگنال مربوط به تلفن رو ايجاد و به گوشي ارسال كرد؟
۱۳-آذر-۱۳۸۸, ۲۲:۴۱:۳۰