Mikrocontroller (Beispiel: ATMEL ATmega8)

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

Interrupt-Programmierung

Die interne Peripherie der Mikrocontroller

Serie 8: Microcontroller 17./

Assembler für BASIC Programmierer

U Abend 3: Musterlösungen, Taster entprellen, Unterprozeduren, Interrupts, Timer

Stefan Hoffmann. Leichter Start mit BASCOM und myavr

Proseminar Timer/Counter und PWM beim ATMega16 Mikrocontroller. Marcel Jakobs

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

9.3 Eingebettete Peripheriekomponenten

Parallel-IO. Ports am ATmega128

Atmel AVR für Dummies

C für Mikrocontroller

Praktikum Mikrocontrollertechnik SS 2015 Versuch 3

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

Arduino für FunkAmateure

Single Side AVR Experimentier Board. Version 1.4. erstellt von. Ulrich Radig

Lotto. eine Projektarbeit in DVT. von Sven Schwab

C++ mit dem Arduino (Uno und Mega2560)

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

mytinyprog MK2 USB Stefan Hoffmann

Prozessoren für mobile und. eingebettete Systeme II: Die AVR-Architektur. EMES: Eigenschaften mobiler und eingebetteter Systeme

Einführung in die Welt der Microcontroller

Selbstbau-USB-Programmiergerät für AVR

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

ICmega8 / ICmega8-USB

Johannes Kelper Universität Linz. Institut für Elektrische Messtechnik. Dokumentation. ATmeag8-USB Modul. Bernd R. Arminger ATmega8-USB Modul 1

8.3 Taster am µcontroller

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

C.1 Serielle Schnittstelle, erstes Testprogramm (a)

Mikrocontroller - Schnelleinstieg

Autonome Mobile Systeme. Dr. Stefan Enderle

Software ubiquitärer Systeme

AVR-Mikrocontroller mit dem GCC programmieren

Ausgewählte Kapitel eingebetteter Systeme Die Atmel AVR Mikrocontrollerfamilie

Projektarbeit: Roulette Spiel

C4 Die SPI Schnittstelle

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

AVR UART. ELV Modul: ch=&marke=

Entwicklung einer mobilen Kleinstroboterplattform für die Anwendung in der Lehre und Forschung

grifo Mini Module Test 2

Tutorial. Microcontroller. Grundlagen µc. Kapitel 1

RN-Control ARDUINO Bibliothek ATMEL 32 Version 0.2

Tag 2 Eingabe und Interrupts

Technische Informatik 2: Addressierung und Befehle

Interrupts & I/O-Ports

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Prozessoren für mobile und. eingebettete Systeme II: Die AVR-Architektur. EMES: Eigenschaften mobiler und eingebetteter Systeme

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

Befehlssatz AVR RISC Controller

The amforth Cookbook angefangen

Circuit. Open JP1 while programming. ST2: power input. Heinz, G. GFaI Berlin GFaI

AVR-Mikrocontroller in BASCOM programmieren, Teil 1

AVR Web Server. Version 1.1. erstellt von. Ulrich Radig

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

simline Technische Beschreibung simcontrol5 Version 1.07 Modulbeschreibung Eigenschaften

Zuse-Computer: Z1. erster Rechner mit binären Zahlen. Entwicklung der computergerechten. (Grundlage für IEEE-754) funktionierte leider nie zuverlässig

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

Einführung in AVR-Assembler

Addieren und Subtrahieren mit Mikrocontroller Atmega AT90162USB

Core und Speicher des ATmega16

AVR-Mikrocontroller in BASCOM programmieren

i2c-bus.de I2C-002 KURZBESCHREIBUNG I 2 C Modul mit PCA Bit I/O Port-Expander Dokument NR.: I2C-002-D-01

Universita t Koblenz/Landau Studienarbeit

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

'

B1 Stapelspeicher (stack)

i2c-bus.de I2C-001 KURZBESCHREIBUNG I 2 C Modul mit PCF Bit I/O Port-Expander Dokument NR.: I2C-001-D-01

Installation & Verwendung. Version 1.0. WinAVR

myavr- Projektbeschreibung Drehzahlmesser 1.0 by

Entwicklung einer mobilen Kleinstroboterplattform für die Anwendung in der Lehre und Forschung

Raspberry Pi Rezepte Teil 5

