سلام.من یک ultra sonic range meter طراحی کردم که فرستده اون به portb.0 ,portb.1 وصل هست که با فرکانس 40khz قطع و وصل میشه و سرجمع 10vp-p دو سر اون هست.بعد هم در گیرنده پس از چند طبقه تقویت gain=400 به int0 دادم ولی در عمل جواب نمیده مینویسه out of range
یعنی پالسی دریافت نشده حالا شما بگید مشکل کار من کجاست ایا atmega8 اون قدر جون داره که sensor ro راه بندازه.
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.3
Dim X As Word , Distance As Word
Config Portb = Output
Config Pind.2 = Input
Config Timer1 = Timer , Prescale = 1
Enable Interrupts
Enable Timer1
Enable Ovf1
On Ovf1 Overflouritng
Config Int0 = Rising
Enable Int0
On Int0 Show Nosave
Portb = 0
One:
Start Timer1
First:
Do
Portb = &B00000001
Waitus 12.375
Portb = &B00000010
Waitus 12.375
Loop
End
Show:
Stop Timer1
X = Timer1
Distance = X
Distance = X / 8
Distance = 350 * Distance
Distance = Distance * 100
Distance = Distance / 2
Cls
Home
Lcd Distance ; " " ; "cm"
Timer1 = 0
Waitms 500
Start Timer1
Return
Overflouritng:
Stop Timer1
Timer1 = 0
Cls
Home
Lcd "out of range"
Waitms 400
Start Timer1
Return
یعنی پالسی دریافت نشده حالا شما بگید مشکل کار من کجاست ایا atmega8 اون قدر جون داره که sensor ro راه بندازه.
$regfile = "m8def.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.1 , Rs = Portd.3
Dim X As Word , Distance As Word
Config Portb = Output
Config Pind.2 = Input
Config Timer1 = Timer , Prescale = 1
Enable Interrupts
Enable Timer1
Enable Ovf1
On Ovf1 Overflouritng
Config Int0 = Rising
Enable Int0
On Int0 Show Nosave
Portb = 0
One:
Start Timer1
First:
Do
Portb = &B00000001
Waitus 12.375
Portb = &B00000010
Waitus 12.375
Loop
End
Show:
Stop Timer1
X = Timer1
Distance = X
Distance = X / 8
Distance = 350 * Distance
Distance = Distance * 100
Distance = Distance / 2
Cls
Home
Lcd Distance ; " " ; "cm"
Timer1 = 0
Waitms 500
Start Timer1
Return
Overflouritng:
Stop Timer1
Timer1 = 0
Cls
Home
Lcd "out of range"
Waitms 400
Start Timer1
Return
دیدگاه