Vor der Benutzung eines Ports ist für die einzelnen Portanschlüsse die Datenrichtung festzulegen:

Größe: px
Ab Seite anzeigen:

Download "Vor der Benutzung eines Ports ist für die einzelnen Portanschlüsse die Datenrichtung festzulegen:"

Transkript

1 AVR-Mikrocontroller ATmaga32 in AVR-GCC Programmieren Ein-Ausgabe-Ports Der Mikrocontroller ATmage32 hat 4 8Bit-Ports zum Datenaustausch mit der Peripherie: PORT A, PORT B, PORT C und Port D. Die einzelnen Bits dieser Ports können unabhängig von einander als Eingänge oder Ausgänge benutzt werden. Die Programmierung erfolgt jeweils über 3 8Bit-Register: Port Port A Port B Port C Port D BitNr (A) Datenrichtungsregister DDRA DDRB DDRC DDRD DDAx Datenausgaberegister PORTA PORTB PORTC PORTD PAx Pin-Leseregister PINA PINB PINC PIND PINAx Vor der Benutzung eines Ports ist für die einzelnen Portanschlüsse die Datenrichtung festzulegen: Beispiel für Port A: Bits 4-7 Ausgänge, Bits 0 bis 3 Eingänge, DDRA = 0xf0; // entspricht binär Ausgänge werden mit 1, Eingänge mit 0 programmiert. Mit dem Datenausgaberegister PORTA (kein Leerzeichen!) können nun an den Port A Daten ausgegeben werden: Beispiel: Es soll ausgegeben werden: PA7=1, PA6=1, PA5=0, PA4=1 PA0 bis PA7 sind die Bezeichnungen der Bits. PORTA=0xD0; // binär Der in der AVR-Gemeinde bevorzugte Programmierstil arbeitet mit den Shift- Operator: PORTA = (1<<PA7) (1<<PA6) (1<<PA4); Erklärung: PA7 steht für 7, PA6 für 6 und PA4 für 4. (1<<PA7) Verschiebt die 1 im Byte um 7 Stellen nach links:

2 Aus wird Das heißt (1<<PA7) berechnet den Gewichtungsfaktor von Bit7 (128). Die einzelnen Gewichtungsfaktoren für zu programmierende Einsen werden dann oder-verknüpft: oder oder entspricht 0xD0 Durch Setzen einer 1 im Register PORTA können bei den programmierten Eingängen interne PULL-UP-Widerstände programmiert werden, zum Beispiel, um Schalter gegen Masse anzuschließen. Ein einzelnes Portbit setzen: sbi(porta, PA5); // mit #include "bit.h" oder PORTA =(1<<PA5); Mehrere einzelne Portbits setzen: PORTA =(1<<PA5) (1<<PA6); oder PORTA= PORTA 0x60; Ein einzelnes Portbit zurücksetzen: cbi(porta, PA5); // mit #include "bit.h" oder PORTA &= ~(1<<PA5); PORTA &= ~((1<<PA5) (1<<PA6)) oder PORTA= PORTA & (~0x60);

3 Mit dem Pin-Leseregister können nun die als Eingänge definierten Anschlüsse gelesen werden: Den ganzen Port lesen: unsigned char ein; // besser: uint8_t ein; ein=pina; Ein einzelnes Bit testen: if(bit_is_set(pina, PINA2)) //Wenn Bit 2 Eins ist, oder if(bit_is_clear(pina, PINA2) //Wenn Bit 2 Null ist, oder if(pina&(1<<pina2)) //Wenn Bit 2 Eins ist, oder if(!(pina&(1<<pina2)) //Wenn Bit 2 Null ist

4 Bitverarbeitung mit Hilfe einer Union mit Bitfeld Header-Datei bbbk.h #ifndef _bbbk_ #define _bbbk_ typedef union { uint8_t byte; struct { uint8_t b0 : 1; uint8_t b1 : 1; uint8_t b2 : 1; uint8_t b3 : 1; uint8_t b4 : 1; uint8_t b5 : 1; uint8_t b6 : 1; uint8_t b7 : 1; bit; bbbk; Diese Typdefinition ermöglicht den direkten Zugriff ein Byte und auf die einzelnen Bits dieses Bytes: Man kann nun "Hybrid"-Variablen anlegen, die als Byte oder auch in ihren einzelnen Bits angesprochen werden können: bbbk a; #endif Ansprechen als Byte(lesen + schreiben): a.byte = 0xab; // a.byte < Ansprechen eines Bits (lesen + schreiben) a.bit.b6 = 1; // Bit 6=1 => a.byte <

5 bit.h Weiter zusätzliche Header-Dateien #ifndef cbi #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) //Löschen eines Bits in einem Register //Beispiel cbi(portc,pc5) oder cbi(portc,5) löscht Bit5. //Alle anderen Bits werden nicht verändert. #endif #ifndef sbi #define sbi(sfr, bit) (_SFR_BYTE(sfr) = _BV(bit)) //Setzen eines Bits in einem Register //Beispiel sbi(portc,pc5) oder cbi(portc,5) setzt Bit5 auf 1. //Alle anderen Bits werden nicht verändert. #endif #ifndef bit_is_set #define bit_is_set(sfr, bit) (_SFR_BYTE(sfr) & _BV(bit)) //Prüft, ob ein Bit in einem Register gesetzt (1) ist. //Beispiel if(bit_is_set(pinc,pinc0))... // oder if(bit-is_set(pinc,0))... #endif #ifndef bit_is_clear #define bit_is_clear(sfr, bit)!(_sfr_byte(sfr) & _BV(bit)) //Prüft, ob ein Bit in einem Register gelöscht (0) ist. //Beispiel if(bit_is_clear(pinc,pinc0))... // oder if(bit-is_clear(pinc,0))... #endif

