8.1 Grundsätzlicher Aufbau der Beispiele

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "8.1 Grundsätzlicher Aufbau der Beispiele"

Transkript

1 107 8 Beispiele Nachdem nun viele theoretische Grundlagen gelegt wurden, kann man mit dem Programmieren eines Mikrocontrollers beginnen. In den folgenden Kapiteln werden verschiedene Möglichkeiten der Programmiersprache C gezeigt und wie man die einzelnen Eigenschaften des Mikrocontrollers verwenden kann. Alle hier beschriebenen Beispiele findet man auch funktionsfähig auf der beiliegenden CD-ROM. 8.1 Grundsätzlicher Aufbau der Beispiele Die Beispiele sind alle ähnlich aufgebaut. /** I N C L U D E S *******************************************/ #include <htc.h> #include <pic18f23k22.h> #include "Config.h" //Konfigurationsbits /** D E F I N E S *********************************************/ #define TASTER PORTBbits.RB0 //Taster liegt an Port B RB0 #define LED LATAbits.LATA4 //LED liegt an Port A RA4 /** P R O T O T Y P E S ***************************************/ void interrupt isr_high(void); void interrupt low_priority isr_low(void); /** I N T E R R U P T S ***************************************/ void interrupt isr_high(void) { void interrupt low_priority isr_low(void) {

