با سلام
دوستان من میخوام یک برنامه بنویسم که روی یک پایه میکرو 7 تا پالس مربعی با فرکانس 200 کیلو هرتز تولید کنه بعد یک ثانیه صبر کنه و روی یک پایه دیگه دوباره 7 تا پالس مربعی با همون فرکانس 200 کیلو هرتز رو بسازه.
من از برنامه زیر برای تست مد مقایسه ای تایمر 1 میکرو استفاده کردم. اول زمان Compare1a = 5 در نظر گرفتم که روی پایه oc1a فرکانس حدودا 170 کیلوهرتز شد. بعد Compare1a = 4 گذاشتم که دقیقا فرکانس 200 کیلوهرتز بدست اومد. منتها روی پایه b0 فرکانس به مراتب کمتر از 200 کیلوهرتزه ظاهرا انجام دستورات توی تابع q زمانبره و باعث میشه فرکانس پایین بیاد. دوستان کسی پیشنهادی داره که بشه این برنامه رو نوشت؟
$regfile="m48def.dat"
$crystal=16000000
config PORTB=OUTPUT
Config Timer1 = Timer , Compare A = toggle , Prescale = 1 , Clear Timer = 1
Compare1a = 4
Enable Interrupts
Enable Oc1a
On Oc1a Q
dim a as Byte
a=0
do
loop
q:
a=a+1
toggle portb.0
return