۰۳-شهریور-۱۳۸۶, ۱۶:۲۹:۰۸
۰۴-شهریور-۱۳۸۶, ۰۹:۲۰:۲۷
نقشش رو هم می زاشتی من الان کتابشو ندارم ببینم درسته یا نه
۰۴-شهریور-۱۳۸۶, ۱۲:۱۹:۱۷
مدارو نتونستم بفرستم کل توضیحاتو از روی شکل نوشتم این مدار برای atmega16 و lcd 1*16است و باید از 0 تا 8Mhz را اندازه بگیرد
پایه 1 و 3 و5 LCD به زمین
پایه 2 LCD به مثبت
پایه 4 LCD به 24 میکرو
پایه 6 LCD به 25 میکرو
پایه 11 LCD به 26 میکرو
پایه 12 LCD به 27 میکرو
پایه 13 LCD به 28 میکرو
پایه 14 LCD به 29 میکرو
پایه 2 میکرو به فرکانس ورودی
گفتن درستش اینه که دو تا پایه زیر عوض بشه نمیدونم اصلا فرقی میکنه یا نه
پایه 4 LCD به 22 میکرو
پایه 6 LCD به 24 میکرو
در ضمن دو تا برنامه رو هم نوشتم که تنها تفاوتشون در پایه های بکار رفته میکرو است
برنامه 1
$regfile = “M32DEF.dat”
‘internal crystal 8000000
Config lcdpin = pin , Db4 = Pinc.4 , Db5 = Pinc.5 , Db6 = Pinc.6 , Db7 = pinc.7 , E = Pinc.3 , Rs = Pinc.2
Config Timer1 = Counter , Edge = Rising
Config Timer0 = Timer , Prescale = 1024
Enable Counter1
Enable Interrupts
Enable Timer0
Enable Timer1
On Ovf1 Pulsecount
On Ovf0 Ovf0occures
Dim A As Long , I As Long , B As Byte
B = 0
Cls
Start Timer0
Do
Loop
End ‘end program
Ovf0occures :
Incr I
If I > 30 Then
Stop Timer0
Cls : Home
A = B * 65536
A = A + Counter1
Lcd “FREQUENCY IS : “ ; A ; “HZ”
B = 0
I = 0 : Counter1 = 0
Start Timer0
End If
Return
Pulsecount :
Incr B
Counter1 = 0
Return
برنامه 2
$regfile = “M32DEF.dat”
‘internal crystal 8000000
Config Pinb.2 = Input
Config Portc = Output
Config Lcd = 16 * 1
Config Lcdpin = pin , Db4 = Pinc.4 , Db5 = Pinc.5 , Db6 = Pinc.6 , Db7 = pinc.7 , E = Pinc.2 , Rs = Pinc.0
Config Timer1 = Counter , Edge = Rising
Config Timer0 = Timer , Prescale = 1024
Enable Counter1
Enable Interrupts
Enable Timer0
Enable Timer1
On Ovf1 Pulsecount
On Ovf0 Ovf0occures
Dim A As Long , I As Long , B As Byte
B = 0
Cls
Start Timer0
Do
Loop
End
Ovf0occures :
Incr I
If I > 30 Then
Stop Timer0
Cls : Home
A = B * 65536
A = A + Counter1
Lcd “freq= “ ; A ; “hz”
B = 0
I = 0 : Counter1 = 0
Start Timer0
End If
Return
Pulsecount :
Incr B
Counter1 = 0
Return
فکر میکنید این مدار اصلا تا 8M رو اندازه بگیره :?:
پایه 1 و 3 و5 LCD به زمین
پایه 2 LCD به مثبت
پایه 4 LCD به 24 میکرو
پایه 6 LCD به 25 میکرو
پایه 11 LCD به 26 میکرو
پایه 12 LCD به 27 میکرو
پایه 13 LCD به 28 میکرو
پایه 14 LCD به 29 میکرو
پایه 2 میکرو به فرکانس ورودی
گفتن درستش اینه که دو تا پایه زیر عوض بشه نمیدونم اصلا فرقی میکنه یا نه
پایه 4 LCD به 22 میکرو
پایه 6 LCD به 24 میکرو
در ضمن دو تا برنامه رو هم نوشتم که تنها تفاوتشون در پایه های بکار رفته میکرو است
برنامه 1
$regfile = “M32DEF.dat”
‘internal crystal 8000000
Config lcdpin = pin , Db4 = Pinc.4 , Db5 = Pinc.5 , Db6 = Pinc.6 , Db7 = pinc.7 , E = Pinc.3 , Rs = Pinc.2
Config Timer1 = Counter , Edge = Rising
Config Timer0 = Timer , Prescale = 1024
Enable Counter1
Enable Interrupts
Enable Timer0
Enable Timer1
On Ovf1 Pulsecount
On Ovf0 Ovf0occures
Dim A As Long , I As Long , B As Byte
B = 0
Cls
Start Timer0
Do
Loop
End ‘end program
Ovf0occures :
Incr I
If I > 30 Then
Stop Timer0
Cls : Home
A = B * 65536
A = A + Counter1
Lcd “FREQUENCY IS : “ ; A ; “HZ”
B = 0
I = 0 : Counter1 = 0
Start Timer0
End If
Return
Pulsecount :
Incr B
Counter1 = 0
Return
برنامه 2
$regfile = “M32DEF.dat”
‘internal crystal 8000000
Config Pinb.2 = Input
Config Portc = Output
Config Lcd = 16 * 1
Config Lcdpin = pin , Db4 = Pinc.4 , Db5 = Pinc.5 , Db6 = Pinc.6 , Db7 = pinc.7 , E = Pinc.2 , Rs = Pinc.0
Config Timer1 = Counter , Edge = Rising
Config Timer0 = Timer , Prescale = 1024
Enable Counter1
Enable Interrupts
Enable Timer0
Enable Timer1
On Ovf1 Pulsecount
On Ovf0 Ovf0occures
Dim A As Long , I As Long , B As Byte
B = 0
Cls
Start Timer0
Do
Loop
End
Ovf0occures :
Incr I
If I > 30 Then
Stop Timer0
Cls : Home
A = B * 65536
A = A + Counter1
Lcd “freq= “ ; A ; “hz”
B = 0
I = 0 : Counter1 = 0
Start Timer0
End If
Return
Pulsecount :
Incr B
Counter1 = 0
Return
فکر میکنید این مدار اصلا تا 8M رو اندازه بگیره :?:
۰۵-شهریور-۱۳۸۶, ۰۹:۲۵:۱۶
نه فرقی نمی کنه احتما لا به خاطر jtag هست
atmage16 به صورت پیشفرض یه jtga داره که روی portc و فعال هم هست که اگه غیر فعالش نکنی دردسر درست می کنه
شما jtag رو غیر فعال کن مهم نیست
atmage16 به صورت پیشفرض یه jtga داره که روی portc و فعال هم هست که اگه غیر فعالش نکنی دردسر درست می کنه
شما jtag رو غیر فعال کن مهم نیست
۰۵-شهریور-۱۳۸۶, ۱۸:۲۵:۵۲
ممنون از این که وقت میذارید
راستش من زیاد از میکرو اطلاعات ندارم واسه همین زیاد سر در نیاوردم :oops:
این طور که فهمیدم هر دو این برنامه ها درسته
فقط میخوام بدونم که تا 8M رو اندازه میگیره یا نه
بازم ممنون
راستش من زیاد از میکرو اطلاعات ندارم واسه همین زیاد سر در نیاوردم :oops:
این طور که فهمیدم هر دو این برنامه ها درسته
فقط میخوام بدونم که تا 8M رو اندازه میگیره یا نه
بازم ممنون
۰۶-شهریور-۱۳۸۶, ۰۷:۱۰:۵۴
salam
dooste aziz mage clke khode mikro che qhadre ke bekhad 8M ro andaze begire?shoma too AVR ha hadde aksar mitoonid 16M be mikro bedid.pas be hich vajh qhader be andaze girie 8M nakhahad bood.
Ba kamale sepas
S.Mahdizadeh
dooste aziz mage clke khode mikro che qhadre ke bekhad 8M ro andaze begire?shoma too AVR ha hadde aksar mitoonid 16M be mikro bedid.pas be hich vajh qhader be andaze girie 8M nakhahad bood.
Ba kamale sepas
S.Mahdizadeh
۰۷-شهریور-۱۳۸۶, ۲۳:۱۷:۲۷
درسته که گفتم اطلاعاتم کمه :evil: ولی این برنامه رو از کتاب کاهه نوشتم شما از ایشون بیشتر میدونی :!: :?:
۰۸-شهریور-۱۳۸۶, ۰۶:۵۷:۱۷
salam
man ke chizi nagoftam.shoma hey raje be 8M miporsi manam goftam ke nemitone
Ba kamale sepas
S.Mahdizadeh
man ke chizi nagoftam.shoma hey raje be 8M miporsi manam goftam ke nemitone
Ba kamale sepas
S.Mahdizadeh
۰۸-شهریور-۱۳۸۶, ۱۰:۲۵:۱۷
منم فکر کنم نمی شه می تونی امتحان کنی
۰۹-مهر-۱۳۸۶, ۱۶:۴۴:۳۱
سلام دوستان
من نیاز به یک فرکانس متر دقیق با AVR دارم که از 0 تا 500 khz رو با حداقل دقت 1 HZ اندازه بگیره یه برنامه هم نوشتم در فرکانسهای پایین دقتش خوبه ولی وقتی به چند کیلو هرتز می رسه(مثلاً100KHZ) خطای آن 5 الي 10هرتز میشه در حالی که من می خوام خیلی دقیق باشهو دقيقاً در بدترين حالت با زمان نمونه گيري 1 ثانيه حد اكثر 1 هرتز خطا داشته باشه.
لينك برنمه به زبانC & Basic و شبيه سازي آن تحت پرتئوس هست.
http://www.4shared.com/dir/4049638/41a14...aring.html
اگر هم با avr نميشه به اين دقت رسيد بايد چيكار كنم راه ديگه هست؟
خيلي ممنون از كمكتون
خدا حافظ.
من نیاز به یک فرکانس متر دقیق با AVR دارم که از 0 تا 500 khz رو با حداقل دقت 1 HZ اندازه بگیره یه برنامه هم نوشتم در فرکانسهای پایین دقتش خوبه ولی وقتی به چند کیلو هرتز می رسه(مثلاً100KHZ) خطای آن 5 الي 10هرتز میشه در حالی که من می خوام خیلی دقیق باشهو دقيقاً در بدترين حالت با زمان نمونه گيري 1 ثانيه حد اكثر 1 هرتز خطا داشته باشه.
لينك برنمه به زبانC & Basic و شبيه سازي آن تحت پرتئوس هست.
http://www.4shared.com/dir/4049638/41a14...aring.html
اگر هم با avr نميشه به اين دقت رسيد بايد چيكار كنم راه ديگه هست؟
خيلي ممنون از كمكتون
خدا حافظ.
۱۰-مهر-۱۳۸۶, ۰۹:۱۰:۲۰
دقت رو به صورت در صد از کل تغریف می کنن مال شما می شه 500000/(1*100) که دقت بالایی هست این که می گی توی فرکانس پایین خوب جواب می ده مال اینه که خطا به 1 هرتز نمی رسه که ببینی
و برای اون دقت شما به کریستالی با دقت بیشتر نیاز داری که معمولا پیدا کردنش سخته و برنامه هم باید با کانتر های خود avr نوشته شده باشه تا درست جواب بده یکی توی سایت هست دقتش هم خیلی خوبه خودم نوشتم می تونی از اون استفاده کنی
و برای اون دقت شما به کریستالی با دقت بیشتر نیاز داری که معمولا پیدا کردنش سخته و برنامه هم باید با کانتر های خود avr نوشته شده باشه تا درست جواب بده یکی توی سایت هست دقتش هم خیلی خوبه خودم نوشتم می تونی از اون استفاده کنی