i2c-bus.de IN/OUT - UART Einfache Ein- und Ausgabe über serielle Schnittstelle Interrupt-Betrieb Dokument NR.: AB-001-U-03

Ähnliche Dokumente
i2c-bus.de ASCII ZEICHEN AUF DEM HYPERTERMINAL Übungsaufgabe RS232 Schnittstelle Dokument NR.: AB-001-U-01

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

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

MODUL 6 TIMER UND COUNTER

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

AVR UART. ELV Modul: ch=&marke=

Serielle Schnittstelle

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

USBCAN.DLL. Manual. Microcomputersysteme. Version 1.2

I2C-006 DATASHEET I2C-006 V1.00: 1K EEPROM MODUL MIT TWI (I 2 C) SCHNITTSTELLE. Dokument NR.: I2C-006_Datasheet

Laborprotokoll Informationstechnologien

SB-002 DATASHEET SB-002 V1.00: 8051 MIKROCONTROLLERBOARD MIT AT89C5131A-M OHNE NETZTEIL. Dokument NR.: SB-002_Datasheet

Steuern und Messen mit Raspberry Pi

EXF2 TF2 IEX6 IEX5 IEX4 IEX3 IEX2 IADC 0C0H T2PS I3FR I2FR T2R1 T2R0 T2CM T2I1 T2I0 0C8H. AFH AEH ADH ACH ABH AAH A9H A8H Bitdresse

Lotto. eine Projektarbeit in DVT. von Sven Schwab

Serielle Schnittstelle, erstes Testprogramm (a)

Grundlagen der Informatik 6. Arrays I

Einführung in die Welt der Microcontroller

Lehrfach: Mikrorechentechnik Versuch: Zeitmessung

C.1 Serielle Schnittstelle, erstes Testprogramm (a)

Mikrocomputertechnik. Thema: Serielle Schnittstelle / UART

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

SSA P_51_002_NEU. doc

Der I²C-Bus. Vorstellung des Inter-Integrated Circuit -Bus. Aufbau und Funktionsweise. Beispiel PortExpander am Arduino

UART und Interrupts. Versuch Nr. 7

Anwendung und Programmierung von Mikrocontrollern. Anwendung und Programmierung von Mikrocontrollern

Programmierübungen in Assembler

by AS playground.boxtec.ch/doku.php/tutorial I 2 C Bus und Out 2 (16 Bit) I2C-Bus - Out 2

11: Echtzeitbetriebssystem ucos-ii

Projektarbeit in DVT auf dem Entwicklerboard

Hardwareaufbau der Mikrocontroller der 51er -Familie

Microcontroller Praktikum SS2010 Dipl. Ing. R. Reisch

UART-Kommunikation mit dem Atmel AVR

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

8.1 Grundsätzlicher Aufbau der Beispiele

Die serielle Schnittstelle mit den Atmega32: USART

Die Technik hinter IoT: Arduino, Raspberry Pi & Co.

Dokumentation Metronom

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

Einführung in die C-Programmierung

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

HelvePic32 Breadboard. Internet Data Logger

Variablen und Datentypen

Einführung DIP & AVR EVK1100

GI Vektoren

PIC16 Programmierung in HITECH-C

MODUL 3 Bedienung der seriellen Schnittstelle und der LCD-Anzeige

STM32 - Schieberegister, SPI - u

einlesen n > 0? Ausgabe Negative Zahl

Einlesen eines Ports, Interrupt Routinen

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

7.0 PWM - Pulsbreitenmodulation

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

Camat. Transfer-Modul

Unified-E Modbus Adapter

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.

INE1 Bit-Operationen. Bit-Operationen Übungen Bits setzen, löschen, abfragen Beispiel: Bitmap

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Zugriff auf die serielle Schnittstelle im Pollingbetrieb

Parallel-IO. Ports am ATmega128

Ein- und Ausgabe mit Dateien

Manual I2C Module zum CARME-Kit

10: Serial Communication Interface (SCI)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Ein- und Ausgabe mit Dateien

Grundlagen der Informatik 11. Zeiger

Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) J. Hampel Dipl.-Ing. (FH) A. Reber

Die Entwicklungsumgebung. Labor Technische Informatik. Prof. Dr.-Ing. F. Kesel Dipl.-Ing. (FH) A. Reber

