من میخوام یک موج pwm با هر فرکانس دلخواهی رو پایه oc1a و oc1b ایجاد کنم.تا جایی که تو دیتاشیت دیدم این کار امکان پذیره ولی هرکاری میکنم چه با بسکام چه کد ویژن نمیشه.
در واقع کاری که میخوام انچام بدم اینه که فرکانس pwm و عرض پالس رو بصورت توام تغییر بدم.که به زبان میکروکنترلری میشه تغییر مقدار ماکزیمم شمارش در تایمر برای تعیین فرکانس و تعیین مقدار رجیستر مقایسه برای تغییر عرض پالس.که تا جایی که میدونم میشه مد fast pwm
توی بسکام برناممو اینطوری نوشتم:
config timer1=timer,prescale=1,compare a =toggle,compare b=toggle, clear timer=1
compare a=640
compare b=100
حالا انتظار دارم که روی پایه oc1b یک موج با فرکانس کریستالم که 16 مگ هست بخش بر640داشته باشم که میشه 25 کیلو و عرض پالسم بشه 100/640 که میشه 0.16 ولی در عمل نمیشه و یک موج با فرکانس 50 کیلو با عرض پالس 50 درصد دارم که نشون دهنده اینه که compare b اصلا عمل نمیکنه!!!! اشکال کارم از کجاست به نظر شما؟
اگه با کدویژن هم کد برام بذارین فرقی برام نمیکنه فقط برام توضیح بدین اشکال کارم از کجاس!! چون تا جایی که یادم میاد قبلا خودم این کارو انجام دادم ولی یادم نمیاد چجو چجوری :angry:
ممنون
در واقع کاری که میخوام انچام بدم اینه که فرکانس pwm و عرض پالس رو بصورت توام تغییر بدم.که به زبان میکروکنترلری میشه تغییر مقدار ماکزیمم شمارش در تایمر برای تعیین فرکانس و تعیین مقدار رجیستر مقایسه برای تغییر عرض پالس.که تا جایی که میدونم میشه مد fast pwm
توی بسکام برناممو اینطوری نوشتم:
config timer1=timer,prescale=1,compare a =toggle,compare b=toggle, clear timer=1
compare a=640
compare b=100
حالا انتظار دارم که روی پایه oc1b یک موج با فرکانس کریستالم که 16 مگ هست بخش بر640داشته باشم که میشه 25 کیلو و عرض پالسم بشه 100/640 که میشه 0.16 ولی در عمل نمیشه و یک موج با فرکانس 50 کیلو با عرض پالس 50 درصد دارم که نشون دهنده اینه که compare b اصلا عمل نمیکنه!!!! اشکال کارم از کجاست به نظر شما؟
اگه با کدویژن هم کد برام بذارین فرقی برام نمیکنه فقط برام توضیح بدین اشکال کارم از کجاس!! چون تا جایی که یادم میاد قبلا خودم این کارو انجام دادم ولی یادم نمیاد چجو چجوری :angry:
ممنون
دیدگاه