ايران ويج

نسخه‌ی کامل: ساخت ساعت با AVR
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3
باسلام
بنده یه پیشنهاد ساده برای رفع خطا دارم
شما می تونید فرکانس کریستال رو با یه فرکانس متر اندازه بگیرید
وخطای بدست اومده رو در برنامه وارد کنی
ولی خوب دیگه یه فرکانس متر لازمه :wink:
ما این کار رو برای کریستال 32768 تو rtc استفاده میکردیم
و خطا رو کاهش می دادیم
این هم کمی کمک می کنه اون خازن های کنار کریستال رو هم اگه یکیش متغیر باشه می شه یکم مقدار فرکانس رو عوض کرد ولی خطای متغیر هم داریم که مثلا بستگی به دما داره اونو کاریش نمی شه کرد
etrmodern نوشته است:با سلام خدمت دوستان محترم

من نیاز به یک برنامه ساده ی ساعت با پیکره بندی confog clock=soft,gosub=sectic دارم.

یک برنامه پیدا کردم اما بعضی از جاهای برنامه رو سر در نمیارم :

کد:
$regfile = "M8def.dat"
$crystal = 8000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , _
Db7 = Portc.3 , Rs = Portc.4 , E = Portc.5
Cls
Cursor Off

Config Clock = Soft , Gosub = Sectic
Disable Interrupts

Config Portd = &B00000111

Dim S As Byte , Mi As Byte , H As Byte , Y As Word , Mo As Byte , D As Byte , _
Slc As Byte , Flag As Bit

Declare Sub First
Declare Sub Second

Slc = 0 : Y = 1385 : Mo = 1 : D = 1 : S = 0 : Mi = 0 : H = 12 : Flag = 0
'*************************************************************************
Scan:
   If Pind.0 = 1 Then Incr Slc
     If Slc = 5 Then Slc = 0
   If Pind.2 = 1 Then
     Flag = 0
     Goto Waitls
   End If
   On Slc Goto Hour , Minute , Year , Month , Day
   Goto Scan
'*************************************************************************
Waitls:
   Enable Interrupts
   Do
     If Pind.0 = 1 Then
       Flag = 1
       Goto Scan
     End If
   Loop
'*************************************************************************
Sectic:
   If Flag = 0 Then Gosub Show
   Incr S
   If S > 59 Then
     S = 0
     Incr Mi
     Locate 1 , 14
     Lcd "   "
     If Mi > 59 Then
       Mi = 0
       Incr H
       If H > 23 Then
         H = 1
         Incr D
       End If
     End If
   End If
   If Mo < 7 Then Call First
   If Mo => 7 Then Call Second

   Return
'*************************************************************************
Show:
   Cursor Off
   Cls
   Lcd "Date  " ; Y ; "/" ; Mo ; "/" ; D
   Lowerline
   Lcd "Time  " ; H ; ":" ; Mi ; ":" ; S
   Return
End                                                         'end program


'=========================================================================
'=========================================================================


Hour:
   If Pind.1 = 1 Then Incr H
     If H => 24 Then H = 0
   Lcd "Hour: " ; H
   Waitms 400
   Cls
   Goto Scan
'-------------------------------------------------------------------------
Minute:
   If Pind.1 = 1 Then Incr Mi
     If H => 60 Then Mi = 0
   Lcd "Minute: " ; Mi
   Waitms 400
   Cls
   Goto Scan
'-------------------------------------------------------------------------
Year:
   If Pind.1 = 1 Then Incr Y
   If Y = 1400 Then Y = 1385
   Lcd "Year: " ; Y
   Waitms 400
   Cls
   Goto Scan
'-------------------------------------------------------------------------
Month:
   If Pind.1 = 1 Then Incr Mo
   If Mo = 13 Then Mo = 1
   Lcd "Mount: " ; Mo
   Waitms 400
   Cls
   Goto Scan
'-------------------------------------------------------------------------
Day:
   If Pind.1 = 1 Then Incr D
   If D = 32 Then D = 1
   Lcd "Day: " ; D
   Waitms 400
   Cls
   Goto Scan
'_________________________________________________________________________

Sub First:
   If D > 31 Then
     D = 1
     Incr Mo
   End If
End Sub First

Sub Second:
   If D > 30 Then
     D = 1
     Incr Mo
     If Mo > 12 Then
       Mo = 1
       Incr Y
     End If
   End If
End Sub Second

وقتی با بسکام شبیه سازیش می کنم همیشه تو زیر برنامه ی scan باقی می ماند!!
مثلاً با شروع برنامه نمی دونم چطور به برنامه sectic وارد می شود؟

پیشاپیش از راهنماییتون ممنونم

با سلام به دوستان
من این برنامه رو تو بیسکام 1.11.8.3. و 1.11.8.7 می خوام کامپایل کنم اما نمی ش و از خط برنامه که شامل Config Clock = Soft است خطای Unknown Interrupt Source[count <> 3] رو می گیره لطفا من رو راهنمای کنید
:( :cry:
سلام دوستان...(سال نو و 13 بدرتون مبارک)
من با بسکام 1.11.9.0 کامپایل کردم هیچ errori نداد
پس در نتیجه از بسکامتونه!
من لینک بسکام 1.11.9.0 رو میذارم اینجا هرکی خواست برداره...نوش جانتان Biggrin
http://www.4shared.com/file/38673422/416...0.html?s=1
از etrmodern هم ممنون!
بای 8)
صفحه‌ها: 1 2 3