Bedienungsanleitung CSM 2 A

Deklarationen in C. Prof. Dr. Margarita Esponda

float *point(float a, float b); // Funktionsdeklaration Zeiger als Funktionswert // point liefert als Wert die Adresse seines Ergebnisses

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene

Einbinden eines Mikrocontrollers in ein EtherCAT-Netzwerk mit Hilfe eines Anybus-S-Moduls für EtherCAT

DST EINFÜHRUNG IN MRT (V2)

Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten

F Zeiger, Felder und Strukturen in C

1 Vom Problem zum Programm

6. Bearbeitung von Strings in C Bearbeitung von Strings in C

$NOMOD51 $INCLUDE (reg515.inc) ; Ein Zeichen auf Tastendruck S1 senden...

C-Kurs 2010 Pointer. 16. September v2.7.3

saarland Prof. Dr. Andreas Zeller Verantw. Tutor: Florian Groß Übungsblatt 4

kurze Wiederholung class templates

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr SS INSTITUT FÜR ELEKTRONIK BIT

Dienstspezifikation nach RFC

16-Bit PCA Timer/Counter

8.0 Erweiterung mit dem 8 Bit D/A Maxim MAX5382

Programmier-Befehle - Woche 10

Variablen und Datentypen

by AS playground.boxtec.ch/doku.php/tutorial I 2 C Bus und Out 1 I2C - Out 1

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

HAS. HAS-Schnittstelle. Technische Information TR - E - TI - D

Speicheraufbau des AT89C5131

Angewandte IT-Sicherheit

Integer Integer Integer (Voreinstellung) Integer Gleitkomma Gleitkomma leer/unbestimmt Integer ohne Vorzeichen Integer (explizit) mit Vorzeichen

by AS playground.boxtec.ch/doku.php/tutorial I 2 C Bus und IR - Melder I2C - IR 1

Band 1a: Einstieg, Einrichtung und Vorgehen bei C- und Assembler-Programmen unter Verwendung des USB-Ports Version 1.1

Die AVR Mikrocontrollerfamilie

Betriebsanleitung EFR3000

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Transkript:

DA Dokument NR.: AB-001-U-03 IN/OUT - UART Einfache Ein- und Ausgabe über serielle chnittstelle Interrupt-Betrieb P Bitte denken ie an die Umwelt, bevor ie diese Datei ausdrucken

IN/OUT mittels BUF (Interrupt) DA Inhaltsverzeichnis 1. Aufgabe 1...3 1.1 Verwendete Module:...3 1.2 Target Mission...3 2. Lösung Aufgabe 1...4 Modification History: Version Date Comments 1.0 12.2012 first release I2C-BU.DE eite 2

DA IN/OUT mittels BUF (Interrupt) 1. Aufgabe 1 chreiben ie ein Programm, das einen Benutzer auffordert einen Zeichen mittels Tastatur-Taste einzugeben. Nach dem dieses Zeichen vom Mikrocontroller empfangen wurde, muss der Mikrocontroller das erkannte Zeichen auf dem HypertTerminal wiedergeben. Meiden ie vorgefertigte Funktionen wie printf() Realisieren ie Empfang- und ende-funktionen mittels Interrupt 1.1 VERWENDETE MODULE: Mikrocontroller Board (B-001/B-002) und R232 TTL Umsetzer (AB-001). 1.2 TARGET MIION Ein Video sagt mehr, als tausend geschriebene Worte. In diesem Video wird gezeigt was genau in der Aufgabenstellung 1 (AB-001-U-03) gemeint ist. Target Mission auf youtube I2C-BU.DE eite 3

IN/OUT mittels BUF (Interrupt) DA 2. Lösung Aufgabe 1 /*************************************************************************** Datei: Aufgabe1_AB-001-U-03.c Produkt: AB-001-U-03 Projekt: Aufgabe 1 IN/OUT with BUF and Interrupt Datum: 12.2012 - first release Version 1.0 Kompiler: Keil V9.05 Autor: Lizenz: Viktor chabelski info@.de Creative Commons Lizenz Namensnennung - Keine kommerzielle Nutzung - Keine Bearbeitungen www./cc chreiben ie ein Programm, das einen Benutzer auffordert einen Zeichen mittels Tastatur- Taste einzugeben. Nach dem dieses Zeichen vom Mikrocontroller empfangen wurde, muss der Mikrocontroller das erkannte Zeichen auf den HyperTerminal wiedergeben. - Meiden ie vorgefertigte Funktionen wie printf() - Realisieren ie Empfangs und ende-funktionen mittels Interrupt **************************************************/ /*************************************************************************** Includes **************************************************/ #include <at89c5131.h> #define QUARZ_FRQ 24 /* Quarz Frequenz */ #define IZE 1 /* Empfangsbuffer Groesse */ #define BUY 1 #define FREE 0 #define NO 0 #define YE 1 unsigned char auchbuffer[ize] = {0; /* Empfangsbuffer */ bit buart = FREE; /* UART tatus */ bit bnewchar = NO; void init_uart(unsigned char uchquarz); void init_ir(void); void sendtring_uart(unsigned char* ptring); void sendchar_uart(unsigned char uchcharacter); void isr_uart(void); I2C-BU.DE eite 4

IN/OUT mittels BUF (Interrupt) DA /*************************************************************************** Funktionen **************************************************/ * Name : main * Input : none * Descr. : Main Funktion void main (void){ init_uart(quarz_frq); init_ir(); sendtring_uart( Druecken ie eine Taste: ); while(1){ if(bnewchar){ sendchar_uart(auchbuffer[0]); bnewchar = NO; * Name : init_uart * Input : uchquarz - Quarzfrequenz - erlaubte Werte 12 fuer 12MHz und 24 fuer 24MHz * Descr. : Initialisierung R232/V24 chnittstelle. * Initialisierung der seriellen chnittstelle in Mode 1 * chnittstellenparameter: 9600Baud, 8 Datenbit, 1 topp-bit asynchroner Betrieb * mit Empfang * Quarz Frequenz 12/24 MHz void init_uart(unsigned char uchquarz){ /* chnittstelle Initialisierung */ CON = 0x50; /* M1 (2^6) = 1; REN (2^4) = 1; */ //------------------------------------------------- /* Timer2 Initialisierung */ T2CON = 0x30; /* TCLK (2^4) = 1; RCLK (2^5) = 1; */ TR2 = 1; /* Timmer2 run T2CON 2^2 */ RCAP2H = 0xFF; if(uchquarz == 12) RCAP2L = 0xD9; /* Reloadwert bei 12MHz Quarz */ else RCAP2L = 0xB2; /* Reloadwert bei 24MHz Quarz */ TI = 1; * Name : init_ir * Input : none * Descr. : Interrupt ervice Rutine Initialisierung Im Register IEN0 werden die Bits EA(2^7) und E(2^4) gesetzt void init_ir (void){ IEN0 = 0x90; IPL0 = 0x10; /* Interrupt Priorisierung */ IPH0 = 0x00; I2C-BU.DE eite 5

IN/OUT mittels BUF (Interrupt) DA * Name : sendtring_uart * Input : ptring - Pointer auf tring * Descr. : ende tring ueber R232/V24 chnittstelle. void sendtring_uart(unsigned char* ptring){ while(*ptring!= 0){ sendchar_uart(*ptring); /* sende Zeichen */ ptring++; * Name : sendchar_uart * Input : uchcharacter - Zeichen zum enden * Descr. : ende Zeichen ueber R232/V24 chnittstelle. void sendchar_uart(unsigned char uchcharacter){ while(buart == BUY); BUF = uchcharacter; /* sende Zeichen */ buart = BUY; /* UART besetzt */ * Name : isr_uart * Input : none * Output : empfangener Zeichen in array auchbuffer * Descr. : IR void isr_uart (void) interrupt 4{ static unsigned char uchcount = 0x00; /* Zeichen empfangen */ if (RI){ auchbuffer[uchcount] = BUF; RI = 0x00; bnewchar = YE; if (uchcount >= IZE -1){ uchcount = 0x00; else{ uchcount++; /* Zeichen senden */ if (TI) { TI = 0x00; buart = FREE; I2C-BU.DE eite 6

IN/OUT mittels BUF (Interrupt) DA Haben ie einen Fehler entdeckt? Wir sind dankbar für Ihren Hinweis. chicken ie uns bitte diesen Hinweis einfach per E-Mail: info@. Vielen Dank! I2C-BU.DE eite 7