|
Programmieren von Mikrocomputern in |
||
|
|
||
| Pfad ::: Mikrocontroller / Ein- Aus-Tastung mit einer Taste | ||
|
1.2
|
Projekte realisieren |
|||
| 1.2.4.2 | Ein- Aus-Tastung mit einer Taste | |||
|
|
||||
/**************************************************************************************
* C-Programm zur Auswertung von externen Ereignissen *
* Projekt-Name: ein_aus_tastung_mit_einer_taste.uv2 *
*************************************************************************************/
#include <reg932.h> sbit sbTaste = P0^0; // Deklaration der Taste sbit sbLED = P2^0; // Deklaration der LED unsigned int uiLoop; // Global deklariert, damit im µVision-WatchWindow darstellbar unsigned int uiValue; // Global deklariert, damit im µVision-WatchWindow darstellbar void v_Wait( uiValue ) // Definition der Funktion "v_Wait()" // void v_Wait( unsigned int uiValue ) wenn nicht zuvor global { // unsigned int uiLoop; wenn nicht zuvor global for ( uiLoop = 0; uiLoop < uiValue; uiLoop++ ); } void main ( void ) { P2M1 = 0xFE; // Initialisiert P2, Pin 1 als bidirektional while ( 1 ) { while ( sbTaste == 1 ) // Zeitpunkt [1] im zeitlichen Ablauf - Taste gedrückt? { ; } v_Wait ( 3000 ); // Zeitpunkt [2] im zeitlichen Ablauf - Wartezeit 10 ms if ( sbTaste == 1 ) // Zeitpunkt [3] im zeitlichen Ablauf - Taste immer noch gedrückt? { ; } else { if ( sbLED == 1 ) // Zeitpunkt [4] im zeitlichen Ablauf - Zustand LED invertieren { sbLED = 0; } else { sbLED = 1; } } while ( sbTaste == 0 ); // Zeitpunkt [5] im zeitlichen Ablauf - Taste wieder geöffnet? { ; } v_Wait ( 3000 ); // Zeitpunkt [6] im zeitlichen Ablauf - Wartezeit 10 ms } } |
||||
|
Liegt im dargestellten Quelltext die gleiche Funktionalität vor wie im Vorschlag von Michael Baldischweiler??? |
||||
|
Quellennachweis: Grafik der "Lernbausteine" der Original-LEGO-Website entnommen |
||||
|
|||
| :: Glossar :: Block diagram :: Memory :: Special function registers :: Philips P89LPC93X :: Siemens A51 Pocket-Guide |
|
||
|
Beratender Fachlehrer: |
|||