سلام من میخوام همین هشدار دهنده رو بسازم اما فعلا توی تولید صوتش موندم
ممکن در مورد این خطوط و نحوه ی تغییر ocr1 توضیح بدید
در
کد:
// Timer1 overflow interrupt service routineinterrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
if(t1ovf)t1ovf--;
}
عبارت
چه کاری انجام میده
یا در
کد:
void play_nasht(void)
{
ply idx;
for(idx=0;idx<9600;idx++)
{
OCR1B = nasht[idx];
t1ovf=2;
while(t1ovf);
}
OCR1B = 0;
}
عبارت
کد:
t1ovf=2;
while(t1ovf);
برای چی نوشته شده؟
من برای تولید صوت با PWM مراحل زیر رو طی کردم اما بجز خش خش چیزی نصیبم نشد
1) فایل صوتی رو به صورت 8kHz; 8Bit; Mono درآوردم و بعد اون رو با نرم افزار winhex به کد هگز تبدیل کردم(در فایل alarm.rar موجوده)
2) فرکانس میکرو روی 8 مگا هرتز.
فرکانس تایمر روی 8 مگا هرتز( cs12=0, cs11=0, cs10=1 >> clock value=focs).
pwm هم 8 بیتی تعریف کردم ( Mode: Ph. correct PWM 8bit top=00FFh)
وقفه ی سر ریزش رو هم فعال کردم
لطفا بگید مشکلم در شبیه سازیه یا در کدنویسی
این هم کدی که نوشتم به همراه فایل پروتئوس Alarm.rar