ايران ويج

نسخه‌ی کامل: كليد تايمردار
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
باسلام
مداري ميخام طراحي كنم كه با فشار دادن شاستي يك خروجي 1 بشه و با نگه داشتن حدود 2ثانيه شاستي، همون خروجي براي 20 ثانيه 1 بشه و با نگه داشتن شاستي حدود 4ثانيه همون خروجي 0 بشه.
اين برنامه را نوشتم ولي مشكل داره، لطفا راهنمايي كنيد.ممنون
ميكرو tiny 25 , فركانس8000000
کد php:
Config Timer0 Timer Prescale 1024
Config Pinb.1 
Input
Config Pinb.2 
Output

Dim A 
As Byte
Dim B 
As Word
On Timer0 1
0
:
Do
If 
Pinb.1 1 Then
Set Portb.2
Waitms 1000
If Pinb.1 1 Then
Enable Interrupts
Enable Timer0
Start Timer0

If Pinb.1 1 Then
Waitms 4000
If Pinb.1 1 Then
Stop Timer0
Reset Portb.2
0
Timer0 
0
End 
If
End If
End If
End If
Loop

Return
End


1
:
Set Portb.2
Incr A
If 20 Then
Stop Timer0
Reset Portb.2
0
Timer0 
0
Goto 0
End 
If 
سلام
بفرمائید.
با سلام
ممنون از برنامتون
ولي اين برنامه مشكل داره .يعني يكبار كه روشن خاموش شد،ديگه كار نميكنه، يا اگه شاستي را نگه داريم شروع به چشمك زدن مي كنه
البته من ميخام با تايمر اين كار را بكنم
ممنون
سلام
يه برنامه ديگه نوشتم،ولي مشكلي كه داره اينه كه موقعي كه خروجي بايد دائم يك باشه؛عملا چشمك ميزنه(0 و 1 ميشه)
اساس برنامم اينه:با يكبار فشار شاسي،خروجي 1- با دوباره فشارشاسي، خروجي 0- با سه بارفشار شاسي،خروجي تا اتمام تايمر 1 ميشه
ميكرو tiny 25 , فركانس8000000
کد php:
Config Timer0 Timer Prescale 1024
Config Pinb.1 
Input
Config Pinb.2 
Output

Dim A 
As Byte
Dim B 
As Byte
On Timer0 1

Do
If 
Pinb.1 1 Then
Waitms 50
Incr B
If 4 Then
0
End 
If
End If

If 
1 Then
Set Pinb.2
Waitms 50
End 
If
If 
2 Then
Reset Portb.2
Waitms 50
End 
If
If 
3 Then
Enable Interrupts
Enable Timer0
Start Timer0
End 
If
loop
Return


1:
Set Portb.2
Incr A
If 10 Then
Stop Timer0
Reset Portb.2
0
Timer0 
0
End 
If
Return