Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Montag, 16. Januar 2006, 19:40

Programm 2: Eingänge abfragen

Hallo Leute,

so, nachdem das erste Programm sicher schon etwas langweilg geworden ist, hier ein Beispiel, wie ein Eingang abgefragt werden kann.

Wer mit der Programmierung nicht zu Recht kommt oder etwas nicht versteht, bitte in der Diskussionsecke nachfragen!

Quellcode

1
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
'******************************************************
'Projekt: Atmel-Programmierung für Einsteiger
'
'Prozessor: ATMega 8-16
'Bascom-Version: 1.11.8.1
'
'Programm 2: Eingang abfragen
'
'Hardware:
'Schalter an Port D.0
'LED an Port D.7
'
'15.01.2006 T. Gietenbruch
'
'******************************************************

'======================================================
'System-Einstellungen
'======================================================
'Definition für Mega 8
$regfile "m8def.dat"

'Angabe der Taktfrequenz (1Mhz)
$crystal = 1000000

'======================================================
'Konfigurationen
'======================================================
Config Portd.0 = Input
Config Portd.7 = Output

'======================================================
'Deklarationen
'======================================================
'

'======================================================
'Initialisierungen
'======================================================
Portd.0 = 1
Portd.7 = 1

'======================================================
'Hauptprogramm-Schleife
'======================================================

Do

'Was man beachten muß:
'Die PIN-Logik ist durch die Pullup-Widerstände negiert!
'Schalter ein -> 0V am Eingang
'0V am Ausgang -> LED leuchtet

'Wenn .... dann...
If Pind.0 = 0 Then

   ' ...Statusänderung Port D.7...
   Toggle Portd.7
   '...danach 3 Sekunden warten
   Wait 3

'...ansonsten...
Else
   'LED an D.7 aus
   Portd.7 = 1

'...und fertig!
End If

Loop

'Programmende (nur formal)
End


[SIZE=3]Topics:

- Warum dauert es manchmal so lange, bis die LED ausgeht, wenn man den Schalter ausmacht?

- Den Eingang auf einen anderen Pin umleiten, z. B. C.1 oder D.5...

- Was ist der Nachteil der Wait-Befehle?

- Programmerweiterung:
--> LED soll nur blinken, wenn D.0 UND D.1 eingeschaltet sind.
--> LED soll blinken, wenn D.0 ODER D.1 eingeschaltet sind.

[/SIZE]
[SIZE=4]www.zuendapp.net - die grösste Zündapp-Community im Internet! :ok:[/SIZE]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Torsten_G« (16. Januar 2006, 19:44)