2 108 Kapitel 8: Beispiele /** H A U P T P R O G R A M M *********************************/ void main(void) { //Port-Initialisierungen while(1) { //Hauptschleife Ganz am Anfang stehen die verschiedenen Header-Dateien, die für das Programm benötigt werden. Über die Headerdatei htc.h werden noch weitere Dateien eingebunden. Die Headerdatei pic18f23k22.h ist nicht zwingend erforderlich, da sie bereits über die Datei htc.h eingebunden wird. Das hat allerdings den Vorteil, dass man die Datei sehr schnell über einen Klick mit der rechten Maustaste und Auswahl des Befehls Open File... öffnen kann. Darin stehen die Definitionen für die einzelnen Register und deren Bits. Hier kann man nachsehen, wenn man sich bei einer Schreibweise unsicher ist. In Config.h sind die Konfigurationsbits festgelegt, die für die Hardware des Lernpakets verwendet werden. Dadurch muss man beim Anlegen eines neuen Projekts nicht immer die Einstellungen der Konfigurationsbits in der MPLAB-Entwicklungsumgebung anpassen. Nach den Header-Dateien folgen verschiedene Definitionen, z. B. an welchem Pin eine LED oder ein Taster liegt. Auf dem Lernpaket sind bereits ein Taster und eine LED fest mit dem Mikrocontroller verbunden. Der Taster liegt an Port RB0 (Pin 21) und die Leuchtdiode liegt an Port RA4 (Pin 6). Diese können über die Definitionen LED und TASTER sehr einfach angesprochen oder abgefragt werden. Im Anschluss an die Definitionen folgen die Prototypen der Funktionen, die in dieser Datei verwendet werden. Diese können aber auch in eine eigene Header-Datei verlagert werden, wenn sie auch von anderen Modulen verwendet werden soll. Hier sind z. B. die Interruptfunktionen deklariert, die aufgerufen werden, wenn verschiedene Interrupts im Programm aktiviert werden. Es gibt Interruptroutinen mit hoher und mit niedriger Priorität, die jeweils eine andere Funktion aufrufen können.

3 8.2 Vorbereitungen 109 Danach folgt das eigentliche Hauptprogramm main(). An dieser Stelle beginnt jedes Programm, da der Prozessor nach einem Neustart oder einem Reset immer wieder an diese Stelle springt. In den folgenden Beispielen werden immer nur die relevanten Code- Teile erklärt. Das komplette funktionsfähige Programm mit Kommentaren findet man auf der beigelegten CD-ROM. 8.2 Vorbereitungen Bei einigen Beispielen ist es erforderlich, zusätzliche Bauteile mit der Leiterplatte des Lernpakets zu verbinden. Daher sollte man im Vorfeld einige Vorbereitungen treffen. Dem Lernpaket liegt ein Schaltdraht bei, der noch an einem Stück ist. Für die Beispiele benötigt man insgesamt 14 Drahtstücke. Davon werden 9 mit einer Länge von 15 cm und 5 mit 7 cm benötigt. Diese sollte man sich schon im Vorfeld zuschneiden und an beiden Enden ca. 5 7 mm abisolieren.

4 111 9 Ein- und Ausgabe-Ports Ein- und Ausgabe-Ports, auch I/O-Ports genannt, sind die wichtigsten Bestandteile von Mikrocontrollern, da über sie die Kommunikation mit der Außenwelt stattfindet. Die Anzahl der verfügbaren Ein- und Ausgänge kann, je nach Mikrocontrollertyp, unterschiedlich sein. Manche Mikrocontroller haben mehr als 100 frei definierbare Ein- und Ausgänge, die auch als GPIO (General Purpose Input Output) bezeichnet werden. Es gibt allerdings auch sehr kleine Mikrocontroller, die nur über 4 Ein- oder Ausgänge verfügen (z. B. PIC10F222). In der Regel kann man über verschiedene Register festlegen, welche Funktion diese Pins haben sollen. Sie können als analoger Eingang oder als digitaler Ein- und Ausgang verwendet werden. Es kann den Pins aber auch eine spezielle Funktion wie z. B. die Kommunikation über die serielle Schnittstelle oder die Verwendung des I²C-Busses zugeordnet werden. Die Funktionalität kann auch während des Programmablaufs geändert werden. Dadurch ist es möglich, dass ein Pin zuerst als Eingang definiert ist, nach Auftreten eines Ereignisses umdefiniert wird und dann als Ausgang funktioniert. Beim PIC18F23K22 sind die einzelnen Ein- und Ausgabe-Pins in 3 Ports mit jeweils 8 Bit aufgeteilt. Diese werden mit»port A«,»Port B«und»Port C«bezeichnet. Bei den Mikrocontrollern mit mehr Pins gibt es auch noch die Ports D und E. Jeder dieser Ports verfügt über 5 Register zur Steuerung der Funktionalität. TRIS-Register: Über dieses Register wird festgelegt, ob der entsprechende Pin als Ein- oder Ausgang funktionieren soll. Wird z. B. das Bit 2 auf 1 gesetzt, ist der 3. Pin des Ports ein Eingang (die Zählung der Bits eines Ports beginnt bei 0). Bei einer 0 funktioniert der Pin als Ausgang. PORT-Register: Das PORT-Register ermöglicht das Lesen des Pegels, der an den Pins anliegt. Bei einem High-Pegel wird das entsprechende Bit auf 1 gesetzt, ein Low-Pegel setzt das Bit im Register auf 0.

5 112 Kapitel 9: Ein- und Ausgabe-Ports LAT-Register: Über das LAT-Register werden die Ausgänge auf den gewünschten Pegel gesetzt. ANSEL-Register: Dieses Register legt fest, ob es sich bei dem Pin um einen analogen oder digitalen Eingang handelt. Um den Pin als digitalen Eingang zu verwenden, muss das entsprechende Bit auf 0 gesetzt werden. SLRCON-Register: Mit diesem Register kann die Anstiegs- und Abfallgeschwindigkeit (Slew Rate) der Ausgangspegel eingestellt werden. Das kann sinnvoll sein, wenn man die elektromagnetische Störabstrahlung reduzieren möchte. Die Anstiegsgeschwindigkeit bei einem Signalwechsel von Low nach High beträgt dann nur noch ein Zehntel. In der Regel gibt es aber keine Probleme mit der Standardgeschwindigkeit und die Einstellungen müssen in diesem Register nicht angepasst werden. Da der Mikrocontroller nach dem Einschalten nicht wissen kann, welcher Pin als Eingang und welcher als Ausgang funktionieren soll, muss man dies dem Mikrocontroller über die zuvor beschriebenen Register mitteilen. Nach dem Einschalten oder nach einem Reset geht der Controller davon aus, dass alle Pins als analoger Eingang definiert sind. Es wird daher auch keine Spannung an den Pins ausgegeben. Wäre das der Fall, könnte es zu einem Kurzschluss kommen, wenn ein angeschlossenes IC am Ausgang einen High-Pegel liefert, während der PIC an diesem Pin einen Low-Pegel ausgibt. Den Pins wird, in der Regel in einer Startsequenz (Initialisierung), die entsprechende Funktion zugewiesen. Beispiel: In der folgenden Initialisierungssequenz sollen die Pins RA0, RA1, RA4, RA6 und RA7 als digitale Ausgänge konfiguriert werden. Die Pins RA2 und RA3 sollen digitale Eingänge sein und der Pin RA5 (AN4) soll als analoger Eingang geschaltet werden. LATA = 0x00; TRISA = 0x4C; //Auf allen Ausgängen einen Low-Pegel ausgegeben //Pins RA2, RA3 und RA5 sind Eingänge //Alle anderen Pins von Port A sind Ausgänge ANSELA = 0x40; //Pin RA5 ist ein analoger Eingang, alle //anderen Pins sind digitale IO-Pins

6 9.1 Beispiel: Taster und LED Beispiel: Taster und LED Zu Beginn wird ein einfaches Beispiel vorgestellt, mit dem man über einen Taster eine LED schalten kann. Hiermit kann man gut testen, ob die Hardware richtig angeschlossen ist und in der Entwicklungsumgebung alle Einstellungen korrekt vorgenommen wurden. Sollte man sich einmal unsicher sein, ob das Problem an der Hardware (z. B. eine selbst gelötete Schaltung) oder an den Einstellungen liegt, sollte man immer das einfachste Beispiel verwenden. void main(void) { //Port A LATA = 0x00; TRISA = 0x00; ANSELA = 0x00; //Port B LATB = 0x00; TRISB = 0xFF; ANSELB = 0x00; //Port C LATC = 0x00; TRISC = 0xF0; ANSELC = 0x30; //Alle Pins von Port A sind Ausgänge //Alle Pins von Port A sind digitale I/Os //Alle Pins von Port B sind Eingänge //Alle Pins von Port A sind digitale I/Os //RC0..RC3 = Ausgänge, RC4..RC7 = Eingänge //Nur RC4 und RC5 sind analoge Eingänge while(1) { //Hauptschleife if( TASTER == 0 ) {//Prüfen, ob der Taster gedrückt ist LED = 1; //Taster wurde gedrückt, LED ein else { LED = 0; //Taster wurde nicht gedrückt, LED aus Im Hauptprogramm main() wird zuerst festgelegt, welche Ports als Eingang und welche als Ausgang verwendet werden sollen. Über den Befehl LATA = 0x00 werden die Ausgangs-Latches auf 0 gesetzt, damit man mit einem definierten Zustand startet und nicht ein ungewollter Pegel ausgegeben wird. Der Befehl TRISA legt fest, welcher Pin ein Eingang oder ein Ausgang sein soll. Ist das entsprechende Bit auf 1 gesetzt, wird der Pin als

7 114 Kapitel 9: Ein- und Ausgabe-Ports Eingang verwendet. Bei einer 0 wird der Pin als Ausgang verwendet. Als»Eselsbrücke«kann man sich merken, dass die 1 aussieht wie ein I für Input und die 0 wie ein O für Output. Durch den Befehl TRISA = 0x0C werden z. B. die Portpins RA2 und RA3 als Eingang und alle anderen als Ausgang gesetzt. Besonders wichtig ist der Befehl ANSELA = 0x00, über den dem Mikrocontroller mitgeteilt wird, welche Pins als digitale oder analoge Eingänge verwendet werden sollen. Werden hier keine Festlegungen getroffen, setzt der Mikrocontroller die Pins automatisch als analogen Eingang und man wird Probleme bekommen, wenn man einen Taster abfragen will. Nachdem alle initialisierenden Befehle abgearbeitet wurden, folgt die Hauptschleife, die so lange durchlaufen wird, bis der Mikrocontroller wieder ausgeschaltet wird. Auf der Hardware des Lernpakets schaltet der Taster nach Masse. Das bedeutet, dass am Eingang ein Low-Pegel anliegt, wenn der Taster gedrückt wurde. In der if-anweisung wird immer wieder abgefragt, ob der Taster gedrückt wurde. Hier kann man erkennen, wie sinnvoll die Definition für TASTER ist. Dadurch kann man das Programm auch lesen, ohne zu wissen, an welchem Pin der Taster angeschlossen ist. Wurde der Taster gedrückt und der Pegel liegt dadurch auf Low, wird der Befehl LED = 1 aufgerufen und dadurch die Leuchtdiode über den Ausgangs-Pin eingeschaltet. Wird der Taster nicht gedrückt, wird die LED ausgeschaltet. Das Beispiel kann nun mit der Entwicklungsumgebung MPLAB kompiliert werden und mit dem Bootloader-Tool (Serial-Bootloader AN1310) in den Mikrocontroller programmiert werden. 9.2 Beispiel: Blinker In vielen Fällen will man eine zeitliche Steuerung des Programmablaufs realisieren. So auch in diesem Beispiel, das eine LED im Sekundentakt blinken lässt. /** P R O T O T Y P E S ***************************************/ void delay( int ms );

8 9.2 Beispiel: Blinker 115 /** H A U P T P R O G R A M M *********************************/ void main(void) { //Port A LATA = 0x00; TRISA = 0x00; //Alle Pins von Port A sind Ausgänge ANSELA = 0x00; //Alle Pins von Port A sind digitale I/Os //Port B LATB = 0x00; TRISB = 0xFF; //Alle Pins von Port B sind Eingänge ANSELB = 0x00; //Alle Pins von Port A sind digitale I/Os //Port C LATC = 0x00; TRISC = 0xF0; //RC0..RC3 = Ausgänge, RC4..RC7 = Eingänge ANSELC = 0x30; //Nur RC4 und RC5 sind analoge Eingänge while(1) { LED = 1; delay(1000); LED = 0; delay(1000); //Hauptschleife //LED einschalten //Ca. 1 Sekunde (1.000 ms) warten //LED ausschalten //Ca. 1 Sekunde (1.000 ms) warten void delay( int ms ) { int i=0; //1 ms = Befehlstakte (16 MHz Quarz / 4) for( i=0; i<ms; i++ ) { _delay(4000); Die Initialisierung der Ports ist genauso wie im vorherigen Beispiel. In der Hauptschleife wird zuerst die LED eingeschaltet. Ist dies erledigt, wird die Funktion delay() aufgerufen. Der Funktion wird ein Wert von übergeben, was einer Zeitverzögerung von einer Sekunde entspricht. Was genau die Funktion delay() macht, sieht man am Ende des Hauptprogramms, wo die Funktion definiert ist.

9 116 Kapitel 9: Ein- und Ausgabe-Ports Zu Beginn der Funktion delay() wird eine Zählvariable i deklariert, die in der for-schleife verwendet wird. Die for-schleife führt den Befehl _delay(4000) so oft aus wie durch den übergebenen Wert an die Funktion festgelegt. Die Funktion _delay() wiederum verzögert die Programmausführung um die angegebene Anzahl von Zyklen. Durch den Wert 4000 wird die Ausführung um Taktzyklen/Befehlszyklen verzögert. Ein Zyklus benötigt 4 Takte der Prozessorfrequenz. Das Lernpaket ist mit einem 16-MHz-Quarz bestückt. Daher kann der Prozessor 4 Millionen Befehle pro Sekunde bearbeiten. Die Ausführung eines Befehls dauert somit 250 ns, Befehle benötigen genau 1 ms. Die Zeile _delay(4000) verzögert die Programmausführung um 1 ms. Wird diese Funktion mal aufgerufen, verlängert sich die Verzögerung auf 1 s. Nachdem die Zeitverzögerung abgelaufen ist, wird die Leuchtdiode wieder ausgeschaltet und erneut eine Zeitverzögerung von 1 s gestartet. Nach der zweiten Zeitverzögerung wird die Hauptschleife wieder von vorn durchlaufen und dementsprechend die Leuchtdiode wieder eingeschaltet. Dadurch, dass diese Funktionen immer wieder aufgerufen werden, blinkt die LED im Sekundentakt.

10 Logik-Gatter Die vorherigen Beispiele konnten noch alle mit der Leiterplatte des Lernpakets ohne zusätzliche Bauteile ausprobiert werden. Um die Beispiele für die Logikgatter auszuprobieren, wird ein zusätzlicher Taster benötigt. Er muss noch an die Leiterplatte über das Steckbrett angeschlossen werden. In Bild 10.1 zeigt die Schaltung, wie der zweite Taster angeschlossen werden muss, damit das Beispiel auf der CD-ROM funktioniert. Bild 10.1: Anschluss des zusätzlichen Tasters Für die Verdrahtung werden die folgenden Bauteile verwendet: 1 x Widerstand 10 kω (braun, schwarz, orange) 1 x Taster 3 x Verbindungsleitung ca. 15 cm

11 118 Kapitel 10: Logik-Gatter Der Schaltplan zu der Verdrahtung sieht folgendermaßen aus: Bild 10.2: Schaltplan für zusätzlichen Taster Der Widerstand hat einen Wert von 10 kω und dient als Pull-up-Widerstand, der den Pegel am Eingang des Mikrocontrollers auf einen High- Pegel legt, wenn der Taster nicht gedrückt ist. Fehlt dieser Widerstand, kann man nicht sicher sagen, welchen Pegel der Mikrocontroller vom Eingang liest. Der Taster schaltet den Pin RC0 auf Low-Pegel, sobald dieser gedrückt wird. Nach der Verdrahtung kann man alle Beispiele der Logik-Gatter ausführen, ohne die externe Beschaltung zu ändern UND-Gatter Bei dem Beispiel des UND-Gatters wird eine LED geschaltet, wenn beide Taster gedrückt sind. Ist einer der beiden Taster nicht gedrückt, bleibt die LED dunkel. Diese Funktionalität verdeutlicht die Wahrheitstabelle: TASTER1 TASTER2 LED Nicht gedrückt Nicht gedrückt Aus Nicht gedrückt Gedrückt Aus Gedrückt Nicht gedrückt Aus Gedrückt Gedrückt Ein

12 10.1 UND-Gatter 119 Das Beispielprogramm für ein UND-Gatter prüft in der Hauptschleife, ob beide Taster gedrückt sind, und schaltet die LED an oder aus. /** D E F I N E S *********************************************/ #define TASTER1 PORTBbits.RB0 //Taster1 liegt an Port B RB0 #define TASTER2 PORTCbits.RC0 //Taster2 liegt an Port C RC0 #define LED LATAbits.LATA4//LED liegt an Port A RA4 /** H A U P T P R O G R A M M *********************************/ void main(void) { //Port A LATA = 0x00; TRISA = 0x00; //Alle Pins von Port A sind Ausgänge ANSELA = 0x00; //Alle Pins von Port A sind digitale I/Os //Port B LATB = 0x00; TRISB = 0xFF; //Alle Pins von Port B sind Eingänge ANSELB = 0x00; //Alle Pins von Port A sind digitale I/Os //Port C LATC = 0x00; TRISC = 0xFF; //Alle Pins von Port C sind Eingänge ANSELC = 0x30; //Nur RC4 und RC5 sind analoge Eingänge while(1) { //Hauptschleife //Prüfen, ob beide Taster gedrückt sind if( (TASTER1==0) && (TASTER2==0) ) { LED = 1; //Beide Taster wurden gedrückt //LED einschalten else { LED = 0; //LED ausschalten In der if-abfrage wird über den Operator == geprüft, ob der Eingang einen Low-Pegel hat. Die beiden Bedingungen werden über den Operator && miteinander verknüpft. Der Ausdruck ist nur wahr, wenn beide Taster gedrückt sind.

13 120 Kapitel 10: Logik-Gatter 10.2 ODER-Gatter Mit der ODER-Verknüpfung wird geprüft, ob einer der beiden Taster gedrückt ist. In diesem Fall wird die LED eingeschaltet. Die Leuchtdiode bleibt nur ausgeschaltet, wenn kein Taster gedrückt ist. TASTER1 TASTER2 LED Nicht gedrückt Nicht gedrückt Aus Nicht gedrückt Gedrückt Ein Gedrückt Nicht gedrückt Ein Gedrückt Gedrückt Ein Ähnlich wie auch beim UND-Gatter wird in der if-anweisung geprüft, ob einer der beiden Taster gedrückt wurde. /** D E F I N E S *********************************************/ #define TASTER1 PORTBbits.RB0 //Taster1 liegt an Port B RB0 #define TASTER2 PORTCbits.RC0 //Taster2 liegt an Port C RC0 #define LED LATAbits.LATA4//LED liegt an Port A RA4 /** H A U P T P R O G R A M M *********************************/ void main(void) { //Port A LATA = 0x00; TRISA = 0x00; //Alle Pins von Port A sind Ausgänge ANSELA = 0x00; //Alle Pins von Port A sind digitale I/Os //Port B LATB = 0x00; TRISB = 0xFF; //Alle Pins von Port B sind Eingänge ANSELB = 0x00; //Alle Pins von Port B sind digitale I/Os //Port C LATC = 0x00; TRISC = 0xFF; //Alle Pins von Port C sind Eingänge ANSELC = 0x30; //Nur RC4 und RC5 sind analoge Eingänge while(1) { //Hauptschleife

14 10.3 NAND-Gatter 121 //Prüfen, ob einer oder beide Taster gedrückt sind if( (TASTER1==0) (TASTER2==0) ) { LED = 1; //Min. ein Taster wurde gedrückt //LED einschalten else { LED = 0; //LED ausschalten Um eine ODER-Verknüpfung zu realisieren, wird der Operator verwendet. Man muss beachten, dass der Operator aus zwei senkrechten Strichen besteht und nicht aus einem, wie bei der ODER-Verknüpfung von zwei Variablen, da dies einer bitweisen Verknüpfung entspricht NAND-Gatter Das NAND-Gatter schaltet die LED immer ein, außer es werden beide Taster gleichzeitig gedrückt. Die NAND-Verknüpfung ist das gleiche wie die UND-Verknüpfung mit einem nachgeschalteten Inverter. TASTER1 TASTER2 LED Nicht gedrückt Nicht gedrückt Ein Nicht gedrückt Gedrückt Ein Gedrückt Nicht gedrückt Ein Gedrückt Gedrückt Aus /** D E F I N E S *********************************************/ #define TASTER1 PORTBbits.RB0 //Taster1 liegt an Port B RB0 #define TASTER2 PORTCbits.RC0 //Taster2 liegt an Port C RC0 #define LED LATAbits.LATA4//LED liegt an Port A RA4 /** H A U P T P R O G R A M M *********************************/ void main(void) {

15 122 Kapitel 10: Logik-Gatter //Port A LATA = 0x00; TRISA = 0x00; ANSELA = 0x00; //Port B LATB = 0x00; TRISB = 0xFF; ANSELB = 0x00; //Port C LATC = 0x00; TRISC = 0xFF; ANSELC = 0x30; //Alle Pins von Port A sind Ausgänge //Alle Pins von Port A sind digitale I/Os //Alle Pins von Port B sind Eingänge //Alle Pins von Port B sind digitale I/Os //Alle Pins von Port C sind Eingänge //Nur RC4 und RC5 sind analoge Eingänge while(1) { //Hauptschleife //Prüfen, ob beide Taster gedrückt sind if(!((taster1==0) && (TASTER2==0)) ) { LED = 1; //LED einschalten else { LED = 0; //Beide Taster wurden gedrückt //LED ausschalten Man erkennt, dass der Ausdruck in der if-anweisung fast identisch mit der UND-Verknüpfung ist. Der Ausdruck wurde noch zusätzlich in Klammern gesetzt und ein Ausrufezeichen»!«vorangestellt. Durch dieses Ausrufezeichen wird die Negation des Ausdrucks erreicht NOR-Gatter Die NOR-Verknüpfung ist eine invertierte ODER-Verknüpfung. Dabei wird die LED nur eingeschaltet, wenn beide Taster nicht gedrückt werden. In allen anderen Fällen bleibt die LED ausgeschaltet.

16 10.4 NOR-Gatter 123 TASTER1 TASTER2 LED Nicht gedrückt Nicht gedrückt Ein Nicht gedrückt Gedrückt Aus Gedrückt Nicht gedrückt Aus Gedrückt Gedrückt Aus /** D E F I N E S *********************************************/ #define TASTER1 PORTBbits.RB0 //Taster1 liegt an Port B RB0 #define TASTER2 PORTCbits.RC0 //Taster2 liegt an Port C RC0 #define LED LATAbits.LATA4//LED liegt an Port A RA4 /** H A U P T P R O G R A M M *********************************/ void main(void) { //Port A LATA = 0x00; TRISA = 0x00; //Alle Pins von Port A sind Ausgänge ANSELA = 0x00; //Alle Pins von Port A sind digitale I/Os //Port B LATB = 0x00; TRISB = 0xFF; //Alle Pins von Port B sind Eingänge ANSELB = 0x00; //Alle Pins von Port B sind digitale I/Os //Port C LATC = 0x00; TRISC = 0xFF; //Alle Pins von Port C sind Eingänge ANSELC = 0x30; //Nur RC4 und RC5 sind analoge Eingänge while(1) { //Hauptschleife //Prüfen, ob beide Taster nicht gedrückt sind if(!((taster1==0) (TASTER2==0)) ) { LED = 1; //LED einschalten else { LED = 0; //Mind. ein Taster wurde gedrückt //LED ausschalten

17 124 Kapitel 10: Logik-Gatter Wie bei der ODER-Verknüpfung wird über den Operator geprüft, ob einer der beiden Taster gedrückt wurde oder ob der Eingang auf einem Low-Pegel liegt. Diese Verknüpfung wird anschließend über das Ausrufezeichen»!«negiert und man erhält so die NOR-Verknüpfung XOR-Gatter Die Abkürzung XOR bedeutet»exklusives ODER«(engl. exclusiv OR). Ein solches Gatter liefert am Ausgang einen High-Pegel, wenn die Eingänge unterschiedlich sind anders als beim ODER-Gatter, das auch einen High-Pegel liefert, wenn beide Eingänge High sind. /** D E F I N E S *********************************************/ #define TASTER1 PORTBbits.RB0 //Taster1 liegt an Port B RB0 #define TASTER2 PORTCbits.RC0 //Taster2 liegt an Port C RC0 #define LED LATAbits.LATA4//LED liegt an Port A RA4 /** H A U P T P R O G R A M M *********************************/ void main(void) { //Port A LATA = 0x00; TRISA = 0x00; //Alle Pins von Port A sind Ausgänge ANSELA = 0x00; //Alle Pins von Port A sind digitale I/Os //Port B LATB = 0x00; TRISB = 0xFF; //Alle Pins von Port B sind Eingänge ANSELB = 0x00; //Alle Pins von Port B sind digitale I/Os //Port C LATC = 0x00; TRISC = 0xFF; //Alle Pins von Port C sind Eingänge ANSELC = 0x30; //Nur RC4 und RC5 sind analoge Eingänge while(1) { //Hauptschleife //Prüfen, ob einer der Taster gedrückt ist if( (TASTER1==0)!= (TASTER2==0) ) { LED = 1; //Nur ein Taster wurde gedrückt

18 10.6 RS-Flip-Flop 125 else { LED = 0; //LED einschalten //LED ausschalten Der Operator für die exklusive ODER-Verknüpfung wird aus einem Ausrufezeichen, gefolgt von einem Gleichzeichen (!=) gebildet. Das Zeichen bedeutet ungleich (Negation von gleich) und prüft, ob nur einer der beiden Taster gedrückt wurde. Sind beide Taster gedrückt oder beide Taster nicht gedrückt, ist die Bedingung nicht wahr und die LED wird ausgeschaltet RS-Flip-Flop Ein RS-Flip-Flop verfügt wie ein logisches Gatter über zwei Eingänge: einen zum Setzen des Ausgangs (S) und einen zum Rücksetzen des Ausgangs (R). Diese Eingänge können ebenfalls über die Taster simuliert werden. Mit einem Taster wird die LED eingeschaltet und mit dem anderen wieder ausgeschaltet. /** D E F I N E S *********************************************/ #define TASTER1 PORTBbits.RB0 //Taster1 liegt an Port B RB0 #define TASTER2 PORTCbits.RC0 //Taster2 liegt an Port C RC0 #define LED LATAbits.LATA4//LED liegt an Port A RA4 /** H A U P T P R O G R A M M *********************************/ void main(void) { //Port A LATA = 0x00; TRISA = 0x00; //Alle Pins von Port A sind Ausgänge ANSELA = 0x00; //Alle Pins von Port A sind digitale I/Os //Port B LATB = 0x00;

19 126 Kapitel 10: Logik-Gatter TRISB = 0xFF; //Alle Pins von Port B sind Eingänge ANSELB = 0x00; //Alle Pins von Port B sind digitale I/Os //Port C LATC = 0x00; TRISC = 0xFF; //Alle Pins von Port C sind Eingänge ANSELC = 0x30; //Nur RC4 und RC5 sind analoge Eingänge while(1) { //Hauptschleife //Prüfen, welcher Taster gedrückt wurde if( TASTER1==0 ) { LED = 1; //LED einschalten if( TASTER2==0 ) { LED = 0; //LED ausschalten Die Taster werden im Beispielprogramm kurz hintereinander abgefragt. Wird der Taster 1 gedrückt und der Eingangspegel liegt somit auf Low, wird die LED eingeschaltet. Solange der Taster 2 nicht gedrückt wird, bleibt die LED eingeschaltet. Erst wenn der Taster 2 gedrückt wird, ist der Ausdruck der if-anweisung wahr und die LED wird wieder ausgeschaltet. Werden beide Taster gleichzeitig gedrückt, führt dies zu einem undefinierten Verhalten und die LED wird sehr schnell ein- und ausgeschaltet. Um diesen Effekt zu vermeiden, kann man das Programm etwas umschreiben und dem Taster 1 für das Einschalten der LED eine Priorität geben. while(1) { //Hauptschleife //Prüfen, welcher Taster gedrückt wurde if( TASTER1==0 ) { LED = 1; //LED einschalten else { if( TASTER2==0 ) { LED = 0; //LED ausschalten

20 10.6 RS-Flip-Flop 127 Bei dieser kleinen Abwandlung wird der Eingang von Taster 2 nicht mehr geprüft, solange der Taster 1 gedrückt ist. Somit kann auch die LED nicht mehr ausgeschaltet werden. Wird Taster 1 losgelassen, springt das Programm immer in den else-zweig und prüft, ob der Taster 2 gedrückt ist, um die LED auszuschalten.

Parallel-IO. Ports am ATmega128

Parallel-IO. Ports am ATmega128 Parallel-IO Ansteuerung Miniprojekt Lauflicht Ports am ATmega128 PortE (PE7...PE0) alternativ, z.b. USART0 (RS232) 1 Pin von PortC Port C (PC7...PC0) 1 Parallel-IO-Port "Sammelsurium" verschiedener Speicher

Mehr

Microcontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs Programmieren. 09.10.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs Programmieren 9.1.11 Microcontroller Kurs/Johannes Fuchs 1 General Purpose Input Output (GPIO) Jeder der Pins der vier I/O Ports kann als Eingabe- oder Ausgabe-leitung benutzt werden.

Mehr

CCS Compiler Tutorial mit Beispielen

CCS Compiler Tutorial mit Beispielen CCS Compiler Tutorial mit Beispielen Mit diesem Tutorial werden Sie den CCS Compiler kennenlernen, um mit ihm Projekte selbstständig erstellen zu können. Es werden zugleich die Programmierung und die Grundlagen

Mehr

myavr Programmierung in C

myavr Programmierung in C myavr Programmierung in C Stefan Goebel Februar 2017 Stefan Goebel myavr Programmierung in C Februar 2017 1 / 12 Grundgerüst... braucht man immer! #include // Register- und Konstantendefinitionen

Mehr

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Eingaben. Themen heute. Taster. Eingaben Zuweisungen Zeitmessung. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes Eingaben Programmieren für Ingenieure Sommer 2015 Andreas Zeller, Universität des Saarlandes Themen heute Eingaben Zuweisungen Zeitmessung Taster Wikipedia Ziel Wenn Taste gedrückt, soll LED leuchten Wir

Mehr

PIC16 Programmierung in HITECH-C

PIC16 Programmierung in HITECH-C PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden

Mehr

Versuch P1-63 Schaltlogik Vorbereitung

Versuch P1-63 Schaltlogik Vorbereitung Versuch P1-63 Schaltlogik Vorbereitung Gruppe Mo-19 Yannick Augenstein Versuchsdurchführung: 16. Januar 2012 1 Inhaltsverzeichnis Einführung 3 1 Grundschaltungen 3 1.1 AND.......................................

Mehr

Tag 2 Eingabe und Interrupts

Tag 2 Eingabe und Interrupts Tag 2 Eingabe und Interrupts 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Taster Direkt an Portpin angeschlossen (etwa PINB0, PIND3) Pull-Up-Widerstände einschalten!

Mehr

Highspeedaufnahmen mit dem Arduino Uno Board

Highspeedaufnahmen mit dem Arduino Uno Board Highspeedaufnahmen Die Idee Ich hatte schon länger vor mal ein platzendes Ei in dem Moment zu fotografieren indem es aufschlägt. Alle Versuche das von Hand hinzubekommen schlugen fehl. Angeregt durch den

Mehr

Vorbereitung zum Versuch

Vorbereitung zum Versuch Vorbereitung zum Versuch Schaltlogik Armin Burgmeier (1347488) Gruppe 15 6. Januar 2008 1 Gatter aus diskreten Bauelementen Es sollen logische Bausteine (Gatter) aus bekannten, elektrischen Bauteilen aufgebaut

Mehr

Lernpaket PIC-Mikrocontroller

Lernpaket PIC-Mikrocontroller Elektronik Lernpakete Lernpaket PIC-Mikrocontroller Bearbeitet von Michael Hofmann 1. Auflage 2011. Buch. 267 S. ISBN 978 3 645 65069 4 Weitere Fachgebiete > Technik > Elektronik > Mikroprozessoren schnell

Mehr

Labor Grundlagen der Elektrotechnik

Labor Grundlagen der Elektrotechnik Gruppe: S4 Versuch I2-5 Hendrik Schwarz, Edgar Nanninga 19.10.2000 1/ 8 Digitale integrierte Schaltungen 1.0 Aufgaben zur Vorbereitung 1.1 0 0 0 0 1 1 1 0 1 1 1 0 Funktionstabelle 1.2 Inverter SN7404 Pegel

Mehr

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen Elektronik Praktikum / Digitaler Teil Name: Jens Wiechula, Philipp Fischer Leitung: Prof. Dr. U. Lynen Protokoll: Philipp Fischer Versuch: 3 Datum: 24.06.01 RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen

Mehr

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt: Tasten abfragen Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt: pinmode(pinnummer, OUTPUT) digitalwrite(pinnummer, HIGH) oder digitalwrite(pinnummer, LOW) Zum Abfragen

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr

9 Multiplexer und Code-Umsetzer

9 Multiplexer und Code-Umsetzer 9 9 Multiplexer und Code-Umsetzer In diesem Kapitel werden zwei Standard-Bauelemente, nämlich Multiplexer und Code- Umsetzer, vorgestellt. Diese Bausteine sind für eine Reihe von Anwendungen, wie zum Beispiel

Mehr

25 kann ohne Rest durch 5 geteilt werden! ist wahr

25 kann ohne Rest durch 5 geteilt werden! ist wahr Lehrbrief 2: Lektion 8 - C -Praxis 4-1 - 5.2 Einfache Entscheidungen mit if und die Vergleichsoperatoren Nun tauchen wir immer tiefer in die Geheimnisse von C ein und beschäftigen uns mit einem sehr wichtigen

Mehr

einfache PIC-Übungsprogramme

einfache PIC-Übungsprogramme einfache PIC-Übungsprogramme Schreibe in MPLAB für das PIC-Übungsboard 01 mit dem PIC16F88 folgendes Programm, assembliere und dokumentiere dieses, schreibe es anschließend mittels dem Programmiergerät

Mehr

ARDUINO Übung. Inhalt:

ARDUINO Übung. Inhalt: ARDUINO Übung Diese Übung ermöglicht einen kurzen Einblick in die Welt der Mikrokontrollerprogrammierung. Es sollen im Folgenden die Anleitungen befolgt werden und die entsprechenden elektrotechnischen

Mehr

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert

Mehr

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap.

Tietze, Schenk: Halbleiterschaltungstechnik (Kap. 10) Keller / Paul: Hardwaredesign (Kap. 5) L. Borucki: Digitaltechnik (Kap. 6 Versuch Nr. 5 6.1 Anmerkungen zum Versuch Nr. 5 In den bisherigen Versuchen haben Sie sich mit kombinatorischen Schaltkreisen beschäftigt, in denen die Ausgänge bisher nicht auf die Eingänge zurückgeführt

Mehr

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: Blinken Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein: // Projekt 1 - LED Blinker int ledpin = 13; void setup() pinmode(ledpin, OUTPUT); void loop() digitalwrite(ledpin, HIGH);

Mehr

Wir übertragen Daten mit Licht

Wir übertragen Daten mit Licht Wir übertragen Daten mit Licht Durch das Internet werden täglich Unmengen von Daten von einem Ort an den anderen transportiert. Häufig geschieht dies über Glasfasern (Abb. 1). An dem einen Ende werden

Mehr

Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk.

Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk. Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk. DF1JM Juli 2011 Eine Sequenz ist eine Reihenfolge. Auf den Amateurfunk bezogen sind Sequenzer Schaltstufen, die in einer festgelegten Zeit-

Mehr

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet. U4 4. Übung U4 4. Übung Besprechung Aufgabe 2 Makros Register I/O-Ports U4.1 U4-1 Makros U4-1 Makros Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler

Mehr

DTMF-Decoder-Modul mit 6 Ausgängen & Morse-Transponder

DTMF-Decoder-Modul mit 6 Ausgängen & Morse-Transponder C S Technology Ltd. cstech.co.uk DTMF-Decoder-Modul mit 6 Ausgängen & Morse-Transponder Unser DTMF-Decoder-Modul hat 6 Darlington-NPN-Open-Collector-Ausgänge, die aus der Ferne aus- und eingeschaltet werden

Mehr

Dokumentation IBIS Monitor

Dokumentation IBIS Monitor Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt

Mehr

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice easyident Türöffner Art. Nr. FS-0007 Wir freuen uns, das sie sich für unser Produkt easyident Türöffner, mit Transponder Technologie entschieden haben. Easyident Türöffner ist für Unterputzmontage in 55mm

Mehr

Einfache Computersteuerung für Modellbahnen

Einfache Computersteuerung für Modellbahnen Einfache Computersteuerung für Modellbahnen Was soll eigentlich mit einem Computer gesteuert werden? Diese Frage muss man sich als erstes stellen: - Man braucht für Ausstellungen einen kompletten automatischen

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

C++ mit dem Arduino (Uno und Mega2560)

C++ mit dem Arduino (Uno und Mega2560) C++ mit dem Arduino (Uno und Mega2560) 1. Toolchain Als toolchain bezeichnet man die Reihe von Software, die nötig ist um den Prozessor zu programmieren, das Ergebnis draufzuladen und dann zu testen. Hier

Mehr

Stepperfocuser 2.0 mit Bootloader

Stepperfocuser 2.0 mit Bootloader Stepperfocuser 2.0 mit Bootloader Info Für den Stepperfocuser 2.0 gibt es einen Bootloader. Dieser ermöglicht es, die Firmware zu aktualisieren ohne dass man ein spezielles Programmiergerät benötigt. Die

Mehr

Versuchsvorbereitung P1-63: Digitale Elektronik, Schaltlogik

Versuchsvorbereitung P1-63: Digitale Elektronik, Schaltlogik Versuchsvorbereitung P1-63: Digitale Elektronik, Schaltlogik Michael Walz Gruppe 10 28. Oktober 2007 INHALTSVERZEICHNIS Inhaltsverzeichnis 0 Vorwort 3 1 Gatter aus diskreten Bauelementen 3 1.1 AND-Gatter.....................................

Mehr

Spannungsversorgung für Mikrocontroller-Schaltungen DH1AAD, Ingo Gerlach, 20.11.2011, e-mail : Ingo.Gerlach@onlinehome.de

Spannungsversorgung für Mikrocontroller-Schaltungen DH1AAD, Ingo Gerlach, 20.11.2011, e-mail : Ingo.Gerlach@onlinehome.de Spannungsversorgung für Mikrocontroller-Schaltungen DH1AAD, Ingo Gerlach, 20.11.2011, e-mail : Ingo.Gerlach@onlinehome.de Ziel Der Hintergrund für die Entwicklung diese Netzteiles war, das hier am Computer-Arbeitstisch

Mehr

Projekt Nr. 15: Einen elektronischen Würfel erstellen

Projekt Nr. 15: Einen elektronischen Würfel erstellen Nun wissen Sie, wie Sie Zufallszahlen erzeugen können. Als Nächstes wollen wir diese neuen Kenntnisse gleich in die Tat umsetzen, indem wir einen elektronischen Würfel konstruieren. Projekt Nr. 15: Einen

Mehr

Konfiguratorsoftware. für. M-Bus Impulssammler

Konfiguratorsoftware. für. M-Bus Impulssammler Konfiguratorsoftware für M-Bus Impulssammler Typ : M-Count 2C Seite 2 Inhaltsverzeichnis 1. Installation des M-Bus Konfigurators...3 2. Starten des M-Bus Konfigurators...3 3. Basiskonfiguration...5 4.

Mehr

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch};

b) Gegeben sei folgende Enumeration: enum SPRACHE {Deutsch, Englisch, Russisch}; Aufgabe 1: (15 Punkte) Bei den Multiple-Choice-Fragen ist jeweils nur eine richtige Antwort eindeutig anzukreuzen. Auf die richtige Antwort gibt es die angegebene Punktzahl. Wollen Sie eine Multiple-Choice-Antwort

Mehr

Vorbereitung. Teil D Analog-Digital-Wandler 1

Vorbereitung. Teil D Analog-Digital-Wandler 1 Vorbereitung So wird der Analog-Digital-Wandler des Mikrocontrollers ATmega328P initialisiert: ADMUX = _BV(REFS0); ADCSRA = _BV(ADEN) _BV(ADPS2) _BV(ADPS1) _BV(ADPS0); Der Analog-Digital-Wandler ist im

Mehr

Was unterscheidet Microcontroller von einem PC ( Laptop ) oder einem Handy

Was unterscheidet Microcontroller von einem PC ( Laptop ) oder einem Handy uc_kurs_mts_hl_1 Seite 1 S1 Was unterscheidet Microcontroller von einem PC ( Laptop ) oder einem Handy An einen uc kann man eine Menge Sensoren und Aktuatoren anschließen. Mit den Sensoren kann der uc

Mehr

Wer möchte, kann sein Programm auch auf echter Hardware testen

Wer möchte, kann sein Programm auch auf echter Hardware testen U4 3. Übungsaufgabe U4 3. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-μC Register I/O-Ports AVR-Umgebung Peripherie U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit

Mehr

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert? 1 Übersicht Für die Programmierung steht ein Programm zur Verfügung. Hier kann der Quelltext geschrieben, überprüft, kompiliert und anschließend auf den Arduino geladen werden. Wenn ihr das Programm startet,

Mehr

Eine tastergesteuerte LED

Eine tastergesteuerte LED D3kjd3Di38lk323nnm Projekt 1 Eine tastergesteuerte LED In diesem Projekt verwenden Sie einen Taster, um zu steuern, wann die LED leuchtet. Mark Geddes, Arduino-Projekte, dpunkt.verlag, ISBN 978-3-86490-415-8

Mehr

Einführung in Automation Studio

Einführung in Automation Studio Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in

Mehr

8.3 Taster am µcontroller

8.3 Taster am µcontroller 8.3 Taster am µcontroller AVR-KOMPENDIUM Nachdem im vorigen Beispiel das Port als Ausgang verwendet wurde erweitern wir dieses Beispiel um einen Taster - um auch das Einlesen von digitalen Signalen zu

Mehr

Access 2000 und MS SQL Server im Teamwork

Access 2000 und MS SQL Server im Teamwork Access 2000 und MS SQL Server im Teamwork von Irene Bauder, Jürgen Bär 1. Auflage Hanser München 2000 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21473 6 Zu Inhaltsverzeichnis schnell und

Mehr

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: 11.04.2005. CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de DYNAMISCHE SEITEN Warum Scriptsprachen? Stand: 11.04.2005 CF Carola Fichtner Web-Consulting http://www.carola-fichtner.de I N H A L T 1 Warum dynamische Seiten?... 3 1.1 Einführung... 3 1.2 HTML Seiten...

Mehr

3.14 Die Programmieroberfläche Programmierung

3.14 Die Programmieroberfläche Programmierung 121 3.14 Die Programmieroberfläche Programmierung Besonderheiten Die Oberflächen der einzelnen Quellen (3S, KW-Software, Siemens-TIA-Portal, logi.cad 3, PAS4000) sind in sich unterschiedlich. Aber auch

Mehr

Innenbeleuchtungsplatine für Y-Wagen mit integriertem Digitaldecoder

Innenbeleuchtungsplatine für Y-Wagen mit integriertem Digitaldecoder Innenbeleuchtungsplatine für Y-Wagen mit integriertem Digitaldecoder Diese Beleuchtungsplatine ist auf den Y-Wagen angepasst. Sie ist für die Version mit 9 und 10Abteilen und den Speisewagen der Firmen

Mehr

Anleitung TempCW 2011

Anleitung TempCW 2011 TempCW - Wirberg 0 30.09.0 Anleitung TempCW 0 vorläufig Inhaltsverzeichnis Aufbauanleitung... Platine... Programmierstecker... Bestückung...3 Inbetriebnahme... 5 Spannungsversorgung... 5 LEDs... 5 NF Teil...

Mehr

LED Skalenbeleuchtung mit einem Arduino

LED Skalenbeleuchtung mit einem Arduino Projektteil: LED Skalenbeleuchtung mit einem Arduino Aufgaben: - Ein Taster schaltet die LED-Beleuchtung ein - Nach Ablauf einer im Programm hinterlegten Zeit schaltet sich die Beleuchtung von selbst wieder

Mehr

Programmierung Tiny45 für DCC Lokdecoder

Programmierung Tiny45 für DCC Lokdecoder Programmierung Tiny45 für DCC Lokdecoder Hier eine Beschreibung, der Programmierung des Tiny45 für den Lokdecoder. Zur Erstprogrammierung ist ein Programmer für Atmels AVR Mikrokontroller nötig (AVRISP

Mehr

Konfiguration der Messkanäle. Konfiguration der Zeitachse. Abb. 3: Konfigurationsmenü des Sensoreingangs A. Abb. 4: Messparameter Konfigurationsmenü

Konfiguration der Messkanäle. Konfiguration der Zeitachse. Abb. 3: Konfigurationsmenü des Sensoreingangs A. Abb. 4: Messparameter Konfigurationsmenü Anleitung zum Programm CASSY Lab für den Versuch E12 Starten Sie das Programm CASSY Lab durch Doppelklick auf das Icon auf dem Windows- Desktop. Es erscheint ein Fenster mit Lizensierungsinformationen,

Mehr

BASIC-Tiger Application Note No. 027 Rev. 1.0. Zusätzliche I/O Ports mit PCF8475P. Gunther Zielosko. 1. Einführung

BASIC-Tiger Application Note No. 027 Rev. 1.0. Zusätzliche I/O Ports mit PCF8475P. Gunther Zielosko. 1. Einführung Zusätzliche I/O Ports mit PCF8475P Gunther Zielosko 1. Einführung Jeder BASIC-Tiger-Anwender kennt das Problem obwohl der kleine Steuercomputer eigentlich gut mit frei programmierbaren I/O-Pins bestückt

Mehr

Versuchsvorbereitung: P1-63, 64, 65: Schaltlogik

Versuchsvorbereitung: P1-63, 64, 65: Schaltlogik raktikum lassische hysik I Versuchsvorbereitung: 1-63, 64, 65: Schaltlogik hristian untin Gruppe Mo-11 arlsruhe, 26. Oktober 2009 Ausgehend von einfachen Logikgattern wird die Funktionsweise von Addierern,

Mehr

SimpliMed Formulardesigner Anleitung für die SEPA-Umstellung

SimpliMed Formulardesigner Anleitung für die SEPA-Umstellung SimpliMed Formulardesigner Anleitung für die SEPA-Umstellung www.simplimed.de Dieses Dokument erhebt keinen Anspruch auf Vollständigkeit oder Korrektheit. Seite: 2 1. Der Formulardesigner Der in SimpliMed23

Mehr

C++ mit dem Arduino (Uno und Mega2560)

C++ mit dem Arduino (Uno und Mega2560) C++ mit dem Arduino (Uno und Mega2560) 1. Toolchain Als toolchain bezeichnet man die Reihe von Software, die nötig ist um den Prozessor zu programmieren, das Ergebnis draufzuladen und dann zu testen. Hier

Mehr

Das Praxisbuch Samsung Galaxy S4

Das Praxisbuch Samsung Galaxy S4 Rainer Gievers Das Praxisbuch Samsung Galaxy S4 Teil 2: Fortgeschrittene Nutzung Leseprobe Kapitel 28 ISBN 978-3-938036-64-8 Hinweis: In der gedruckten Version dieses Buchs sind alle Abbildungen schwarzweiß,

Mehr

Treiberinstallation Bitte laden Sie sich die *inf Datei für den Treiber des Prog-S-Programmer hier herunter: www.diamex.de Kartenreiter download Programmiergeräte - ERFOS-Prog-S.zip Die *inf Datei auf

Mehr

Technische Dokumentation. TopMessage / TopLab Hardware MessHaus Softwarekomponenten SPS

Technische Dokumentation. TopMessage / TopLab Hardware MessHaus Softwarekomponenten SPS Delphin Technology AG Sülztalstraße 23 D 51491 Overath-Brombach Tel: ++49 2207 9645 0 Fax: ++49 2207 9645 35 Technische Dokumentation TopMessage / TopLab Hardware MessHaus Softwarekomponenten SPS Ergänzende

Mehr

Autoradio On Off Schaltung

Autoradio On Off Schaltung Autoradio On Off Schaltung Konzeption, Anleitung und Hinweise Christian Schönig Schöneberger Str. 20 82377 Penzberg Inhalt 1. MOTIVATION... 3 1.1. AKTUELLER STAND BEI HERSTELLER RADIO... 3 1.2. ANSCHLUSS

Mehr

Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld

Dateien, die nicht in das Projekt eingebunden sind, werden ohne Syntax highlight dargestellt. MiCoWi und µvision Seite 1 Uwe Wittenfeld C-Programmierung von MiCoWi mit der Keil-Entwicklungsumgebung µvision4 1. Erstellung eines neuen Projektes Menüpunkt: Project New µvision Project Es wird ein komplett neues Projekt in einem beliebigen

Mehr

Tonbandspuren Steuern von Bandmaschinen

Tonbandspuren Steuern von Bandmaschinen Tonbandspuren Steuern von Bandmaschinen - 1 - - 2 - Handbuch: Ernst Nathorst-Böös, Ludvig Carlson, Anders Nordmark, Roger Wiklander Übersetzung: K. Albrecht, C. Bachmann, E. Gutberlet, S. Pfeifer, C. Schomburg

Mehr

Eigenbau UKW-Retro-Radio 02

Eigenbau UKW-Retro-Radio 02 Unterhaching, 05.01.2009 Eigenbau UKW-Retro-Radio 02 Bild 1 So schaut die unbestückte Prototype-Leiterplatte aus 1. Vorwort Nachdem ich ja nun schon an Retro-Radios für AM (Mittelwelle) gearbeitet habe

Mehr

10. Elektrische Logiksysteme mit

10. Elektrische Logiksysteme mit Fortgeschrittenenpraktikum I Universität Rostock - Physikalisches Institut 10. Elektrische Logiksysteme mit Rückführung Name: Daniel Schick Betreuer: Dipl. Ing. D. Bojarski Versuch ausgeführt: 22. Juni

Mehr

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale

Mehr

Prinzipieller Grundaufbau eines einfachen C-Programmes

Prinzipieller Grundaufbau eines einfachen C-Programmes Prinzipieller Grundaufbau eines einfachen C-Programmes C unterscheidet zwischen Groß- und Kleinschreibung! Siehe zu den folgenden Erklärungen auch das Programm am Ende der nächsten Seite. Am Anfang aller

Mehr

Snake Projekt. Jan Scholz. 16. März 2013

Snake Projekt. Jan Scholz. 16. März 2013 Snake Projekt Jan Scholz 16. März 2013 Inhaltsverzeichnis 1 Einführung 3 2 Hardware Entwicklung 4 2.1 Mikrocontroller............................. 4 2.2 LED-Matrix............................... 4 2.2.1

Mehr

J. Prof. Dr.-Ing. Georg Frey Juniorprofessur Agentenbasierte Automatisierung. Laborunterlagen zum Themengebiet Steuerungstechnik. zusammengestellt von

J. Prof. Dr.-Ing. Georg Frey Juniorprofessur Agentenbasierte Automatisierung. Laborunterlagen zum Themengebiet Steuerungstechnik. zusammengestellt von J. Prof. Dr.-Ing. Georg Frey Juniorprofessur Agentenbasierte Automatisierung Laborunterlagen zum Themengebiet Steuerungstechnik zusammengestellt von Georg Frey und Stéphane Klein Modul 3 Simatic STEP7

Mehr

Protokoll zu Grundelemente der Digitaltechnik

Protokoll zu Grundelemente der Digitaltechnik Protokoll zu Grundelemente der Digitaltechnik Ronn Harbich 22. uli 2005 Ronn Harbich Protokoll zu Grundelemente der Digitaltechnik 2 Vorwort Das hier vorliegende Protokoll wurde natürlich mit größter Sorgfalt

Mehr

Erste Schritte PRÄSENTIEREN MIT MEDIATOR 8.0 PRO

Erste Schritte PRÄSENTIEREN MIT MEDIATOR 8.0 PRO Studienseminar Eschwege Modul: MeMe 1. September 2oo8 J. E. von Specht /Dirk Rudolph Erste Schritte PRÄSENTIEREN MIT MEDIATOR 8.0 PRO Programm auf dem Desktop auswählen oder über Programm Mediator 8 aufrufen

Mehr

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform Einführung in das Programmieren in der Sekundarstufe 1 mit einem Arduino und der Physical-Computing-Plattform 1 Arduino mit Breadboard (Steckbrett) und LED mit Vorwiderstand Arduino-Board Uno R3 mit Mikrocontroller

Mehr

Fallunterscheidung: if-statement

Fallunterscheidung: if-statement Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0

Mehr

Zähler- und Zeitgeber-Baugruppen

Zähler- und Zeitgeber-Baugruppen Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,

Mehr

Programmierübungen in Assembler

Programmierübungen in Assembler Programmierübungen in Assembler 1. LED Ein-/Ausschalten Verwendet: Ports An Portpin P3.0 ist eine LED angeschlossen. An Portpin P1.0 ist ein Taster angeschlossen. a) Schreiben Sie ein Programm, welches

Mehr

RS232 to Ethernet Interface. COM-Server. B 95.9705.2 Schnittstellenbeschreibung 12.00/00389961

RS232 to Ethernet Interface. COM-Server. B 95.9705.2 Schnittstellenbeschreibung 12.00/00389961 RS232 to Ethernet Interface COM-Server B 95.9705.2 Schnittstellenbeschreibung 12.00/00389961 Inhalt 1 Einleitung 3 1.1 Sinn und Zweck... 3 1.2 Systemvoraussetzungen... 3 2 Logoscreen vorbereiten 4 2.1

Mehr

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./29.05.2009

Übungen zu Architektur Eingebetteter Systeme. Teil 1: Grundlagen. Blatt 5 1.1: VHDL 28./29.05.2009 Übungen zu Architektur Eingebetteter Systeme Blatt 5 28./29.05.2009 Teil 1: Grundlagen 1.1: VHDL Bei der Erstellung Ihres Softcore-Prozessors mit Hilfe des SOPC Builder hatten Sie bereits erste Erfahrungen

Mehr

Was so passieren wird:

Was so passieren wird: Arduino Einführung Arduino Einführung Was so passieren wird: Was so passieren wird: Arduino Überblick Was so passieren wird: Arduino Überblick Die Taschenlampe Was so passieren wird: Arduino Überblick

Mehr

Einführung in die Welt der Microcontroller

Einführung in die Welt der Microcontroller Übersicht Microcontroller Schaltungen Sonstiges Einführung in die Welt der Microcontroller Übersicht Microcontroller Schaltungen Sonstiges Inhaltsverzeichnis 1 Übersicht Möglichkeiten Einsatz 2 Microcontroller

Mehr

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 2 Der Mikrocontroller Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 1 beschrieben. Auf dem Chip sind die, ein ROM- für das Programm, ein RAM- für die variablen

Mehr

Erste Gehversuche mit ARDUINO (DL6OAA)

Erste Gehversuche mit ARDUINO (DL6OAA) Erste Gehversuche mit ARDUINO (DL6OAA) Zuerst die Software und Treiber installieren, siehe Anleitung auf der CD. Testen des Boards Arduino-Programm starten. Gehe zum Menüpunkt WERKZEUGE. Wenn die Installation

Mehr

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch 29.11.2005. für Direkt-Digital-Vario. Firmware ab 00-06-00 Hardware 01 Seriennummer ab 0003

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch 29.11.2005. für Direkt-Digital-Vario. Firmware ab 00-06-00 Hardware 01 Seriennummer ab 0003 DIGITALVARIO Anleitung Bootloader Ausgabe 0.1 deutsch 29.11.2005 für Direkt-Digital-Vario Firmware ab 00-06-00 Hardware 01 Seriennummer ab 0003 1. Funktion Der Bootloader dient dazu Updates der Variosoftware

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Einbau- und Bedienungsanleitung

Einbau- und Bedienungsanleitung Einbau- und Bedienungsanleitung Der universelle DSP CarHifi Store Miketta Mobile Solutions Vielen Dank für den Kauf Ihres neuen MXA 100. Um den Prozessor optimal und sicher nutzen zu können, möchten wir

Mehr

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Atmega Interrupts Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös Inhaltsverzeichnis Vorbereitung Was Sind Interrupts Interruptvektoren Software Interrupts Hardware Interrupts Quellen 2 Vorbereitung Rechner

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propädeutikum. Dipl.-Inf. Frank Güttler Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik

Mehr

Einführung in die Informationstechnik. Eingabe - Verarbeitung - Ausgabe CIUS - KREISLICHT. Realschule Tamm Technik Axel Steinbach

Einführung in die Informationstechnik. Eingabe - Verarbeitung - Ausgabe CIUS - KREISLICHT. Realschule Tamm Technik Axel Steinbach Einführung in die Informationstechnik Eingabe - Verarbeitung - Ausgabe CIUS - KREISLICHT Realschule Tamm Technik Axel Steinbach CIUS Kreislicht Netzgerät 1 V Interface 1 Resetknopf 4 Monitor Computer...

Mehr

Interrupt-Programmierung

Interrupt-Programmierung Interrupt-Programmierung Am Beispiel des ATMEGA16 Microcontrollers Beispiel: Messung der Betriebszeit Die Betriebszeit zeigt an, wie lange der Rechner seit dem Booten läuft Hier: Aktualisierung der Betriebszeit

Mehr

1 Vom Problem zum Programm

1 Vom Problem zum Programm Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren

Mehr

U5-2 Register beim AVR-µC

U5-2 Register beim AVR-µC U5 4. Übungsaufgabe U5 4. Übungsaufgabe U5-2 Register beim AVR-µC U5-2 Register beim AVR-mC Grundlegendes zur Übung mit dem AVR-µC 1 Überblick Register Beim AVR µc sind die Register: I/O Ports Interrupts

Mehr

C und C++ für Embedded Systems

C und C++ für Embedded Systems C und C++ für Embedded Systems von Friedrich Bollow, Matthias Homann, Klaus-Peter Köhn Neuausgabe C und C++ für Embedded Systems Bollow / Homann / Köhn schnell und portofrei erhältlich bei beck-shop.de

Mehr

192.168.0.1. Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen.

192.168.0.1. Wenn wir also versuchen auf einen anderen PC zuzugreifen, dann können wir sowohl per Name als auch mit der Adresse suchen. Windows Netzwerk Sie haben einen oder mehrere PC mit einander verbunden? Dann sollte man das auch nutzen. Generelles: Ein PC hat in der Regel IMMER eine feste Nummer / Adresse (egal ob wechselnd oder immer

Mehr

BFI Industrie-Elektronik GmbH + Co. KG

BFI Industrie-Elektronik GmbH + Co. KG BFI Industrie-Elektronik GmbH + Co. KG ELEKTRONIK AC-Display BFI Industrie-Elektronik GmbH & Co. KG Winchenbachstr. 3b 42281 Wuppertal Tel.: 0202/260446-0 Fax: 0202/260446-24 info@bfi-elektronik.de www.bfi-elektronik.de

Mehr

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1

D.1 Vorbereitung. Teil D Analog-Digital-Wandler 1 D.1 Vorbereitung So wird der Analog-Digital-Wandler des Mikrocontrollers ATmega328P initialisiert: ADMUX = _BV(REFS0); ADCSRA = _BV(ADEN) _BV(ADPS2) _BV(ADPS1) _BV(ADPS0); Der Analog-Digital-Wandler ist

Mehr

Schaltbild E Tec Module Schaltbeispiel (Prüfschaltung)

Schaltbild E Tec Module Schaltbeispiel (Prüfschaltung) E Tec Module rt.nr.08227. Spezialprogramme für Digitaltechnik Für Freunde der Digitaltechnik sind im "E Tec Module" noch weitere vier Programme enthalten, die über die Dipschalter eingestellt werden. Diese

Mehr

Dennis S. Weiß & Christian Niederhöfer. Versuchsprotokoll. (Fortgeschrittenen-Praktikum) zu Versuch 15. Digitalelektronik

Dennis S. Weiß & Christian Niederhöfer. Versuchsprotokoll. (Fortgeschrittenen-Praktikum) zu Versuch 15. Digitalelektronik Montag, 31.5.1999 Dennis S. Weiß & Christian Niederhöfer Versuchsprotokoll (Fortgeschrittenen-Praktikum) zu Versuch 15 Digitalelektronik 1 Inhaltsverzeichnis 1 Problemstellung 3 2 nwendungen des de Morgan

Mehr

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C Interrupts Funktionsprinzip Interrupts bei ATmega128 Beispiel in C Funktionsprinzip 1 Was ist ein Interrupt? C muss auf Ereignisse reagieren können, z.b.: - jemand drückt eine Taste - USART hat Daten empfangen

Mehr

Serie 8: Microcontroller 17./18.07.2014

Serie 8: Microcontroller 17./18.07.2014 Serie 8: Microcontroller 17./18.07.2014 I. Ziel der Versuche Erster Erfahrungen mit einem Microcontroller sollen gesammelt werden, die grundlegenden Ein- Ausgabe-Operationen werden realisiert. II. Vorkenntnisse

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Praktikum Digitaltechnik

Praktikum Digitaltechnik dig Datum : 1.06.2009 A) Vorbereitungsaufgaben 1) Was unterscheidet sequentielle und kombinatorische Schaltungen? Kombinatorische ~ Sequentielle ~ Ausgänge sind nur vom Zustand der Eingangsgrößen abhängig

Mehr

Adobe Photoshop CS2, CS3, CS4, CS5 mit Auto-SoftProof-Ansicht

Adobe Photoshop CS2, CS3, CS4, CS5 mit Auto-SoftProof-Ansicht Typischerweise belässt und bearbeitet man digitale Bilder im RGB-Farbmodus, auch wenn das Hauptausgabeziel ein CMYK- Farbraum ist. Um eine farbliche Kontrolle des Ergebnisses während der Bearbeitung zu

Mehr