Hallo Ihr Tüftler!
Ich bin noch Neuling in Sachen Mikrocontrollerprogr. und bitte deshalb mal um Eure Hilfe.
Ich möchte mit einem Attiny13 einen Servo über Funk ansteuern. Dabei soll der Servo aber mit einer langsamen Geschwindigkeit fahren. (Landeklappen, Fahrwerk an einem Modellflugzeug)
Da ich Basic-Vorkenntnisse (VB.net), habe ich mich für Bascom entschieden und auch schon kleine
Sachen problemlos zum Laufen bekommen. Der Programmer ist ein Diamex Prog-S.
Ich habe folgenden Quellcode mir mal zusammengebastelt.
So wie er hier zu sehen ist, schaltet die LED noch das Servo.
Wenn ich „Enable Interrupts“ auskommentiere, kann ich mit der Fernst. Die LED schalten.
Ebenfalls läuft mein Servo, wenn ich statt des Empfängereingangs einen Taster einbaue.
Aber warum läuft es zusammen nicht?
Schon mal vielen Dank im Voraus.
VG Richy
Code:
$regfile = "ATtiny13.dat"
$crystal = 9600000
$hwstack = 32
$swstack = 5
$framesize = 20
!LDI R16, &b10000000
!LDI R17, &b00000000
!OUT CLKPR, R16
!OUT CLKPR, R17
Config Servos = 1 , Servo1 = Portb.0 , Reload = 5
Config Pinb.0 = Output
Config Pinb.2 = Output
Config Pinb.4 = Input
'Taster1 Alias Pinb.4
'Taster1 = 1
Led Alias Portb.2
Dim A As Word
Dim W As Word
Enable Interrupts
Do
Pulsein W , Pinb , 4 , 1
If W <= 150 Then And A < 200 Then 'If Taster1 = 1 And A < 200 Then
For A = 100 To 200 Step 1
Servo(1) = A
Led = 0
Waitms 10
Next A
Elseif W > 170 Then And A > 100 Then 'Elseif Taster1 = 0 And A > 100 Then
For A = 200 To 100 Step -1
Servo(1) = A
Led = 1
Waitms 5
Next A
Else
Servo(1) = A
End If
Loop
End
Lesezeichen