ايران ويج

نسخه‌ی کامل: مشکل با ATMEGA16
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام دوستان
من درکاربامیکرو دوتا مشکل دارم اگرممکنه لطف کنید وبهم یاد بدید...

1.اول اینکه وقتی میخوام میکرو روباکریستال خارجی راه بندازم باید توی پروگرامرم کدوم گذینه روانتخاب کنم کریستالمم 8MZ هست.اینم ازعکس های گزینه هام:

[تصویر:  prog.PNG]

[تصویر:  prog%202.PNG]

[تصویر:  prog%203.PNG]

[تصویر:  prog%204.PNG]

2.مشکل بعدیم اینه که دوتا پایه های 24 و 25 ای سی همیشه ولتاژ4.5 روسرشونه ونمیشه بابرنامه کنترلشون کرد حتی وقتی ای سی هیچ برنامه ای روش نیست وفقط تغذیشو وصل کردم این دوتا پایه ها ولتاژدارم
درود خداوند بر شما بادBiggrin
نقل قول: 1.اول اینکه وقتی میخوام میکرو روباکریستال خارجی راه بندازم باید توی پروگرامرم کدوم گذینه روانتخاب کنم کریستالمم 8MZ هست.اینم ازعکس های گزینه هام:
هر کدوم از اونایی که 8مگا هرتز اولشونه انتخاب کن.
نقل قول: 2.مشکل بعدیم اینه که دوتا پایه های 24 و 25 ای سی همیشه ولتاژ4.5 روسرشونه ونمیشه بابرنامه کنترلشون کرد حتی وقتی ای سی هیچ برنامه ای روش نیست وفقط تغذیشو وصل کردم این دوتا پایه ها ولتاژدارم
اگه از بیسکام(بسکام) استفاده میکنی این کد رو به اول برنامه(بعد از انتخاب مقدار کریستال)اضافه کن ببین درست میشه یا نه:
کد:
Ddrc = &H06
اگه از کدویژن استفاده میکنی این کد رو درون تابع main اضافه کن ببین درست میشه یا نه:
کد:
DDRC=0x06;
موفق باشی...
ممنون ازراهنماییتون ولی مشکل دومم حل نشد..اخه برچاپی زدم واگرازاین دوتاپایه نتونم استفاده کنم کارم خیلی سخت میشه..راه حل دیگه ای به نظرتون میرسه ؟میشه عیب ازای سی باشه یا نه؟
نه از آی سی نیس.
من فک کنم شما برنامه ای که نوشتی از کامپایلر بیسکام(بسکام)استفاده کردی.
درسته؟
اگه برنامه ای که نوشتی رو اینجا قرار بدی + فایل شبیه ساز شاید بتونم درستش کنم.
بله با سکام نوشتم برناممو میذارم...منظورت ازشبیه ساز چیه؟
اینم برنامم
کد php:
$regfile "M16def.dat"
$crystal 8000000
'$sim

Config Lcdbus = 4
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pind.4 , Db5 = Pind.3 , Db6 = Pind.2
Config Lcdpin = Pin , Db7 = Pind.1 , Rs = Pind.6 , E = Pind.5
Lcdcontrast 3
Cursor Off


Enable Interrupts
Enable Timer1
Enable Ovf1
Stop Timer1
On Ovf1 Sar_riz
Config Timer1 = Timer , Prescale = 8
'
----------------------------------------------------------------
Dim W As Word Limitbit As Bit Fas As Word
Timer1 
0
'-----------------------------------------------------------------
Config Porta.7 = Output
Config Porta.6 = Output
Config Portc.7 = Output
Config Portc.6 = Output
Config Porta.3 = Output
Config Pina.1 = Input
En_ Alias Porta.3
Echo_ Alias Pina.1
Porta.1 = 1
En_ = 1
'
-------------------------------------------------------------------
Main:
 Do
 
Gosub Ultra_f
 
If Fas 15 Then
 Gosub Front
 
Else
 
Gosub Ri
 End 
If

 
Waitms 160
 Loop

Ultra_f
:
 
Limitbit 0
 En_ 
1
 Timer1 
0
 Start Timer1
 Waitus 160
 En_ 
0
 Waitus 500

 
While Echo_ 1
 
If Limitbit 1 Then
 Stop Timer1
 Limitbit 
0
 End 
If
 
Wend

 Stop Timer1
 W 
Timer1
 Fas 
65
 Cls
 Locate 1 
8
 Lcd Fas
 
Return
 
End

Sar_riz
:
 
Stop Timer1
 Timer1 
0
 Limitbit 
1
 Start Timer1
 
Return




Return

Front:
Porta.7 0
Porta.6 
1
Portc.7 
0
Portc.6 
1
Waitms 500
Return



Ri:
Porta.7 0
Porta.6 
0
Portc.7 
0
Portc.6 
0
Waitms 700
Porta.7 
1
Porta.6 
0
Portc.7 
0
Portc.6 
1
Waitms 500
Goto Main 
ببین مدار من طوریه که این پایه ها ولتاژروشون هست واین ولتاژباید باشه چون مربوط به کارم با ماژول التراسونیکه درواقع من با همین ولتاژها کارمیکنم اوناروخاموش روشن میکنم تا بتونم پایه های سنسورمو خاموش وروشن کنم وفاصله روببینم..به پورتهای دیگه میزنم جواب میده وکارمیکنه ولی به این که میزنم نمیتونم این پایه هاروکنترل کنم..میخواستم بینم که اگرراهی هست دیگه توی بردم دست نبرم اگرم نشد که اخرش مجبورم...ممکنه نرم افزارم خراب باشه؟

راستی تنهاجایی که فیوزبیتم فرق داره بادیفالتش مربوط به اسیلاتورداخلیه ای سی هستش....اخه با داخلی کارمیکنم
پایه هایی که ولتاژروسرشونه اینا هستن
9-24-25-27-وبعضی وقتا روی سر 29 وبعضی وقتا روی 30


ببین الترا سونیک من یه پایه ی فعال سازی داره یه پایه ی خروجی که موج رودریافت میکنم من 160 میکروثانیه یکبارباید پایه ی فعال سازی رو یک و صفرمنتطقی بهش بدم تا سنسورم پالسشو بفرسته بعد پایه ی پالس خروجی سنسورم به یکی دیگه ازپایه های میکروم وصل میشه ومنتظرمیمونه تا این پایه 1 منطقی بشه بعد تایمرخاموش میشه وزمان محاسبه میشه وطبق یه سری فرمول تبدیل به فاصله میشه حالا من نمیتونم این دوتا پایه ی ای سی روکنترل کنم پی پایه فعال سازمن همیشه 1 منطقی هست وصفرنمیشه پس تایمرم به درستی کارنمیکنه چون پایه ی خروجی سنسورمم همیشه 1 هست وتایمربه اشتباه میوفته حالا خود ماژولم یه ولتاژی روی پایه ی فعال سازیش وپایه ی خروجیش میندازه میگم باپرتهای دیگه ی ای سی مشکل ندارم با این چنتا که گفتم مشکل دارم وکنترل نمیشن

انداختم با 3 تا میکروامتحان کردم همشون این پایه هاش 1 هستن
پایه 9 ریست هست خود میکرو پول اپ میکنه
30 هم ماله انالوگ به دیجیتال هست که خوب مشکلی نیست ولتاژ باشه
بقیه که گفتید پایه ها ی jtag هست و اگر در هنگام پروگرام میکرو Jtag رو غیر فعال نکنید(فیوزبیت مربوطه) هیچ کنترلی روی اون ها نمی تونید داشته باشید و ولتاژ دارند
در حالت پیش فرض هم فعال هستند با پاک کردن میکرو و یا قرار دادن پروگرامر در پیش فرض حل نمیشه باید دستی غیر فعالش کنید

اقای h.unique نکنه با jtag فعال مقام هارو جارو کردید Biggrin
نکنه سنسور هارو هم به همین پایه ها داده بودید
(شوخی کردم بنده خدا خوب گیج شد دیگهBiggrin)
از هردوی دوستان متشکرم که راهنماییم کردن ولی یه چیزی طبق گفته ی اقای behzady جوردرنمیاد..من دیفالت فیوزبیت هام به صورت عکس زیرهست وjtag توشون غیرفعاله ولی جالب اینجاس من وقتی فعالش کردم الان ولتاژ 1.6 روی سراون پایه ها میوفته...جریان چیه؟
[تصویر:  fuse.PNG]
تو فیوز بیت ها 1 به معنی غیر فعال و 0 به معنی فعال بودن هست
اکی خیلی ممنون
واقعا کمک بزرگی بهم کردید
ازهردوتون ممنونم
صفحه‌ها: 1 2