Ja warum? Weil es einfach nur eine Übung für mich ist und später bei einem RC-Modell gebraucht wird.
Es geht um das RC-Empfänger-Signal einlesen und um das ansteuern eines Servos mit einem Atmega8, das es so einfach ist hatte ich mir nicht vorgestellt, mit pulsein, config Servo und enable interrupts klappt es einfach super :-).
Das Programm hat nur ein paar Zeilen und verrichtet die Aufgabe exakt und schnell.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
' Compiler: Bascom-Demo 2.0.7.5
' Dateiname: pulsein-Servo A8.avr
' Funktion: ein RC-Signal auslesen und einen Servo ansteuern
' Datum: Start 01.02.2020, Stand 02.02.2020
' Von: Naubaddi
' --- Mikrocontroler Daten... ----------------------------------------------------------------------------------
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 80
$swstack = 80
$framesize = 80
' &HFF, &HE1, &HD9, &HFF ' 1MHz
$PROG &HFF, &HE4, &HD9, &HFF ' 8MHz
' --- Deklarationen... -----------------------------------------------------------------------------------------
config servos = 1 , servo1 = portb.0 , reload = 10
enable interrupts
config portb.0 = output ' RC-Signal Ausgang
config pinb.4 = input ' RC-Signal Eingang
' --- Variablen... ---------------------------------------------------------------------------------------------
dim Signal As byte
dim Servowert As byte
' --- Programm Anfang ------------------------------------------------------------------------------------------
do
pulsein Signal , pinb , 4 , 1 ' Signal auslesen
Servowert = Signal + 23 ' den Wert für das Servo anpassen (Mittelstellung)
Servo(1) = Servowert ' das Servo ansteuern
loop
' --- Programm Ende --------------------------------------------------------------------------------------------
end
' --------------------------------------------------------------------------------------------------------------