مهندسین عزیز و دوستان گرامی
با سلام
من چند روزی هستش که نیاز به تولید پالس مربعی با میکرو و بسکام با قابلیت تغببر فرکانس و تغییر دوره کارکرد دارم و هر چی بررسی کردم به راه بیشتر نداره ... در واقع میخوام فرکانس بین 10 کیلو تا 16 کیلو تغییر کنه و تنها راهی که بهش رسیدم ساخت پالس با فرکانس 10 برابر و سپس تقسیم بر 10 کردن و دادن دوره کارکرد در قالب این 10 قسمت هستش ولی نمیدونم پرا فرکانس 160 کیلو تولید نمیشه !!!
:angry: :angry: :angry: :angry:
ممنون میشن یه دستی برسونین
$regfile = "m8def.dat"
$crystal = 1000000
Config Portc = Input
Config Portb.0 = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.1 , Rs = Portd.0
Cursor Off
Config Timer0 = Timer , Prescale = 1
Dim A As Word , B As Word , O As Byte
Dim H As Word , M As Word , N As Byte
Enable Interrupts
Enable Timer0
Enable Ovf0
On Ovf0 Time0
H = 0
B = 0
Set Portb.0
A = 255
N = 5
O = 10 - N
Timer0 = A
Main:
Do
If Pinc.0 = 1 And Pinc.1 = 1 And Pinc.2 = 1 And Pinc.3 = 1 Then Goto Stop1
Debounce Pinc.0 , 1 , Freq1
Debounce Pinc.1 , 1 , Freq0
Debounce Pinc.2 , 1 , Amp1
Debounce Pinc.3 , 1 , Amp0
Locate 1 , 1 : Lcd A : Lcd " "
Locate 2 , 1 : Lcd N : Lcd " "
Loop
Stop1:
N = 0
Goto Main
Freq1:
A = A + 5
Goto Main
Freq0:
A = A - 5
Goto Main
Amp1:
If N = 9 Then Goto Main
N = N + 1
O = 10 - N
Goto Main
Amp0:
If N = 1 Then Goto Main
N = N - 1
O = 10 - N
Goto Main
Time0:
If H = N And B = 0 Then
Reset Portb.0
B = 1
H = 0
Elseif H = O And B = 1 Then
Set Portb.0
B = 0
H = 0
End If
'Toggle Portb.0
Timer0 = A
Incr H
Return
End 'end program
با سلام
من چند روزی هستش که نیاز به تولید پالس مربعی با میکرو و بسکام با قابلیت تغببر فرکانس و تغییر دوره کارکرد دارم و هر چی بررسی کردم به راه بیشتر نداره ... در واقع میخوام فرکانس بین 10 کیلو تا 16 کیلو تغییر کنه و تنها راهی که بهش رسیدم ساخت پالس با فرکانس 10 برابر و سپس تقسیم بر 10 کردن و دادن دوره کارکرد در قالب این 10 قسمت هستش ولی نمیدونم پرا فرکانس 160 کیلو تولید نمیشه !!!
:angry: :angry: :angry: :angry:
ممنون میشن یه دستی برسونین
$regfile = "m8def.dat"
$crystal = 1000000
Config Portc = Input
Config Portb.0 = Output
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.1 , Rs = Portd.0
Cursor Off
Config Timer0 = Timer , Prescale = 1
Dim A As Word , B As Word , O As Byte
Dim H As Word , M As Word , N As Byte
Enable Interrupts
Enable Timer0
Enable Ovf0
On Ovf0 Time0
H = 0
B = 0
Set Portb.0
A = 255
N = 5
O = 10 - N
Timer0 = A
Main:
Do
If Pinc.0 = 1 And Pinc.1 = 1 And Pinc.2 = 1 And Pinc.3 = 1 Then Goto Stop1
Debounce Pinc.0 , 1 , Freq1
Debounce Pinc.1 , 1 , Freq0
Debounce Pinc.2 , 1 , Amp1
Debounce Pinc.3 , 1 , Amp0
Locate 1 , 1 : Lcd A : Lcd " "
Locate 2 , 1 : Lcd N : Lcd " "
Loop
Stop1:
N = 0
Goto Main
Freq1:
A = A + 5
Goto Main
Freq0:
A = A - 5
Goto Main
Amp1:
If N = 9 Then Goto Main
N = N + 1
O = 10 - N
Goto Main
Amp0:
If N = 1 Then Goto Main
N = N - 1
O = 10 - N
Goto Main
Time0:
If H = N And B = 0 Then
Reset Portb.0
B = 1
H = 0
Elseif H = O And B = 1 Then
Set Portb.0
B = 0
H = 0
End If
'Toggle Portb.0
Timer0 = A
Incr H
Return
End 'end program
دیدگاه