پاسخ : یک و صرف کردن یک پایه ATMEGA8 با بیسیک در زمان 
درود حمید جان
ظاهرا دستور Sound از تایمر دو استفاده میکنه ...
بنابراین باید با یک تایمر دیگر این کار رو بکنید ...
من این کار رو با تایمر 1 انجام دادم ...
کار کردنش خیلی راحته ...
خودتون هم یه نگاهی بیندازید متوجه می شوید که چیکار کردم ...
ورودی اول تعداد پالسهاست . بازه این ورودی از 1 تا 30,000 است
ورودی دوم هم برای مدت زمان بر حسب میکروثانیه است . بازه این ورودی بین 50 تا 60,000 است
این هم برنامه :
پاسخ 2 :
خیر . نیازی نیست ... چون دارید کریستال ساعت کار میکنید و نمی خواهید کلاک سیستم را تامین کنید ...
فقط یه چیزی
CKSEL3-2-1-0
0-1-0-0
تنظیم کنید تا فرکانس میکرو روی 8 مگا هرتز تنظیم شود ...
سوالی بود در خدمتم
موفق باشید
=====================
یه چیزی یادم اومد
پایه های B.6 و B.7 رو بهتر است که ورودی در نظر بگیریم .
چون باید کریستال بهش وصل بشه !
نوشته اصلی توسط hamidelectroniic
ظاهرا دستور Sound از تایمر دو استفاده میکنه ...
بنابراین باید با یک تایمر دیگر این کار رو بکنید ...
من این کار رو با تایمر 1 انجام دادم ...
کار کردنش خیلی راحته ...
خودتون هم یه نگاهی بیندازید متوجه می شوید که چیکار کردم ...
ورودی اول تعداد پالسهاست . بازه این ورودی از 1 تا 30,000 است
ورودی دوم هم برای مدت زمان بر حسب میکروثانیه است . بازه این ورودی بین 50 تا 60,000 است
این هم برنامه :
کد:
$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 50 $swstack = 50 $framesize = 50 Config Pinc.0 = Input Config Portb = Output Config Pinb.6 = Input Config Pinb.7 = Input Config Portd.6 = Output Mq9 Alias Portb.0 'Timer Led1 Alias Portb.1 Led2 Alias Portb.2 Rel1 Alias Portb.3 Buz Alias Portd.6 Config Adc = Single , Prescaler = Auto , Reference = Avcc Enable Adc 'adc Stop Adc Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5 Config Lcd = 16 * 2 Config Timer1 = Timer , Prescale = 8 Enable Ovf1 On Ovf1 __sound Stop Timer1 Config Timer2 = Timer , Async = On , Prescale = 128 'Timer On Timer2 Timer_1s 'Timer Enable Timer2 'Timer Enable Interrupts 'Timer Declare Sub _sound(byval Pulse_1_to_30000 As Word , Byval Period_50_to_60000_us As Word) Cursor Off Dim A As Word , B As Word , On_time As Word , Off_time As Word 'Timer A = 0 On_time = 1 'Timer - (Seconds) Off_time = 1 'Timer - (Seconds) Off_time = On_time + Off_time 'Timer - (On_time + Off_time) nabayad bozorgtar az 65535 shavad Dim W(10) As Word , I As Byte , Avrage As Word Dim K As Byte, Dim K1 As Byte Dim Mq9_1 As Word , Mq9_90 As Word , Mq9_60 As Word Dim Counter_pulses As Word , Pulses As Word , Period As Word Reset Rel1 Home Waitms 900 Cls Locate 1 , 2 Lcd "By" Locate 2 , 2 Lcd "Hamidelectronic" Wait 3 Home Cls Reset Mq9 Locate 1 , 4 Lcd "Please Wait" Locate 2 , 4 Lcd "Senssor Set" For K = 0 To 20 Step 1 Toggle Led1 Waitms 100 Toggle Led2 Next K Set Led1 Reset Led2 Setup2: Do For I = 1 To 10 Start Adc W(i) = Getadc(0) Stop Adc Avrage = Avrage + W(i) Waitms 30 Next I Avrage = Avrage / 10 Cls Locate 1 , 5 Lcd "CO2=" Locate 1 , 9 Lcd Avrage If Avrage > 350 Then Locate 2 , 4 Lcd "Danger Gas" Call _sound(100 , 50 ) Call _sound(100 , 100) Call _sound(100 , 150) Call _sound(100 , 200) Call _sound(100 , 250) Call _sound(100 , 250) Call _sound(100 , 250) Call _sound(100 , 300) Call _sound(100 , 350) Reset Led1 Toggle Led2 Set Rel1 Goto Setup2 Else Reset Led2 Set Led1 Locate 2 , 5 Lcd "Good Gas" Reset Rel1 End If Loop End Timer_1s: Incr A If A = On_time Then Reset Mq9 If A = Off_time Then Set Mq9 A = 0 End If Return __sound: Toggle Buz Tcnt1 = Period Incr Counter_pulses If Pulses = Counter_pulses Then Reset Buz Stop Timer1 End If Return Sub _sound(byval Pulse_1_to_30000 As Word , Byval Period_50_to_60000_us As Word) Stop Timer1 Period = Period_50_to_60000_us / 2 Period = 65535 - Period Pulses = Pulse_1_to_30000 + Pulse_1_to_30000 Counter_pulses = 0 Start Timer1 Do : Loop Until Tccr1b = 0 End Sub
پاسخ 2 :
خیر . نیازی نیست ... چون دارید کریستال ساعت کار میکنید و نمی خواهید کلاک سیستم را تامین کنید ...
فقط یه چیزی
CKSEL3-2-1-0
0-1-0-0
تنظیم کنید تا فرکانس میکرو روی 8 مگا هرتز تنظیم شود ...
سوالی بود در خدمتم
موفق باشید

=====================
یه چیزی یادم اومد
پایه های B.6 و B.7 رو بهتر است که ورودی در نظر بگیریم .
چون باید کریستال بهش وصل بشه !
دیدگاه