6 warten.h #include <avr/delay.h> void warten1s(void){ uint8_t n; for(n=0;n<50;n++) _delay_ms(160);//50*(160/8) ms = 1 Sekunde bei 8MHz void warten1ms(void){ _delay_ms(8);//(8/8) ms = 1 ms bei 8MHz void warten10ms(void){ _delay_ms(80);//(80/8) ms = 10 ms bei 8MHz void warten100ms(void){ uint8_t n; for(n=0; n<5;n++) _delay_ms(160);//5*(160/8) ms = 100 ms bei 8MHz void warten_ns(unit8_t n){ uint8_t k; for(k=0;k< n ; k++) warten1s();

7 Aufgaben: Port C wird mit der Erweiterungskarte verbunden: PORT C --- SV4. Die Jumper 5V und Pull-Down sind gesteckt. Damit liegt folgende Beschaltung von Port C vor: +5V PC0 S9 PC1 S10 PC2 S11 PC3 S12 PC4 PC5 PC6 PC7 LED 1 LED 2 LED 3 LED 4 0V A1) Im Grundzustand sind alle LEDs aus. Bei gedrücktem Taster S9 leuchtet LED1. Nach Loslassen von S9 geht das LED 1 wieder aus. A2) Im Grundzustand sind alle LEDs aus. Bei Betätigung von S9 werden alle LEDs eingeschaltet und bei Betätigung von S10 wieder ausgeschaltet. A3) Erweitern Sie das Programm A1) so, dass auch die Taster S10 bis S13 die entsprechenden LEDs LED 2 bis LED 4 einzeln schalten! A4) Nach Betätigen des entsprechenden Tasters soll der Leuchtzustand des zugeordneten LED umgeschaltet (getoggelt) werden und bis zur nächsten Betätigung des zugeordneten Tasters erhalten bleiben.

8 A5) Es soll die folgende logische Schaltung simuliert werden: PC0 = PC4 PC0 >1 = PC6 PC3 PC1 PC1 = PC5 PC2 & PC7 PC2 PC3 A6) Die logische Schaltung der Aufgabe 5 liegt extern vor. Erstellen Sie ein Programm, das eine Qualitätskontrolle der Schaltung vornimmt!

9 Lösungen: zu A1 Version 1) int main(void) { DDRC=0xf0; // PC4 - PC7 als Ausgänge einstellen while (1) { if((pinc&(1<<pinc0))==1) PORTC =(1<<PC4); //Wenn Taste gedrückt, Led ein, else PORTC&=~(1<<PC4); // sonst Led aus zu A1 Version 2) #include "bit.h" int main(void) { DDRC=0xf0; // PC4 - PC7 als Ausgänge einstellen while (1) { if(bit_is_set(pinc,pinc0)) sbi(portc,pc4); else cbi(portc,pc4);

10 zu A1 Version 3) include <avr/io.h> #include "bbbk.h" int main(void) { bbbk PinC, PortC; //Hybrid-Variablen vereinbaren DDRC=0xf0; // PC4 - PC7 als Ausgänge einstellen PortC.byte=0; //Byte der Variablen PortC auf 0 setzen while (1) { PinC.byte = PINC; //Pin-Byte lesen if(pinc.bit.b0==1) PortC.bit.b4=1; else PortC.bit.b4=0; PORTC=PortC.byte; //Port-Byte schreiben zu A2 Version 1) int main(void){ DDRC=0xf0; // PC4 - PC7 als Ausgänge einstellen do { if(pinc&(1<<pinc0)) PORTC =(1<<PC4) (1<<PC5) (1<<PC6) (1<<PC7); // oder PORTC =0xf0; if(pinc&(1<<pinc1) PORTC&=~((1<<PC4) (1<<PC5) (1<<PC6) (1<<PC7)); // oder PORTC&=0x0f; while(1);

11 zu A2 Version 2) #define Taster1_gedrueckt PINC&(1<<PINC0) #define Taster2_gedrueckt PINC&(1<<PINC1) #define AlleLedsEinschalten PORTC =(1<<PC4) (1<<PC5) (1<<PC6) (1<<PC7) #define AlleLedsAusschalten PORTC&=~((1<<PC4) (1<<PC5) (1<<PC6) (1<<PC7)) int main(void) { DDRC=0xf0; do { if(taster1_gedrueckt) AlleLedsEinschalten; if(taster2_gedrueckt) AlleLedsAusschalten; while(1); Hinweis: Der Compiler ersetzt vor der Compilierung die in den "#Defines" definierten Texte durch die rechts stehenden Ausdrücke. So kann man ein Programm besser lesbar machen. zu A3) int main(void){ DDRC=0xf0; // PC4 - PC7 als Ausgänge einstellen do{ if(pinc&(1<<pinc0)) PORTC =(1<<PC4); else PORTC&=~(1<<PC4); if(pinc&(1<<pinc1)) PORTC =(1<<PC5); else PORTC&=~(1<<PC5); if(pinc&(1<<pinc2)) PORTC =(1<<PC6); else PORTC&=~(1<<PC6); if(pinc&(1<<pinc3)) PORTC =(1<<PC7); else PORTC&=~(1<<PC7); while(1);

12 zu A4) #include "warten.h" int main(void){ DDRC=0xf0; // PC4 - PC7 als Ausgänge einstellen do{ if(pinc&(1<<pinc0)) { PORTC^=(1<<PC4); while(pinc&(1<<pinc0)); warten100ms(); if(pinc&(1<<pinc1)) { PORTC^=(1<<PC5); while(pinc&(1<<pinc1)); warten100ms(); if(pinc&(1<<pinc2)) { PORTC^=(1<<PC6); while(pinc&(1<<pinc2)); warten100ms(); if(pinc&(1<<pinc3)) { PORTC^=(1<<PC7); while(pinc&(1<<pinc3)); warten100ms(); while(1); Erklärung: while(pinc& ) warten100ms() Warten auf Loslassen der gedrückten Taste zum Entprellen der Taster

