سلام یه درایور ساختم و میخوام با atmega8 مقدار دیوتی سایکل 0 تا 256 رو روی نمایشگر نشون بدم هر چقدر کلنجار رفتم نتونستم این برناممه
لطفا کمک کنید :angry:
توابع a0 تا a9 بر اساس نحوه نصب پایه های سون به میکرو نشاندهنده اعداد 0 تا 9 هستند و chap rast vasat هم هرکدام پایه مشترک و فعال کننده سون صدگان دهگان و یکان هستند
دیوتی سایکل با دکمه های بالا و پایین تغییر میکند
ضمنا مبتدی هم هستم :wow:
لطفا کمک کنید :angry:
توابع a0 تا a9 بر اساس نحوه نصب پایه های سون به میکرو نشاندهنده اعداد 0 تا 9 هستند و chap rast vasat هم هرکدام پایه مشترک و فعال کننده سون صدگان دهگان و یکان هستند
دیوتی سایکل با دکمه های بالا و پایین تغییر میکند
ضمنا مبتدی هم هستم :wow:
کد:
$regfile = "m8def.dat" $crystal = 1000000 ''''''''''''''''''''' PWM & adc''''''''''''''''''''' Ddrd.5 = 1 Ddrd.6 = 1 Ddrb.6 = 1 Ddrb.7 = 1 Ddrd.3 = 1 Ddrd.2 = 1 Ddrb.3 = 1 Ddrb.2 = 1 Ddrb.0 = 1 Ddrd.7 = 1 Ddrb.4 = 0 Ddrd.0 = 0 Ddrb.5 = 0 Chap Alias Portd.3 Vasat Alias Portd.2 Rast Alias Portb.6 Down Alias Pinb.5 Up Alias Pinb.4 First Alias Pind.0 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8 Config Timer0 = Timer , Prescale = 1024 Dim Pwm As Integer Dim T As Integer Declare Sub A1 Declare Sub A0 Declare Sub A2 Declare Sub A3 Declare Sub A4 Declare Sub A5 Declare Sub A6 Declare Sub A7 Declare Sub A8 Declare Sub A9 Do If Up = 1 Then If Pwm = 1023 Then Pwm = 1022 Pwm = Pwm + 1 Pwm1a = Pwm End If If Down = 1 Then If Pwm = 0 Then Pwm = 1 Pwm = Pwm - 1 Pwm1a = Pwm End If '''''''''''''''''''''''''''''''''''''''''''' T = Pwm / 200 If T = 0 Then Chap = 1 Call A0 Waitms 4 End If If T = 1 Then Chap = 1 Call A2 Waitms 4 End If '''''''''''''''''''''''''''''''''''''''''''''' T = Pwm Mod 100 T = T / 10 If T = 0 Then Vasat = 1 Call A0 Waitms 4 End If If T = 1 Then Vasat = 1 Call A1 Waitms 4 End If If T = 2 Then Vasat = 1 Call A2 Waitms 4 End If If T = 3 Then Vasat = 1 Call A3 Waitms 4 End If If T = 4 Then Vasat = 1 Call A4 Waitms 4 End If If T = 5 Then Vasat = 1 Call A5 Waitms 4 End If If T = 6 Then Vasat = 1 Call A6 Waitms 4 End If If T = 7 Then Vasat = 1 Call A7 Waitms 4 End If If T = 8 Then Vasat = 1 Call A8 Waitms 4 End If If T = 9 Then Vasat = 1 Call A9 Waitms 4 End If ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' T = Pwm Mod 10 If T = 0 Then Rast = 1 Call A0 Waitms 4 End If If T = 1 Then Rast = 1 Call A1 Waitms 4 End If If T = 2 Then Rast = 1 Call A2 Waitms 4 End If If T = 3 Then Rast = 1 Call A3 Waitms 4 End If If T = 4 Then Rast = 1 Call A4 Waitms 4 End If If T = 5 Then Rast = 1 Call A5 Waitms 4 End If If T = 6 Then Rast = 1 Call A6 Waitms 4 End If If T = 7 Then Rast = 1 Call A7 Waitms 4 End If If T = 8 Then Rast = 1 Call A8 Waitms 4 End If If T = 9 Then Rast = 1 Call A9 Waitms 4 End If ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Loop Sub A0 Portd.5 = 1 Portd.6 = 0 Portb.7 = 0 Portb.3 = 0 Portb.2 = 0 Portb.0 = 0 Portd.7 = 0 End Sub Sub A1 Portd.5 = 1 Portd.6 = 1 Portb.7 = 1 Portb.3 = 1 Portb.2 = 0 Portb.0 = 1 Portd.7 = 0 End Sub Sub A2 Portd.5 = 0 Portd.6 = 0 Portb.7 = 0 Portb.3 = 0 Portb.2 = 0 Portb.0 = 1 Portd.7 = 1 End Sub Sub A3 Portd.5 = 0 Portd.6 = 0 Portb.7 = 0 Portb.3 = 0 Portb.2 = 1 Portb.0 = 0 Portd.7 = 1 End Sub Sub A4 Portd.5 = 0 Portd.6 = 0 Portb.7 = 1 Portb.3 = 1 Portb.2 = 1 Portb.0 = 0 Portd.7 = 0 End Sub Sub A5 Portd.5 = 0 Portd.6 = 1 Portb.7 = 0 Portb.3 = 0 Portb.2 = 1 Portb.0 = 0 Portd.7 = 0 End Sub Sub A6 Portd.5 = 0 Portd.6 = 1 Portb.7 = 0 Portb.3 = 0 Portb.2 = 0 Portb.0 = 0 Portd.7 = 0 End Sub Sub A7 Portd.5 = 1 Portd.6 = 0 Portb.7 = 0 Portb.3 = 1 Portb.2 = 1 Portb.0 = 0 Portd.7 = 1 End Sub Sub A8 Portd.5 = 0 Portd.6 = 0 Portb.7 = 0 Portb.3 = 0 Portb.2 = 0 Portb.0 = 0 Portd.7 = 0 End Sub Sub A9 Portd.5 = 0 Portd.6 = 0 Portb.7 = 0 Portb.3 = 0 Portb.2 = 1 Portb.0 = 0 Portd.7 = 0 End Sub