DIP-Schalter für Betriebsart, Power, Programmier- und Datenmodus, RESET und Bootloader. mysmartusb

Making the Internet of Things

Mikrocomputertechnik - Das Praxisbuch -

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

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

Mikrocontroller. eine Einführung. Florian Schmitt / 34

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

Board 1 - Teil 1. by AS. Prozessor Board 1 mit dem AT 1284 P, 3 x Ports, ISP und 2 x I 2 C Bus = Teil 1 Hardware =

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

Erhöhung der Kanalanzahl des Modular-EEG auf Mikrocontroller-Ebene

Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid)

Fachinformatik. Inhaltsverzeichnis. Meinhard Kissich Fachinfomatik 1

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

BLIT2008-Board. Uwe Berger

Serielle Schnittstelle

AVR-8-Bit-Mikrocontroller Bootloader

Umbau eines Saug- und Wisch Roboters auf ARDUINO Steuerung

Das Pollin Atmel Evaluationboard Ver unter Verwendung von MyAVR_Prog Tool und der Arduino IDE ein Kurztutorial

Berufspädagogische Akademie des Bundes in Graz Abteilung für technischen und gewerblichen Fachunterricht. Abb. 1: Verschiedene AVR-µC von Atmel 1

MB-Diplom (4. Sem.) / MB-Bachelor (Schwerpunkt Mechatronik, 5. Sem.) Seite 1 von 8. Wintersemester 2014/15 Elektronik

Technische Universität Darmstadt

Die serielle Schnittstelle mit den Atmega32: USART

Jan Monsch. Donnerstag, 2. Mai 13

eblock, SD-Kartenleser Projektteam: Henrik Esche Tobias Albers Michael Heßling Daniel Lütfrenk Jonas Wieschmann

Für schnelle und bequeme Entwicklungen wird gern Basic eingesetzt.

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

Lösungen zum Kurs "Mikrocontroller Hard- und Software

Transkript:

Mikrocontroller

Mikrocontroller (Beispiel: ATMEL ATmega8) PDIP (RESET) PC 8 PC (ADC/SCL) (RXD) PD0 7 PC (ADC/SDA) (TXD) PD (INT0) PD PC (ADC) PC (ADC) (INT) PD (XCK/T0) PD PC (ADC) PC0 (ADC0) VCC 7 GND GND 8 AREF (XTAL/TOSC) PB 9 0 AVCC (XTAL/TOSC) PB7 0 9 PB (SCK) (T) PD 8 PB (MISO) (AIN0) PD (AIN) PD7 7 PB (MOSI/OC) PB (SS/OCB) (ICP) PB0 PB (OCA) Ein-Chip-Computer mit konfigurierbaren Anschlüsse: Analag-/Digitalkonverter (ADC) Digitale (TTL) Ein- und Ausgabe Komparatoreingang Serielle Kommunikation (RS, TWI/I C, SPI) Harald Merkel, E-Praktikum 0 /??

Experimentierplatine renzkarte myavr Board MK/MK/light mit ATmega8 / reference sheet myavr board MK/MK/light with ATmega8 / erimentierplattform: myavr Board MK LPT Version. / myavr Board MK USB Version. / myavr Board light Version.0 µtaster/schalter (digital) µ buttons/switch (digital) Potentiometer (analog) potentiometer (analog) Lichtsensor light sensor Eingabegeräte Input devices Anschluss über USB oder LPT / COM PC-Schnittstelle PC-interface RISC µcontroller Schallwandler (Frequenzen) electric buzzer (frequenzies) LED s (digital/analog) Erweiterungsbuchse Add-On socket Ausgabegeräte output devices egister MEM Name Bit7 Bit Bit Bit Bit Bit Bit Bit0 0xF SREG I T H S V N Z C 0xE SPH SP0 SP9 SP8 0xD SPL SP7 SP SP SP SP SP SP SP0 0xC Reserved 0xB GICR INT INT0 IVSEL IVCE 0xA GIFR INTF INTF0 0x9 TIMSK OCIE TOIE TICIE OCIEA OCIEB TOIE TOIE0 0x8 TIFR OCF TOV ICF OCFA OCFB TOV TOV0 0x7 SPMCR SPMIE RWWSB RWWSRE BLBSET PGWRT PGERS SPMEN 0x TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 0x MCUCR SE SM SM SM0 ISC ISC0 ISC0 ISC00 0x MCUCSR WDRF BORF EXTRF PORF 0x TCCR0 CS0 CS0 CS00 0x TCNT0 Timer/Counter0 (8 Bits) 0x OSCCAL Oscillator Calibration Register 0x0 SFIOR ACME PUD PSR PSR0 0xF TCCRA COMA COMA0 COMB COMB0 FOCA FOCB WGM WGM0 0xE TCCRB ICNC ICES WGM WGM CS CS CS0 0xD TCNTH Timer/Counter Counter Register High byte 0xC TCNTL Timer/Counter Counter Register Low byte 0xB OCRAH Timer/Counter Output Compare Register A High byte 0xA OCRAL Timer/Counter Output Compare Register A Low byte 0x9 OCRBH Timer/Counter Output Compare Register B High byte 0x8 OCRBL Timer/Counter Output Compare Register B Low byte Speicheraufbau / memory structure FLASH SRAM Interrupt - Vektoren 8K Program Flash ( K x ) Byte EEPROM Vector No. Program Adress 0x0000 Register R0 I/O Register 0 Byte SRAM Interruptvektoren / interrupt vectors 0x0000 0x00F 0x000 0x00F 0x000 0x0F Harald Source Merkel, E-Praktikum Interrupt 0 Definition /??

Harald Merkel, E-Praktikum 0 /?? Schaltplan 7µF/V 00nF 7µF 00nF pf pf 00nF 00nF 00nF MEGA8-P 780 0µH,K,K,K,K 0K 0K Speaker STROMSTECKER PHOTO B D AGND AREF AVCC 0 GND 8 PB0(ICP) PB(OCA) PB(SS/OCB) PB(MOSI/OC) 7 PB(MISO) 8 PB(SCK) 9 PB(XTAL/TOSC) 9 PB7(XTAL/TOSC) 0 PC0(ADC0) PC(ADC) PC(ADC) PC(ADC) PC(ADC/SDA) 7 PC(ADC/SCL) 8 PC(/RESET) PD0(RXD) PD(TXD) PD(INT0) PD(INT) PD(XCK/T0) PD(T) PD(AIN0) PD7(AIN) VCC 7 GND IN OUT LED LED LED LED POT POT Q S S SG 0 0 0 0 0 0 07 08 09 0 7 8 9 0 7 8 9 0 7 8 9 0 + + myavr Board MK V.0 www.myavr.de

Grundgerüst #define F_CPU 800 // Taktfrequenz des myavr-boards #include <avr\io.h> // AVR Register und Konstantendefinitionen main () { do { } while (true); } Startpunkt des Programmes: main Übliche Ablaufstruktur: Initialisieren, dann Endlosschleife Alle nötigen Declarationen in avr\io.h Kommentare mit //, bitte reichlich benutzen Harald Merkel, E-Praktikum 0 /??

Kontrollstrukturen while-schleife: do { } while (bedingung); for-schleife (Beispiel zählt von 0 bis 9): for (short i=0; i<0; i++) { }; Bedingungen: if (bedingung) { }; Warten: waitms(000); Harald Merkel, E-Praktikum 0 /??

Bitmanipulation in C/C++ Bit-Operatoren: & Bitweises UND Bitweises ODER Negation ˆ Bitweises XOR << Bitschieben (Shift) Kombinierte Zuweisung: &= Bitweises UND = Bitweises ODER Setzen des Bits mit der Nummer n in der Variable DDRB: DDRB = ( << n); Löschen des Bits mit der Nummer n: DDRB &= ( << n); Warten, bis Bit n in PINC gesetzt ist: while (PINC & ( << n)) { }; Warten, bis Bit n in PINC NICHT gesetzt ist: while (!(PINC & ( << n))) { }; Lauflicht: for(short n=0;n<;n++) { PORTB = <<n; waitms(000); } Harald Merkel, E-Praktikum 0 7/??

Kurzes Beispiel: Blinklicht #define F_CPU 800 #include <avr\io.h> main () { DDRB = << PB0; do { PORTB = << PB0; waitms(000); PORTB = 0; waitms(000); } while (true); } Harald Merkel, E-Praktikum 0 8/??

Ports: siehe Referenzkarte und Dokumentation I/O Register I/O MEM Name Bit7 Bit Bit Bit Bit Bit Bit Bit0 0xF 0xF SREG I T H S V N Z C 0xE 0xE SPH SP0 SP9 SP8 0xD 0xD SPL SP7 SP SP SP SP SP SP SP0 0xC 0xC Reserved 0xB 0xB GICR INT INT0 IVSEL IVCE 0xA 0xA GIFR INTF INTF0 0x9 0x9 TIMSK OCIE TOIE TICIE OCIEA OCIEB TOIE TOIE0 0x8 0x8 TIFR OCF TOV ICF OCFA OCFB TOV TOV0 0x7 0x7 SPMCR SPMIE RWWSB RWWSRE BLBSET PGWRT PGERS SPMEN 0x 0x TWCR TWINT TWEA TWSTA TWSTO TWWC TWEN TWIE 0x 0x MCUCR SE SM SM SM0 ISC ISC0 ISC0 ISC00 0x 0x MCUCSR WDRF BORF EXTRF PORF 0x 0x TCCR0 CS0 CS0 CS00 0x 0x TCNT0 Timer/Counter0 (8 Bits) 0x 0x OSCCAL Oscillator Calibration Register 0x0 0x0 SFIOR ACME PUD PSR PSR0 0xF 0xF TCCRA COMA COMA0 COMB COMB0 FOCA FOCB WGM WGM0 0xE 0xE TCCRB ICNC ICES WGM WGM CS CS CS0 0xD 0xD TCNTH Timer/Counter Counter Register High byte 0xC 0xC TCNTL Timer/Counter Counter Register Low byte 0xB 0xB OCRAH Timer/Counter Output Compare Register A High byte 0xA 0xA OCRAL Timer/Counter Output Compare Register A Low byte 0x9 0x9 OCRBH Timer/Counter Output Compare Register B High byte 0x8 0x8 OCRBL Timer/Counter Output Compare Register B Low byte 0x7 0x7 ICRH Timer/Counter Input Capture Register High byte 0x 0x ICRL Timer/Counter Input Capture Register Low byte 0x 0x TCCR FOC WGM0 COM COM0 WGM CS CS CS0 0x 0x TCNT Timer/Counter (8 Bits) 0x 0x OCR Timer/Counter Output Compare Register 0x 0x ASSR - AS TCNUB OCRUB TCRUB 0x 0x WDTCR WDCE WDE WDP WDP WDP0 0x0 () 0x0 () UBRRH URSEL UBRR[:8] UCSRC URSEL UMSEL UPM UPM0 USBS UCSZ UCSZ0 UCPOL 0xF 0xF EEARH EEAR8 0xE 0xE EEARL EEAR7 EEAR EEAR EEAR EEAR EEAR EEAR EEAR0 0xD 0xD EEDR EEPROM Data Register 0xC 0xC EECR EERIE EEMWE EEWE EERE 0xB 0xB Reserved 0xA 0xA Reserved 0x9 0x9 Reserved 0x8 0x8 PORTB PORTB7 PORTB PORTB PORTB PORTB PORTB PORTB PORTB0 0x7 0x7 DDRB DDB7 DDB DDB DDB DDB DDB DDB DDB0 0x 0x PINB PINB7 PINB PINB PINB PINB PINB PINB PINB0 0x 0x PORTC PORTC PORTC PORTC PORTC PORTC PORTC PORTC0 0x 0x DDRC DDC DDC DDC DDC DDC DDC DDC0 0x 0x PINC PINC PINC PINC PINC PINC PINC PINC0 0x 0x PORTD PORTD7 PORTD PORTD PORTD PORTD PORTD PORTD PORTD0 0x 0x DDRD DDD7 DDD DDD DDD DDD DDD DDD DDD0 0x0 0x0 PIND PIND7 PIND PIND PIND PIND PIND PIND PIND0 0x0F 0xF SPDR SPI Data Register Speichera FLASH Interrupt - Vektoren 8K Program Flash ( K x ) Byte EEPROM Interruptvekto Vector No. Program Adress 0x000 0x00 0x00 0x00 0x00 0x00 7 0x00 8 0x007 9 0x008 0 0x009 0x00A 0x00B 0x00C 0x00D 0x00E 0x00F 7 0x00 8 0x0 9 0x0 Arbeitsreg Regist Harald Merkel, E-Praktikum 0 9/?? R0