13 zu A5 Version1 #include "bit.h" int main(void) { uint8_t b0,b1,b2,b3; DDRC=0xf0; do{ if(pinc&(1<<pinc0)) b0=1; else b0=0; if(pinc&(1<<pinc1)) b1=1; else b1=0; if(pinc&(1<<pinc2)) b2=1; else b2=0; if(pinc&(1<<pinc3)) b3=1; else b3=0; if(b0==b3) PORTC =(1<<PC4); if(b1!=b2) PORTC =(1<<PC5); if(!(b0 b1)) PORTC =(1<<PC6); if(!(b2&b3)) PORTC =(1<<PC7); else PORTC&=~(1<<PC4); else PORTC&=~(1<<PC5); else PORTC&=~(1<<PC6); else PORTC&=~(1<<PC7); while(1); /* Beispiel Bit0 und Bit3 sind 1: PINC&(1<<PINC0) == PINC&(1<<PINC3) geht nicht! Diese Bytes werden hier verglichen! Da die Bits an verschiedenen Stellen im Byte liegen, sind die Bytes trotzdem ungleich! */

14 A5 Version 2 #include "bbbk.h" int main(void){ bbbk PinC,PortC; PortC.byte=0; DDRC=0xf0; do{ PinC.byte=PINC; if(pinc.bit.b0==pinc.bit.b3) PortC.bit.b4=1; else PortC.bit.b4=0; if(pinc.bit.b1!=pinc.bit.b2) PortC.bit.b5=1; else PortC.bit.b5=0; if(!(pinc.bit.b0 PinC.bit.b1)) PortC.bit.b6=1; else PortC.bit.b6=0; if(!(pinc.bit.b2 & PinC.bit.b3)) PortC.bit.b7=1; else PortC.bit.b7=0; PORTC=PortC.byte; while(1);

15 A5 Version 3 mit Array const uint8_t aus[16]={0xd0,0x80,0xb0,0xa0,0xf0,0xa0,0x90,0x80, 0xc0,0x90,0xa0,0xb0,0x60,0x30,0x00,0x10; uint8_t ein; int main(void){ DDRC=0xf0; do{ ein=pinc&0x0f; PORTC=aus[ein]; while(1);

16 A6 #include <lcd.h> #include "warten.h" /* Mikrocontrollersystem ATmega32 BBBK: Qualitätskontrolle einer externen logischen Schaltung: Autor: Wolfgang Tschallener Schaltung: bit4=(bit0==bit3) Äquivalenz bit5=(bit1!= Bit2) Antivalenz bit6=nor(bit0,bit1) NOR bit7=nand(bit2,bit3)nand Verbindungen: PortA und Sonderstecker an Prüfschaltung PortD - SV2 für LCD-Display */ uint8_t sollwert[16]={0xd0,0x80,0xb0,0xa0,0xf0,0xa0,0x90,0x80, 0xc0,0x90,0xa0,0xb0,0x60,0x30,0x00,0x10; uint8_t istwert,ein,fehler; int main(void){ lcd_init(0x0c); DDRA=0x0f;//Bit 0-3 Ausgänge (1), Bit 4-7 Eingänge (0) fehler=0; for(ein=0;ein<16;ein++){ PORTA=ein; warten100ms(); istwert = PINA&0xf0; lcd_gotoxy(0,0);lcd_puts("ist "); lcd_puti(istwert,3); lcd_gotoxy(0,1);lcd_puts("soll ");lcd_puti(sollwert[ein],3); warten100ms(); if(istwert!=sollwert[ein]) fehler=1;

17 lcd_clrscr(); lcd_gotoxy(0,0); if(fehler) lcd_puts("fehler!!!"); else lcd_puts("alles OK!"); while(1); //Das ist eine Endlosschleife

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

IR NEC Empfänger mit 4x7 LED Anzeige (ATtiny2313)

IR NEC Empfänger mit 4x7 LED Anzeige (ATtiny2313) // Include C Libriaries #include #define F_CPU 4000000UL #include #include #include #include // Definition der Segmente #define SEG_O

Mehr

Aufbau eines Assembler-Programms

Aufbau eines Assembler-Programms Aufbau eines Assembler-Programms. Assembler-Anweisungen (Direktiven) Einbindung von include-files Definition von Konstanten, Reservierung von Speicherplatz im RAM, 2. Was tun, wenn C Reset-Signal erhält

Mehr

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

Lotto. eine Projektarbeit in DVT. von Sven Schwab

Lotto. eine Projektarbeit in DVT. von Sven Schwab Lotto eine Projektarbeit in DVT von Sven Schwab IAV 2 Nürnberg, den 21.07.2010 Agenda 1) Idee 2) Projektbestandteile - Software - Hardware 3) Projektdetails - Ablauf - Fehler die auftreten können 4) Quellcode

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

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 4 Sommersemester 2016 Inhalt Module Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm

Mehr

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm U4 4. Übungsaufgabe U4 4. Übungsaufgabe Grundlegendes zur Übung mit dem AVR-µC Register I/O Ports Interrupts AVR-Umgebung U4.1 U4-1 Grundlegendes zur Übung mit dem AVR-mC U4-1 Grundlegendes zur Übung mit

Mehr

Mikrocontrollerplatine vorbereiten

Mikrocontrollerplatine vorbereiten Mikrocontrollerplatine vorbereiten Aufgabe B1 Verbinden Sie einen Tastschalter mit dem Anschluss PD2 und eine Leuchtdiode mit dem Anschluss PD6 (Vorwiderstand nicht vergessen!). Teil B Timer 1 Mikrocontrollerplatine

Mehr

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Schnittstellenbeschreibung. Inhalt

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Schnittstellenbeschreibung. Inhalt Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier () Übung 4 Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm Initialisierung eines Moduls Active-high & Active-low

Mehr

Inhalt. Aufgabe 4: LED-Modul Hinweise Testen des Moduls Sommersemester 2015

Inhalt. Aufgabe 4: LED-Modul Hinweise Testen des Moduls Sommersemester 2015 Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Sebastian Maier, Heiko Janker () Übung 4 Ablauf vom Quellcode zum laufenden Programm Active-high & Active-low Hinweise Sommersemester 2015

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

AVR Ein/Ausgabe. Inhaltsverzeichnis

AVR Ein/Ausgabe. Inhaltsverzeichnis Inhaltsverzeichnis AVR Ein/Ausgabe 1 Pinout Arduino Board...4 2 AVR PORT - I N P U T PINB...6 3 AVR PORT Architektur Bausteine...8 4 AVR Port O U T P U T PORTB...10 5 AVR PORT Architektur: Fragen 2...12

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

Addieren und Subtrahieren mit Mikrocontroller Atmega AT90162USB

Addieren und Subtrahieren mit Mikrocontroller Atmega AT90162USB Addieren und Subtrahieren mit Mikrocontroller Atmega AT90162USB Projekt: Markus Sellner Hardware: AT90USB162 auf Entwicklerplatine AVR-USB-162 von Olimex erweitert um zwei 7-Segment-Anzeigen Aufgabe: Mit

Mehr

Wiederholung: Zugriff auf AVR-Prozessor-Register. Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek

Wiederholung: Zugriff auf AVR-Prozessor-Register. Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek U4 4. Übung U4 4. Übung Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Hexadezimalzahlen Überblick: Modulare Softwareentwicklung Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek

Mehr

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

Programmieren in C Teil 3: Mikrocontrollerprogrammierung Programmieren in C Teil 3: Mikrocontrollerprogrammierung 08/30/10 Fachbereich Physik Institut für Kernphysik Bastian Löher, Martin Konrad 1 Tag 1 Hello World 08/30/10 Fachbereich Physik Institut für Kernphysik

Mehr

C.1 Serielle Schnittstelle, erstes Testprogramm (a)

C.1 Serielle Schnittstelle, erstes Testprogramm (a) C.1 Serielle Schnittstelle, erstes Testprogramm (a) Verbinden Sie die Mikrocontrollerplatine mit dem USB-Anschluss Ihres Rechners und laden Sie das abgebildete Testprogramm auf den Mikrocontroller. Es

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

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Globale Variablen

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Globale Variablen Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Heiko Janker, Moritz Strübe, Rainer Müller () Wintersemester 24/25 volatile Verwendung Module Hinweise zur Aufgabe Übungen zu SPiC (WS 24/5)

Mehr

U3-1 Register beim AVR-μC. U3 3. Übung. U3-2 I/O-Ports des AVR-μC. 1 Überblick. 2 Makros für Register-Zugriffe. 1 Überblick

U3-1 Register beim AVR-μC. U3 3. Übung. U3-2 I/O-Ports des AVR-μC. 1 Überblick. 2 Makros für Register-Zugriffe. 1 Überblick U3 3. Übung U3 3. Übung U3-1 Register beim AVR-μC U3-1 Register beim AVR-mC Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Zahlensysteme Überblick: Modulare Softwareentwicklung

Mehr

Wiederholung: Zugriff auf AVR-Prozessor-Register. Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek

Wiederholung: Zugriff auf AVR-Prozessor-Register. Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek U3 3. Übung U3 3. Übung Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Zahlensysteme Überblick: Modulare Softwareentwicklung Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek U3.1

Mehr

Wiederholung: Zugriff auf AVR-Prozessor-Register

Wiederholung: Zugriff auf AVR-Prozessor-Register U3 3. Übung U3 3. Übung Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Zahlensysteme Überblick: Modulare Softwareentwicklung Aufgabe 3: 7seg-Modul der SPiCboard-Bibliothek U3.1

Mehr

Arduino µcontroller. Virtuelle COMSchnittstelle

Arduino µcontroller. Virtuelle COMSchnittstelle Aufgaben: Arduino µcontroller 1. Die gegebene Software auf einen ARDUINO MEGA-Board aufspielen weil die PORTS A (8xSchalter) und C (8xLEDs) benutzt werden. Steht nur ein UNO-Board zur Verfügung, dann den

Mehr

Projekt: Ampelsteuerung für die Kinderverkehrserziehung der Stadtpolizei Dornbirn

Projekt: Ampelsteuerung für die Kinderverkehrserziehung der Stadtpolizei Dornbirn Projekt: Ampelsteuerung für die Kinderverkehrserziehung der Stadtpolizei Dornbirn Gesponsert von: Ing. Bernhard Baumgartner E-Mail: bernhard@baumgartners.at www.omicron-lab.com Ing. Bernhard Baumgartner

Mehr

Projektarbeit aus der Datenverarbeitung. Lotto. von: Hubert Schlenk Olimex AVR USB 162 Entwicklerboard Hubert Schlenk

Projektarbeit aus der Datenverarbeitung. Lotto. von: Hubert Schlenk Olimex AVR USB 162 Entwicklerboard Hubert Schlenk Projektarbeit aus der Datenverarbeitung Lotto von: Hubert Schlenk 21.07.2010 Olimex AVR USB 162 Entwicklerboard 2010 Hubert Schlenk Aufgabenstellung: Die Aufgabe war die Entwicklung eines kleinen Programmes

Mehr

U2-1 Register beim AVR- C. U2-2 I/O-Ports des AVR- C. 1 Überblick. 2 Makros für Register-Zugriffe. 1 Überblick

U2-1 Register beim AVR- C. U2-2 I/O-Ports des AVR- C. 1 Überblick. 2 Makros für Register-Zugriffe. 1 Überblick U2 4. Übung U2 4. Übung U2-1 Register beim AVR- C U2-1 Register beim AVR-mC Wiederholung: Zugriff auf AVR-Prozessor-Register Wiederholung: I/O-Ports Bitoperationen und Hexadezimalzahlen Überblick: Modulare

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

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Aufgabe4 Led Modul Wiederholung Konfiguration der Pins Hinweise zur Aufgabe

Mehr

Projektarbeit in DVT auf dem Entwicklerboard

Projektarbeit in DVT auf dem Entwicklerboard Projektarbeit in DVT auf dem Entwicklerboard OUMEX AVR-USB-162 von Michael Eggl, Markus Vogl 1 FROM 8 Version 1.0 Seite 1 von 7 Inhaltsverzeichnis: Aufgabenstellung Seite 3 Planung Seite 3 Quellcode Seite

Mehr

Für den Anschluss dieses und anderer Module dieser Serie an das myavr Board steht ein Adapter zur Verfügung.

Für den Anschluss dieses und anderer Module dieser Serie an das myavr Board steht ein Adapter zur Verfügung. Ein Funkmodul Seite 1 von 10 4.18. Ein Funkmodul Das FSK-Modul RFM12B ist ein Sende- und Empfangsmodul bei einer Frequenz von 433 MHz. Das Modul besitzt eine SPI-Schnittstelle und ist damit für den Anschluss

Mehr

Serielle Schnittstelle, erstes Testprogramm (a)

Serielle Schnittstelle, erstes Testprogramm (a) Serielle Schnittstelle, erstes Testprogramm (a) Aufgabe C1 Verbinden Sie die Mikrocontrollerplatine mit dem USB-Anschluss Ihres Rechners und laden Sie das abgebildete Testprogramm auf den Mikrocontroller.

Mehr

Sebastian Maier (Lehrstuhl Informatik 4) Übung 4. Sommersemester 2017

Sebastian Maier (Lehrstuhl Informatik 4) Übung 4. Sommersemester 2017 Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 4 Sommersemester 07 Inhalt Module Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm

Mehr

Aufgaben zur Attiny-Platine

Aufgaben zur Attiny-Platine Das Attiny-Projekt Aufgaben 1 Aufgaben zur Attiny-Platine 1. LEDs blinken 1.1 Schließen Sie eine rote LED an PortB.0 und eine grüne LED an PortB.1 an (vgl. Abb. 1). Achten Sie dabei darauf, dass die langen

Mehr

HTL St.Pölten. EL Autor: Kuran. Mikrocontrollerprogrammierung Teil 1:

HTL St.Pölten. EL Autor: Kuran. Mikrocontrollerprogrammierung Teil 1: C - Grundlagen Fachspezifische Softwaretechnik 1 Scriptum 2017 HTL St.Pölten Elektronik und Technische Informatik EL Autor: Kuran Mikrocontrollerprogrammierung Teil 1: Es gibt unzählig viele unterschiedliche

Mehr

U3 3. Übung U3 3. Übung. Systemnahe Programmierung in C Übungen Moritz Strübe Universität Erlangen-Nürnberg Informatik 4, 2009 U3.fm

U3 3. Übung U3 3. Übung. Systemnahe Programmierung in C Übungen Moritz Strübe Universität Erlangen-Nürnberg Informatik 4, 2009 U3.fm U3 3. Übung U3 3. Übung Besprechung Aufgabe 1 Pointer Register und Ports U3.1 U3-1 Zeiger U3-1 Zeiger 1 Einordnung Konstante: a 0110 0001 Variable: a Zeiger-Variable (Pointer): a char *p = &a; p U3.2 2

Mehr

Besprechung Aufgabe 1. Pointer. Register und Ports. SPiC - Ü U3.1

Besprechung Aufgabe 1. Pointer. Register und Ports. SPiC - Ü U3.1 U3 3. Übung U3 3. Übung Besprechung Aufgabe 1 Pointer Register und Ports U3.1 U3-1 Zeiger U3-1 Zeiger 1 Einordnung Konstante: a 0110 0001 Variable: a Zeiger-Variable (Pointer): a char *p = &a; p U3.2 2

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

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

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

WS 2016/17 Viel Erfolg!!

WS 2016/17 Viel Erfolg!! Hochschule München FK03 Zugelassene Hilfsmittel: alle eigenen, Taschenrechner Komponenten & Programmierung von Automatisierungssystemen Matr.-Nr.: Name, Vorname: Hörsaal: Unterschrift: Seite 1 von 11 Prof.

Mehr

4 Formelsammlung C/C++

4 Formelsammlung C/C++ 4 Formelsammlung C/C++ 4.1 Datentypen Datentyp stdint.h type Bits Sign Wertebereich (unsigned) char uint8_t 8 Unsigned 0.. 255 signed char int8_t 8 Signed -128.. 127 unsigned short uint16_t 16 Unsigned

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

Grundlagen der Objektorientierung :

Grundlagen der Objektorientierung : Grundlagen der Objektorientierung : Objektorientierung ermöglicht (unter anderem), daß man Software, die von einem selbst, meist aber von Anderen geschrieben ist, komfortabel nochmal verwenden kann. Diese

Mehr

#include "C:\Users\media\Desktop\Harri\Technik\Elektronik\Projekte\Stiftuhr\Servotest\servotest\servotest.h"

#include C:\Users\media\Desktop\Harri\Technik\Elektronik\Projekte\Stiftuhr\Servotest\servotest\servotest.h /* * Stiftuhr mit PWM * Created: 16.08.2015 23:29:27 * Author: Harri * a ----- f b g ----- e c ----- d a = B4 linke Anzeige = B0 b = B3 rechte Anzeige = C0 c = C1 LED grün = D4 d = C4 LED gelb = D3 e =

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

Projektarbeit Reaktionsspiel

Projektarbeit Reaktionsspiel Projektarbeit Reaktionsspiel aus der Datenverarbeitungstechnik Realisiert auf dem Olimex AVR USB 162 Entwicklerboard Andreas Loy Juli 2010 1. Aufgabestellung Die Aufgabe verlangte es ein Reaktionsspiel

Mehr

Arduino für FunkAmateure

Arduino für FunkAmateure Arduino für FunkAmateure Arduino Einführung Teil 9 Taster-Platine 4x4 Wie gehe ich am besten vor? 1. Was will ich machen? 2. Bauteile 3. Überlegungen zur Schaltung und Algorithmus 4. Zuordnung Arduino-Pins

Mehr

Wintersemester 08/09. Anwendungen der Prozessdatenverarbeitung Inverses Pendel

Wintersemester 08/09. Anwendungen der Prozessdatenverarbeitung Inverses Pendel Fachhochschule Wiesbaden Fachbereich Design Informatik Medien Studiengang Allgemeine Informatik WS 08/09 Wintersemester 08/09 Anwendungen der Prozessdatenverarbeitung Inverses Pendel bei Prof. Dr. Karl-Otto

Mehr

Einführung in die Programmierung von Mikrocontrollern mit C/C++

Einführung in die Programmierung von Mikrocontrollern mit C/C++ Einführung in die Programmierung von Mikrocontrollern mit C/C++ Vorlesung Prof. Dr.-Ing. habil. G.-P. Ostermeyer Rechenleistung/Speicher Systemintegration Grundlagen der Mikrocontrollertechnik (Wiederholung)

Mehr

Mikrocontroller. eine Einführung. Florian Schmitt - 16.11.2010 1 / 34

Mikrocontroller. eine Einführung. Florian Schmitt - 16.11.2010 1 / 34 Mikrocontroller eine Einführung Florian Schmitt - 16.11.2010 1 / 34 Inhalt Was sind Mikrocontroller, wozu sind sie nützlich? Unterschiede und Gemeinsamkeiten mit dem PC Wie funktionieren Mikrocontroller

Mehr

DST EINFÜHRUNG IN MRT

DST EINFÜHRUNG IN MRT DST EINFÜHRUNG IN MRT V1 (90 min) Steuerungs- und Regelungssysteme 1 DST EINFÜHRUNG IN MRT Heizungs - Regelung 2 HEIZUNGS REGELUNG 3 HEIZUNGS REGELUNG 5 5 4 1 1 => 16 x Temp. 5 x Durchflußmenge Uhrzeit

Mehr

DST EINFÜHRUNG IN MRT

DST EINFÜHRUNG IN MRT DST EINFÜHRUNG IN MRT V1 (90 min) Projektaufbau Projekt Versuch 1.1: Gegeben ist ein Atmel uc. An PortA sind 8 Taster angeschlossen. An PortC sind 8 LEDs. Geben Sie die Taster - Information an den LEDs

Mehr

DST EINFÜHRUNG IN MRT (V2)

DST EINFÜHRUNG IN MRT (V2) DST EINFÜHRUNG IN MRT (V2) Aufgabe: Reaktionstester 1. Pflichtenheft Taster an -PA0 8 LEDs an PCx LCD-Anzeige für Ergebnis Die LEDs an Port C sollten unerwartet irgendwann angehen! Jetzt wird die Zeit

Mehr

Mikrocontroller. Projekt. August update: 27. August 2017 um 15:20

Mikrocontroller. Projekt. August update: 27. August 2017 um 15:20 Mikrocontroller Projekt August 2017 update: 27. August 2017 um 15:20 cbea Inhaltsverzeichnis 1 Mikrocontroller 1 1.1 ATmega88PA.................................... 1 1.1.1 Eckdaten..................................

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach

Arduino Kurs Bits und Bytes. Stephan Laage-Witt FES Lörrach Arduino Kurs Bits und Bytes Stephan Laage-Witt FES Lörrach - 2018 Themen Digitale Eingabe Bit, Byte und Wort Reaktionszeittester FES Lörrach Juli 2017 2 Was ist ein Bit? Ein Bit ist die kleinste Informationseinheit

Mehr

AVR-Mikrocontroller mit dem GCC programmieren

AVR-Mikrocontroller mit dem GCC programmieren AVR-Mikrocontroller mit dem GCC programmieren Mario Haustein Chemnitzer Linux User Group 10. Februar 2012 Mario Haustein (CLUG) AVR-Mikrocontroller 10. Februar 2012 1 / 21 1. Die Architektur 2. AVR in

Mehr

Workshop: ASURO-Programmieren in C

Workshop: ASURO-Programmieren in C Workshop: ASURO-Programmieren in C / Teil 1: Theorie Workshop: ASURO-Programmieren in C Teil 1: Theorie Markus Becker http://mbecker-tech.de Bürgernetz Ingolstadt e. V. / ByteWerk Stand: 1. Mai 2010 Copyright:

Mehr

Stopp-Uhr. Erstellen Sie ein Programm (in Zweier- bzw. Dreier-Gruppen), welches folgende Bedingungen erfüllt:

Stopp-Uhr. Erstellen Sie ein Programm (in Zweier- bzw. Dreier-Gruppen), welches folgende Bedingungen erfüllt: Inhalt Aufgabenstellung... 1 Lösung... 2 System (Kontextdiagramm)... 2 Zustands-Übergangs-Diagramm... 2 Codeierung... 4 Main-Module... 4 Module-Button... 6 Module Timer... 8 Anhang... 12 Datenflussdiagramm...

Mehr

Studiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8

Studiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8 Studiengang Maschinenbau, Schwerpunkt Mechatronik (früher: Automatisierungstechnik) Seite 1 von 8 Hochschule München Fakultät 03 Zugelassene Hilfsmittel: alle eigenen, Taschenrechner Viel Erfolg!! Komponenten

Mehr

Klausur PHMJ02 SS2012. Mikrocontroller und Robotik. Mittwoch GUTEN ERFOLG!!!

Klausur PHMJ02 SS2012. Mikrocontroller und Robotik. Mittwoch GUTEN ERFOLG!!! Universität Koblenz Landau Name: Musterlösung Institut Naturwissenschaften Vorname:... Abteilung Physik Matr. Nr.:... Studiengang:... Klausur PHMJ02 SS2012 Mikrocontroller und Robotik Mittwoch 15.8.2012

Mehr

1.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen

1.7 Atmega-Programmierung in ASM/Verschachtelte Schleifen .7 Atmega-Programmierung in ASM/Verschachtelte Schleifen.7. Aufgabe Die beiden LEDs sollen abwechselnd blinken. Mit der bisherigen Lösung flackern sie nur (Beispiel: blink0.asm):. include /usr/share/avra/m8def.

Mehr

WS 2017/18 Viel Erfolg!!

WS 2017/18 Viel Erfolg!! Seite 1 von 12 Hochschule München FK03 Komponenten und Programmierung, 90 Minuten Prof. Dr.-Ing. T. Küpper Zugelassene Hilfsmittel: alle eigenen, Taschenrechner WS 2017/18 Viel Erfolg!! Matr.-Nr.: Hörsaal:

Mehr

Informatikwerkstatt, Foliensatz 2 C-Programmierung

Informatikwerkstatt, Foliensatz 2 C-Programmierung G. Kemnitz Institut für Informatik, TU Clausthal (IW-F2) 16. November 2015 1/50 Informatikwerkstatt, Foliensatz 2 C-Programmierung G. Kemnitz Institut für Informatik, TU Clausthal (IW-F2) 16. November

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C 14 Vertiefung einiger Themen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in

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

Mikrocontroller. Programmierung in C. Jan Unger

Mikrocontroller. Programmierung in C. Jan Unger Mikrocontroller Programmierung in C Jan Unger Wuppertal, 21.12.2016 II Inhaltsverzeichnis 1 Kapitel 1 1.1 Einführung................................ 1 1.1.1 Ports................................ 1 1.1.2

Mehr

b) Was bewirken folgende Programmanweisungen? uint8_t x = 42; x ^= x;

b) Was bewirken folgende Programmanweisungen? uint8_t x = 42; x ^= x; Aufgabe 1: (25 % der Klausurnote) 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

Mehr

Übungen zu Grundlagen der systemnahen Programmierung in C (GSPiC) im Wintersemester 2017/18

Übungen zu Grundlagen der systemnahen Programmierung in C (GSPiC) im Wintersemester 2017/18 Übungen zu Grundlagen der systemnahen Programmierung in C (GSPiC) im Wintersemester 2017/18 2017-11-21 Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl

Mehr

Syntax und Kontrollstrukturen

Syntax und Kontrollstrukturen Syntax und Kontrollstrukturen Praktikum C-Programmierung Eugen Betke, Nathanael Hübbe, Michael Kuhn, Jakob Lüttgau, Jannek Squar Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2018-10-29

Mehr

V cc. 1 k. 7 mal 150 Ohm

V cc. 1 k. 7 mal 150 Ohm Ein Digitalvoltmeter Seite 1 von 6 Eine Multiplex-Anzeige Mit diesem Projekt wird das Ziel verfolgt, eine mehrstellige numerische Anzeige für Mikrocontroller-Systeme zu realisieren. Die Multiplex-Anzeige

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

Über die Status-Befehle kann die Peripherie der gesamten Hard- und Firmware abgefragt werden.

Über die Status-Befehle kann die Peripherie der gesamten Hard- und Firmware abgefragt werden. DOKUMENTATION SCHWABENPLAN MC-PROTOKOLL 1. EINLEITUNG Das Schwabenplan MC-Protokoll wurde entwickelt um jede Hauptplatine aus unserem Lieferprogramm mit einer Software zu verbinden. Die Programmiersprache

Mehr

Da der Mikrocontroller mit den internen Timern sehr genau Zeiten messen kann, entschieden wir uns für die Zeitmessung.

Da der Mikrocontroller mit den internen Timern sehr genau Zeiten messen kann, entschieden wir uns für die Zeitmessung. Stufe 1: Das Projekt Fahrradcomputer wurde in der Stufe 1 zunächst auf die Messung der Geschwindigkeit gerichtet. Dabei soll der Mikrocontroller die Impulse auswerten, die von einem Sensor an der Fahrradgabel

Mehr

Zusammenfassung des Handzettels für Programmieren in C

Zusammenfassung des Handzettels für Programmieren in C Zusammenfassung des Handzettels für Programmieren in C In der handschriftlichen Kopie werden mehr Abkürzungen verwendet. Alles Grün markierte dient zum lernen und wird nicht auf den Handzettel übertragen.

Mehr

Sommersemester 2014, Dauer: 90 min Elektronik/Mikroprozessortechnik

Sommersemester 2014, Dauer: 90 min Elektronik/Mikroprozessortechnik Diplomprüfung im Studiengang MB Seite 1 von 8 Hochschule München Fakultät 03 Zugelassene Hilfsmittel: alle eigenen Sommersemester 2014, Dauer: 90 min Elektronik/Mikroprozessortechnik Matr.-Nr.: Name, Vorname:

Mehr

- 1 - FA 205. Technische Richtlinien für Unterricht und Prüfung. Festlegung wichtiger Begriffe Stand 04. März 2016

- 1 - FA 205. Technische Richtlinien für Unterricht und Prüfung. Festlegung wichtiger Begriffe Stand 04. März 2016 - 1 - Baden- Württemberg Ministerium für Kultus, Jugend und Sport Baden-Württemberg Koordinierungsstelle für Abschlussprüfungen Berufsschule-Wirtschaft Landesfachausschuss für die Ausbildungsberufe Elektroniker/

Mehr

Die Software zum Unser kleiner Computer

Die Software zum Unser kleiner Computer Die Software zum Unser kleiner Computer '-------------------------------------------------------------------------------- 'name : computer.bas 'copyright : (c)bernd Grupe, DF8ZR 'micro : Mega8 ' Das Programm

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

C für Mikrocontroller

C für Mikrocontroller C für Mikrocontroller Die wichtigste Alternative zum Assembler-Programmieren von Anwendungen für Mikrocontroller ist die Programmierung in C. Die Entwicklungsumgebung steht als sog. Tool-Chain zur Verfügung.

Mehr

Mikrocontrollertechnik

Mikrocontrollertechnik Aufgaben: Impulse zählen (Zählerfunktion) Zeitintervalle erzeugen (Zeitgeberfunktion) Prinzipschaltbild: Die Programmierung erfolgt mit den Registern TMOD und TCON: timer.doc TSC Seite 1/8 timer.doc TSC

Mehr

Kap 9. Bitoperationen und -strukturen

Kap 9. Bitoperationen und -strukturen Kap 9. Bitoperationen und -strukturen 9.1 Anwendung von Bits Im Gegensatz zu den üblicherweise Byte-orientierten Daten gibt es auch Bit-Anwendungsbeispiele Statusanzeigen bei Ein-/Ausgabe (Stream-Klassen)

Mehr

d) Was passiert, wenn das folgende Programmstück übersetzt und ausgeführt

d) Was passiert, wenn das folgende Programmstück übersetzt und ausgeführt 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

Anschluss von Peripherien Jiri Spale, Programmierung eingebetteter Systeme 1

Anschluss von Peripherien Jiri Spale, Programmierung eingebetteter Systeme 1 Anschluss von Peripherien 2008 Jiri Spale, Programmierung eingebetteter Systeme 1 Tastenmatrix Anschluss von vielen Tasten zyklische Abfrage im Zeitmultiplexverfahren Anordnung der Tasten: m x n Matrix,

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2018/19

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2018/19 Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2018/19 Übung 3 Rebecca Felsheim Benedict Herzog Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für

Mehr

USBCAN.DLL. Manual. Microcomputersysteme. Version 1.2

USBCAN.DLL. Manual. Microcomputersysteme. Version 1.2 USBCAN.DLL Microcomputersysteme Manual Version 1.2 August 2004 Die in diesem Manual verwendeten Beschreibungen für Erzeugnisse, die ein eingetragenes Warenzeichen darstellen können, wurden nicht separat

Mehr

Produktinformationen. Basis Set Atmel Atmega8 & ISP Programmer. Lieferumfang :

Produktinformationen. Basis Set Atmel Atmega8 & ISP Programmer. Lieferumfang : Produktinformationen Basis Set Atmel Atmega8 & ISP Programmer Lieferumfang : 1 Steckboard 840 Pin 1 USB ISP Programmer mit Kabel 1 Kabelsatz 32-teilig 1 Atmega8L 5 LED 3mm Klar Rot/Gelb/Grün/Blau/Weiss

Mehr

Assembler-Unterprogramme

Assembler-Unterprogramme Assembler-Unterprogramme Rolle des Stack Prinzipieller Ablauf Prinzipieller Aufbau Unterprogramme void main(void) int sub(int i) { { int i,k; return i*2; i = sub(13); } k = sub(14); } Wie macht man das

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

f) Was versteht man beim Zugriff auf I/O-Register unter dem Begriff "Memory-mapped"?

f) Was versteht man beim Zugriff auf I/O-Register unter dem Begriff Memory-mapped? Aufgabe 1: (1) 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

by AS playground.boxtec.ch/doku.php/tutorial Multitasking 3

by AS playground.boxtec.ch/doku.php/tutorial Multitasking 3 www.boxtec.ch by AS playground.boxtec.ch/doku.php/tutorial + Copyright Sofern nicht anders angegeben, stehen die Inhalte dieser Dokumentation unter einer Creative Commons - Namensnennung- NichtKommerziell-Weitergabe

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18 Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18 Übung 3 Benedict Herzog Sebastian Maier Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für

Mehr

Zahlendarstellung Logikfunktionen Register Eingänge Infrarot senden TSOP-Effekte Weiterführendes U23 2008. Abend 3:

Zahlendarstellung Logikfunktionen Register Eingänge Infrarot senden TSOP-Effekte Weiterführendes U23 2008. Abend 3: #2 Abend 3: Alexander Neumann e.v. http://koeln.ccc.de Köln, 3.11.2008 Gliederung 1 Zahlendarstellung n-adische Darstellung natürlicher Zahlen negative Zahlen 2 Logikfunktionen 3 Register

Mehr

Teilklausur I in Informatik TEL09GR2 Lewandowski

Teilklausur I in Informatik TEL09GR2 Lewandowski Teilklausur I in Informatik TEL09GR2 Lewandowski Es sind insgesamt 84 Punkte zu erreichen (80 Punkte werden als 100% gewertet) (Jeder Punkt entspricht einer Bearbeitungszeit von etwa 1 Minute) Aufgabe

Mehr

Kompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis

Kompilieren Datentypen Operatoren. Überblick. 1 Kompilieren. 2 Datentypen. const static volatile. 3 Operatoren. Alexander Batoulis Überblick 1 2 const static volatile 3 Überblick 1 2 const static volatile 3 eines C Programmes bevor Programm ausführbar ist, muss es von Compiler in Maschinensprache übersetzt werden Neben Compiler werden

Mehr

1. Vom Sourcecode zum Programm

1. Vom Sourcecode zum Programm 1. Vom Sourcecode zum Programm 1.1 Programmablauf source1.cpp source2.cpp header.h makefile Compiler Präprozessor Übersetzer Assembler object.obj object.obj Linker library.dll programm.exe Abbildung: Erstellung

Mehr