توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : pwm در winavr
سلام.
من میخوام تو winavr به وسیله timer1 دو موج pwm روی پایه های oc1a و oc1b تولید کنم.
من تونستم دو تا موج مثل هم روی پایه های oc1a و oc1b تولید کنم ولی هر کاری کردم نتونستم نسبت 1 بودن به 0 بودن رو کنترل کنم.یعنی هر مقداری که به oc1aو oc1b میدم فقط فرکانس تغییر میکنه نه نسبت 1 به 0.
اگه میشه یه مثالی بزارید.تو کدویژن هم باشه مشکلی نیست.
ممنون.
محمد رضا ملکی
17-10-2010, 13:21
سلام
اگه کتاب آموزش سریع میکرو کنترلر های avr که توسط آقای رضا سپاس یار نوشته شده رو بخونید میتونید در صفحه ی 85 کتاب آموزش کامل کار با تایمر رو مشاهده کنید .
این کتاب رایگانه و قبلا من از همین سایت دانلودش کرده بودم
Aghaeifar
17-10-2010, 19:51
لابد تایمر رو در مد کاری مناسب به کار ننداختی
فکر کنم مد fast PWM بود که برای تنظیم duty cycle به کار می رفت.
سلام.
من تو همین مد fast pwm راه اندازی کردم.
اگه میشه یه مثال کوچیک بزارید که بشه duty cycle رو کنترل کرد تو هر دو تا پایه oc1a و oc1b.
ممنون.
سلام.
بالا خره تونستم چیزی که میخوام راه اندازی کنم.
mode : fast pwm 8bit
prescale : ferequency/8
toggle
تنظیماتش رو اینجوری گذاشتم :
TCCR1A=0xa1
TCCR1B=0X0a
سلام این هم مثال
$regfile = "m16def.dat"
$crystal = 16000000
Config Timer1 = Pwm , Pwm = 8 , Compare B Pwm = Clear Up , Prescale = 1
Dim B As Byte
Config Portb = Output
B = 0
Do
Pwm1b = B
Incr B
Waitms 20
Loop
End
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.