Viele Grüße,
Zitat
'--------------------------------------------------------------------------
'Test Empfängerimpulsauswertung
'
'ATtiny13
'Servoimpuls an PB0 (Pin 5)
'LED an PB1 (Pin 6)
'
'--------------------------------------------------------------------------
$regfile = "ATtiny13.dat"
$crystal = 9600000
$PROG &HFF,&H7A,&HFF,&H00' generated. Take care that the chip supports all fuse bytes.
'=== Dimension the variabele===
Dim Pulselenght As Word
'===Aliassen & constanten===
Led_status Alias Portb.1
Led_greater Alias Portb.2
Led_smaller Alias Portb.0
Const Off = 1
Const On = 0
Const Correction = 20
'===Setup the ports===
Config Pinb.0 = Output 'LED
Config Pinb.1 = Output 'LED
Config Pinb.2 = Output 'LED
Config Pinb.3 = Input 'Receiver channel
'===Set the port===
Waitms 1000
'===Main===
Led_status = Off
Led_smaller = Off
Led_greater = Off
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Do
Pulsein Pulselenght , Pinb , 3 , 1 'Measure incoming pulselengte
If Err = 1 Then ' No pulses at all, fail safe activated
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Waitms 500
Elseif Pulselenght < 10 Or Pulselenght > 300 Then
Gosub Flash_led
Gosub Flash_led
Gosub Flash_led
Waitms 500
Else
If Pulselenght < 200 And Pulselenght > 180 Then
Gosub Flash_greater
Waitms 200
Elseif Pulselenght < 120 And Pulselenght > 100 Then
Gosub Flash_smaller
Waitms 200
Else
Gosub Flash_led
Waitms 200
End If
End If
Loop
End
Flash_led:
Led_status = On
Waitms 50
Led_status = Off
Waitms 200
Return
Flash_greater:
Led_greater = On
Waitms 50
Led_greater = Off
Waitms 200
Return
Flash_smaller:
Led_smaller = On
Waitms 50
Led_smaller = Off
Waitms 200
Return
Pulsein Pulselenght , Pinb , 3 , 1 'Measure incoming pulselengte
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH