Vor der Benutzung eines Ports ist für die einzelnen Portanschlüsse die Datenrichtung festzulegen:
|
|
- Fabian Fromm
- vor 7 Jahren
- Abrufe
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 Stefan Goebel Februar 2017 Stefan Goebel myavr Programmierung in C Februar 2017 1 / 12 Grundgerüst... braucht man immer! #include // Register- und Konstantendefinitionen
MehrIR 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
MehrAufbau 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
MehrParallel-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
MehrLotto. 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
MehrU5-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) Sebastian Maier (Lehrstuhl Informatik 4) Übung 4 Sommersemester 2016 Inhalt Module Schnittstellenbeschreibung Ablauf vom Quellcode zum laufenden Programm
MehrGdI2 - 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
MehrMikrocontrollerplatine 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
MehrInhalt. Ü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
MehrInhalt. 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
Mehr8.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
MehrAVR 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
MehrAtmega 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
MehrAddieren 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
MehrWiederholung: 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
MehrProgrammieren 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
MehrC.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
MehrMakros 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
MehrInhalt. Ü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)
MehrU3-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
MehrWiederholung: 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
MehrWiederholung: 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
MehrArduino µ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
MehrProjekt: 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
MehrProjektarbeit 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
MehrU2-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
MehrC++ 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) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Aufgabe4 Led Modul Wiederholung Konfiguration der Pins Hinweise zur Aufgabe
MehrProjektarbeit 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
MehrFü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
MehrSerielle 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.
MehrSebastian 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
MehrAufgaben 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
MehrHTL 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
MehrU3 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
MehrBesprechung 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
MehrC++ 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
MehrTag 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!
MehrMicrocontroller 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.
MehrWS 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.
Mehr4 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
MehrPIC16 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
MehrGrundlagen 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"
/* * 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 =
MehrWer 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
MehrProjektarbeit 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
MehrArduino 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
MehrWintersemester 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
MehrEinfü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)
MehrMikrocontroller. 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
MehrDST 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
MehrDST 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
MehrDST 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
MehrMikrocontroller. 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..................................
MehrEinfü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
MehrArduino 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
MehrAVR-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
MehrWorkshop: 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:
MehrStopp-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...
MehrStudiengang 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
MehrKlausur 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
Mehr1.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.
MehrWS 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:
MehrInformatikwerkstatt, 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
MehrProgrammiersprachen 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
MehrSerie 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
MehrMikrocontroller. 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
Mehrb) 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 2017-11-21 Bernhard Heinloth Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl
MehrSyntax 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
MehrV 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
MehrCCS 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.
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
MehrDa 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
MehrZusammenfassung 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.
MehrSommersemester 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 - 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/
MehrDie Software zum Unser kleiner Computer
Die Software zum Unser kleiner Computer '-------------------------------------------------------------------------------- 'name : computer.bas 'copyright : (c)bernd Grupe, DF8ZR 'micro : Mega8 ' Das Programm
MehrEingaben. 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
MehrC 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.
MehrMikrocontrollertechnik
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
MehrKap 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)
Mehrd) 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
MehrAnschluss 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 Übung 3 Rebecca Felsheim Benedict Herzog Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für
MehrUSBCAN.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
MehrProduktinformationen. 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
MehrAssembler-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
MehrVorbereitung. 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
Mehrf) 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
Mehrby 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 Übung 3 Benedict Herzog Sebastian Maier Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für
MehrZahlendarstellung 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
MehrTeilklausur 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
MehrKompilieren 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
Mehr1. 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