سلام
نمی دونم دیگه چی کار کنم. فکر نمیکردم روزی تو این مسئله گیر کنم.ولی باور کنید کار نکرد.فکر نکنم از این راحتتر باشه.ولی ادم وقتی لجش میگیره کار نکنه :angry:کریستال داخلی 8 مگ.فیوز بیتو تغییر دادم.تایمر صفر مدنظره.حالا چون 40کیلو هرتزه پس زمان تناوب میشه 25 میکرو.تقسیم کلاک تایمر یکه.حالا باید 12.5 میکرو یک باشه و 12.5 میکرو صفر.حالا برای اینکه 12.5 میکرو رو تایمر بسازه باید تو فرکانس 8 مگ دقیقا 100 تا بشمره.(گل گفتم :applause
مثل اونچه که تو همه ی کتابها نوشته شده و ده تا مدار رو این طوری راه انداختم.یعنی میشه 8M/100 و چون در 2 ضرب میشه فرکانس میشه 40KHZ .برنامه هم که زیر گذاشتم.اساتید با تجربه کمک کنید.جالبه که این برنامه هم تو پروتئوس و هم با اسکوپ واقعی فرکانس 25KHZ نشون داد.پس حتما اشتباه از منه.دوستان کمک.پیشاپیش ممنون
نمی دونم دیگه چی کار کنم. فکر نمیکردم روزی تو این مسئله گیر کنم.ولی باور کنید کار نکرد.فکر نکنم از این راحتتر باشه.ولی ادم وقتی لجش میگیره کار نکنه :angry:کریستال داخلی 8 مگ.فیوز بیتو تغییر دادم.تایمر صفر مدنظره.حالا چون 40کیلو هرتزه پس زمان تناوب میشه 25 میکرو.تقسیم کلاک تایمر یکه.حالا باید 12.5 میکرو یک باشه و 12.5 میکرو صفر.حالا برای اینکه 12.5 میکرو رو تایمر بسازه باید تو فرکانس 8 مگ دقیقا 100 تا بشمره.(گل گفتم :applause
مثل اونچه که تو همه ی کتابها نوشته شده و ده تا مدار رو این طوری راه انداختم.یعنی میشه 8M/100 و چون در 2 ضرب میشه فرکانس میشه 40KHZ .برنامه هم که زیر گذاشتم.اساتید با تجربه کمک کنید.جالبه که این برنامه هم تو پروتئوس و هم با اسکوپ واقعی فرکانس 25KHZ نشون داد.پس حتما اشتباه از منه.دوستان کمک.پیشاپیش ممنون$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = Output
Config Timer0 = Timer , Prescale = 1
Stop Timer0
Enable Interrupts
Enable Timer0
On Timer0 Freq
Timer0 = 156
Start Timer0
Do
Loop
Freq:
Stop Timer0
Toggle Portd.0
Timer0 = 156
Start Timer0
Return
$crystal = 8000000
Config Portd = Output
Config Timer0 = Timer , Prescale = 1
Stop Timer0
Enable Interrupts
Enable Timer0
On Timer0 Freq
Timer0 = 156
Start Timer0
Do
Loop
Freq:
Stop Timer0
Toggle Portd.0
Timer0 = 156
Start Timer0
Return








هم تو عملی با اسکوپ واقعی و هم با پروتئوس.تازه اگه بخواهیم زمان دستورات داخل وقفه رو هم حساب کنیم ته تهش بشه 16 دستور .چون فرکانس کلاک 8مگه پس زمان اجرای هر کد 8/1 میکرو ثانیه است که ضرب در 16 میشه تاخیر دو میکرو ثانیه که یعنی زمان تناوب سیگنال ما 4میکرو زیاد میشه که یعنی باید بشه 29 میکرو که میشه فرکانسی در حدود34 کیلو هرتز در حالی که من 25 کیلو در اوردم.خیلی دوست داشتم حرف شما صحت داشت ولی چه کنم بزرگوار.غم من اینکه رو کاغذ همه چی حتی با بالا پایین کردن اعداد باید کار کنه اما چه توو عمل وبدتر از اون چه تو پروتئوس :cry2:من در کل شکم به کریستال داخلی 8مگه هر چند تو دیتا شیت نوشته کالیبره شده.اگه اسکوپ داشتم کریستال خارجی 16 مگ میزدم که دیگه خیال خودم و مهندس فریدو از تاخیر تو اجرای دستورات راحت کنم.من این رو هم بگم که این کارو هم یکی از دوستام با اتمگا 8 کرد و برنامه شو هم خودش نوشت(هرچند فرقی جز تایمر ها با هم نداشتند)ایا کسی با کریستال 8مگ داخلی کار کرده؟ایا واقعا اینا هشت مگ میدن ؟من راه دیگه ای جز گیر دادن به اسیلاتور داخلیrc هشت مگ ندارم. راستی مهندس فرید بازم ممنون از جوابت در مورد ctc یه توضیح بده.دست همه بچه ها هم درد نکنه

اگه این کار رو بکنی حتی می تونی پلاستیک رو هم بزنی :icon_razz:


دیدگاه