Hola tengo un código realizado en lenguaje Basic... para Micros AVR
Mi problema es que no entiendo muy bien lo que hace , y como se me hace difícil grabar un atmega8, que es el micro para el que esta hecho el programa, quisiera poder pasarlo a lenguaje de pic, para poder programar y probar más fácilmente.
Aunque en pic tengo muy poca experiencia en C, y creo que es factible cambiarlo a este lenguaje.
Espero sus aportaciones para entender y traducir este programa
$regfile = "m8def.dat"
$crystal = 1000000
Config Int0 = Rising
On Int0 Int0_isr
Config Timer0 = Timer , Prescale = 64
On Ovf0 Tim0_isr
Stop Timer0
Ddrb = 15 : Portb = 240
Ddrd.2 = 0 : Portd.2 = 1
Triac Alias Portb.0
P1 Alias Pinb.4
P2 Alias Pinb.5
P3 Alias Pinb.6
Dim Val_timer0 As Byte
Val_timer0 = 250
Reset Triac
Do
Bitwait P1 , Reset
Bitwait P1 , Set
Stop Timer0
Enable Int0
Enable Timer0
Enable Interrupts
Do
If P2 = 0 Then
Waitms 200
Val_timer0 = Val_timer0 + 5
If Val_timer0 > 250 Then
Val_timer0 = 250
End If
End If
If P3 = 0 Then
Waitms 200
Val_timer0 = Val_timer0 - 5
If Val_timer0 < 125 Then
Val_timer0 = 125
End If
End If
Loop Until P1 = 0
Disable Int0
Disable Timer0
Disable Interrupts
Bitwait P1 , Set
Loop
End
Int0_isr:
Reset Triac
Timer0 = Val_timer0
Start Timer0
Return
Tim0_isr:
Set Triac
Stop Timer0
Return
Mi problema es que no entiendo muy bien lo que hace , y como se me hace difícil grabar un atmega8, que es el micro para el que esta hecho el programa, quisiera poder pasarlo a lenguaje de pic, para poder programar y probar más fácilmente.
Aunque en pic tengo muy poca experiencia en C, y creo que es factible cambiarlo a este lenguaje.
Espero sus aportaciones para entender y traducir este programa
$regfile = "m8def.dat"
$crystal = 1000000
Config Int0 = Rising
On Int0 Int0_isr
Config Timer0 = Timer , Prescale = 64
On Ovf0 Tim0_isr
Stop Timer0
Ddrb = 15 : Portb = 240
Ddrd.2 = 0 : Portd.2 = 1
Triac Alias Portb.0
P1 Alias Pinb.4
P2 Alias Pinb.5
P3 Alias Pinb.6
Dim Val_timer0 As Byte
Val_timer0 = 250
Reset Triac
Do
Bitwait P1 , Reset
Bitwait P1 , Set
Stop Timer0
Enable Int0
Enable Timer0
Enable Interrupts
Do
If P2 = 0 Then
Waitms 200
Val_timer0 = Val_timer0 + 5
If Val_timer0 > 250 Then
Val_timer0 = 250
End If
End If
If P3 = 0 Then
Waitms 200
Val_timer0 = Val_timer0 - 5
If Val_timer0 < 125 Then
Val_timer0 = 125
End If
End If
Loop Until P1 = 0
Disable Int0
Disable Timer0
Disable Interrupts
Bitwait P1 , Set
Loop
End
Int0_isr:
Reset Triac
Timer0 = Val_timer0
Start Timer0
Return
Tim0_isr:
Set Triac
Stop Timer0
Return