Touchpanel und Touchscreen mit PIC-Mikrocontroller
|
|
- Marie Schneider
- vor 8 Jahren
- Abrufe
Transkript
1 Touchpanel und Touchscreen mit PIC-Mikrocontroller Stefan Buchgeher 14. September Großambergstraße 106/3, A-4040 Linz (Österreich) ++43/699/
2 INHALTSVERZEICHNIS 1 Inhaltsverzeichnis 1 Einleitung 1 2 Grundlagen zum Touchpanel 2 3 Hardware 2 4 Software Portdefinition X-Koordinate ermitteln (Unterprogramm TP GetX) Y-Koordinate ermitteln (Unterprogramm TP GetY) Unterprogramm zur Analog-Digital-Wandlung (ADC8) Koordinatenursprung Demonstrationsbeispiel 1 (Touchpanel) Schaltung (Hardware) Stückliste Layout und Bestückungsplan Software Anmerkungen zur Software Demonstrationsbeispiel 2 (Touchscreen) Schaltung (Hardware) Stückliste Layout und Bestückungsplan Software Anmerkungen zur Software Einleitung Beim Durchblättern der Elektronik-Monatszeitschrift Elektor [1] entdeckte ich einen Werbeartikel von der Firma mikroelektronika [2] zur Realisierung eines einfachen Touchscreen mit einem resistiven Touchpanel. Das brachte mich auf die Idee mich mit den Themen Touchpanel und Touchscreen zu beschäftigen. Ein geeignetes Touchpanel und ein dazu passendes Grafikdisplay sind sehr günstig bei Tigal [3] erhältlich. Die Software ist hier in der Programmiersprache C verfasst. Als C-Compiler wird hier mikroc von mikroelektronika [4] verwendet. Für das erste Demonstrationsbeispiel (ab Seite 6) ist die kostenlose Demoversion ausreichend. Das zweite Demonstrationsbeispiel (ab Seite 24) ist, bedingt durch das Grafik-Display, für die Demoversion des C-Compilers leider schon zu umfangreich, so dass für das zweite Demonstrationsbeispiel die kostenpflichtige Vollversion des C-Cpmpilers notwendig ist.
3 2 GRUNDLAGEN ZUM TOUCHPANEL 2 2 Grundlagen zum Touchpanel Eine sehr gute Erklärung über das hier verwendete Touchpanel ist in [2] zu finden. Ein Touchpanel ist ein dünnes, transparentes und selbstklebendes Tastenfeld. Es ist sehr druckempfindlich, so dass bereits ein leichter Druck eine Änderung des Ausgangssignals bewirkt. Es gibt verschiedene Touchpanel-Typen. Am einfachsten und am preiswertesten sind analoge, resistive Touchpanels (Widerstands-Touchpanel). Dieses wird auch hier verwendet. Ein Widerstands-Touchpanel besteht aus zwei übereinander liegenden, steifen und leitfähigen Schichten (Indiumzinnoxid, engl. indium tin oxide, ITO), deren Innenseiten mit einer Widerstandsschicht überzogen sind. Die beiden Schichten sind durch zahlreiche isolierte Abstandshalter, so genannte Spacer-Dots voneinander getrennt. Die gegenüberliegenden Seiten der Schichten sind mit Kontakten versehen (siehe Abbildung 1). Abbildung 1: Touchpanel-Struktur Beim Berühren des Touchpanels entsteht beim Druckpunkt ein Kontakt zwischen den beiden Schichten. Die Aufgabe besteht nun darin die Koordinaten des Druckpunktes zu bestimmen. Dazu werden zwei gegenüberliegende Kontakte mit fixen, aber unterschiedliche Spannungen (z.b +5V und 0V) verbunden. Dadurch ergibt sich ein Spannungsteiler, deren Widerstände von der Position des Druckpunktes abhängen. Diese Spannung ist direkt proportional zur Position des Druckpunktes und kann daher mit einem Analog-Digital-Wandler (kurz: ADC) in einen digitalen Wert umgewandelt werden. Um den Schaltungsaufwand gering zu halten sollte für die Ansteuerung eines resistiven Touchpanels ein Mikrocontroller verwendet werden, der zumindest zwei ADC-Kanäle beinhaltet. 3 Hardware In [2] wird die Schaltung nach Abbildung 2 vorgeschlagen, die auch bei mir einwandfrei funktioniert. Die Aufgabe dieser Schaltung ist die vier Anschlüsse des Touchpanels (Oben, Unten, Links und Rechts) so mit Masse und mit der Spannungsversorgung (hier +5V ) zu verbinden, das
4 4 SOFTWARE 3 Abbildung 2: Schaltung (Touchpanel) am Druckpunkt ein Spannungsteiler für die X-Koordinate entsteht, diese Spannung kann dann vom Mikrocontroller digitalisiert werden, und gibt die X-Koordinate des Druckpunktes an. Das gleiche gilt für die Y-Koordinate. Für die Ansteuerung der Transistorschaltung kann ein beliebiger Mikrocontroller verwendet werden, er muss nur 2 digitale Ausgänge und 2 analoge Eingänge besitzen. 4 Software Die Aufgabe der Software ist es also, ständig (regelmäßig) die X-Koordinate und die Y- Koordinate zu bestimmen. Was mit dieser Information dann geschehen soll hängt von der jeweiligen Aufgabenstellung ab. Meist wird ein Touchpanel zur Wert- und Dateneingabe verwendet. Doch dass soll uns hier noch nicht kümmern. Hier geht es nur um die Erfassung der X- und der Y-Koordinate. Der Quellcode welcher diese Aufgabe erfüllt befindet sich in den Dateien TOUCHPANEL.H und TOUCHPANEL.C 4.1 Portdefinition Im Allgemeinen wird bei jeder Anwendung das Touchpanel an anderen Portpins angeschlossen. Damit diese in den Unterprogrammen, die mit dem Touchpanel kommunizieren, nicht ständig geändert werden muss, befindet sich in der Software eine Portdefinition für das Touchpanel. Diese besteht hier aus den zwei digitalen Ausgangspins und den zwei analogen Eingangskanälen. Listing 1 zeigt eine mögliche Portdefinition für einen PIC- Mikrocontroller aus der PIC16xx-Familie / Por tbel egung / 19 #define TP PORT DRIVEA PORTA. F1 20 #define TP PORT DRIVEB PORTA. F / Analoge Kanaele / 24 #define TP CHAN READX 3 25 #define TP CHAN READY 2 Listing 1: Portdefinitionen für das Touchpanel (Auszug aus TOUCHPANEL.H)
5 4 SOFTWARE 4 Achtung: Beim Initialisieren des PIC-Mikrocontroller (bei mir im Unterprogramm Init) müssen diese Portpins als Ausgänge bzw. Eingänge konfiguriert werden. Siehe Demonstrationsbeispiele. 4.2 X-Koordinate ermitteln (Unterprogramm TP GetX) Zur Bestimmung der X-Koordinate muss DRIVEA mit V cc (hier: +5V ) und DRIVEB mit V ss (hier: 0V ) verbunden werden. Nach einer kurzen Warteteit (hier: 5ms) kann die X-Koordinate gelesen werden. Der Wertebereich für die X-Koordinate liegt zwischen 0 (ganz links) und 255 (ganz rechts). Listing 2 zeigt dieses sehr einfache Unterprogramm zur Bestimmung der X-Koordinate. Abbildung 3 zeigt den Zustand der Schalttransistoren der Hardware für das Lesen der X-Koordinate. 47 char TP GetX(void) 48 { 49 char x Koordinate ; // Portpin DRIVEA = 1 und Portpin DRIVEB = 0 ( Rechts : +Vcc, Links : Vss, 53 // Oben : hochohmig, Unten : x Koordinate ) 54 TP PORT DRIVEA = 1; 55 TP PORT DRIVEB = 0; // 5ms warten 58 Delay ms (5) ; // x Wert (Unten) lesen 61 x Koordinate = ADC8(TP CHAN READX) ; return ( x Koordinate ) ; 64 } Listing 2: X-Koordinate lesen (Auszug aus TOUCHPANEL.C) Abbildung 3: X-Koordinate lesen (Zustand der Schalttransistoren)
6 4 SOFTWARE Y-Koordinate ermitteln (Unterprogramm TP GetY) Für die Bestimmung der Y-Koordinate müssen an DRIVEA und DRIVEB die gegenteiligen Zustände wie für die Bestimmung der X-Koordinate angelegt werden. An DRIVEA daher V ss (hier: 0V ) und an DRIVEB V cc (hier: +5V ). Nach 5ms kann die Y-Koordinate gelesen werden. Der Wertebereich für die Y-Koordinate liegt zwischen 0 (ganz unten) und 255 (ganz oben). Listing 3 zeigt dieses sehr einfache Unterprogramm zur Bestimmung der Y-Koordinate. Abbildung 4 zeigt den Zustand der Schalttransistoren der Hardware für das Lesen der Y-Koordinate. 85 char TP GetY(void) 86 { 87 char y Koordinate ; // Portpin DRIVEA = 0 und Portpin DRIVEB = 1 (Oben : +Vcc, Unten : Vss, 91 // Rechts : hochohmig, Links : y Koordinate ) 92 TP PORT DRIVEA = 0; 93 TP PORT DRIVEB = 1; // 5ms warten 96 Delay ms (5) ; // y Wert ( Links ) lesen 99 y Koordinate = ADC8(TP CHAN READY) ; return ( y Koordinate ) ; 102 } Listing 3: Y-Koordinate lesen (Auszug aus TOUCHPANEL.C) Abbildung 4: Y-Koordinate lesen (Zustand der Schalttransistoren) 4.4 Unterprogramm zur Analog-Digital-Wandlung (ADC8) Die Analog-Digital-Wandlung erfolgt mit einem eigenen kurzen Unterprogramm. Dieses Unterprogramm befindet sich in der Datei mypic ADC.C.
7 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) Koordinatenursprung Aufgrund der gewählten Hardware und der Software ergibt sich für den Koordinatenursprung des Touchpanel die linke untere Ecke, so wie es auch in der Mathematik üblich ist. Der Wertebereich ist für beide Achsen von 0 bis 255 (also jeweils 8 Bit, Abbildung 5). Abbildung 5: Koordinatenursprung des Touchpanel 5 Demonstrationsbeispiel 1 (Touchpanel) Das folgende Beispiel dient nur zur Demonstration. Es zeigt eine mögliche Einbindung der zuvor beschriebenen Unterprogramme. Bei diesem Demonstrationsbeispiel soll das Touchpanel in vier Bereiche aufgeteilt werden. Diese vier Bereiche sind virtuelle Tasten. Der Zustand dieser vier virtuellen Tasten wird mit je einer grünen 5mm Leuchtdiode angezeigt. Ein Druck auf diese virtuelle Taste soll die dazugehörige Leuchtdiode ein bzw. ausschalten. Jede dieser vier Tasten ist unabhängig von den anderen. Die Abbildung 6 zeigt ein Foto von diesem Demonstrationsbeispiel (Siehe auch Titelbild). Abbildung 6: Demonstrationsbeispiel 1 (Foto)
8 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) 7 Die Abbildung 7 zeigt die Koordinaten der vier virtuellen Tasten am Touchpanel. Abbildung 7: Demonstrationsbeispiel 1 (Koordinaten der virtuellen Tasten) 5.1 Schaltung (Hardware) Die Abbildung 8 zeigt die sehr einfache Schaltung für das erste Demonstrationsbeispiel. Abbildung 8: Demonstrationsbeispiel 1 (Touchpanel, Schaltung) Die Schaltung besteht im Wesentlichen aus dem resistiven Touchpanel (TP1), der im Abschnitt 3 besprochenen Schaltung zur Ansteuerung des Touchpanels, dem Mikrocontroller (IC1), vier Leuchtdioden (D1 bis D4) mit den dazugehörigen Vorwiderständen (R11 bis R14) und einer einfachen Spannungsversorgung mit einem 5-V-Fixspannungsregler (IC2) vom Typ Als Mikrocontroller (IC1) dient hier ein PIC16F88. Auffällig beim Mikrocontroller ist die fehlende Oszillatorschaltung sowie die fehlende Resetschaltung. Die Oszillatorschaltung
9 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) 8 ist hier auch nicht notwendig, da diese Anwendung nicht zeitkritisch ist und daher der interne 4-MHz-Oszillator verwendet werden kann. Wichtig: Bei der Konfiguration des Mikrocontrollers müssen die entsprechenden Bits für die Verwendung des internen Oszillators und des internen Reset gesetzt werden! Siehe Anmerkungen zur Software (ab Seite 21). Der Kondensator C3 dient zur Entkoppelung der Betriebsspannung für den Mikrocontroller IC1. Für diesen Koppelkondensator sollte ein Keramiktyp verwendet werden. Dieser muss möglichst nahe beim Mikrocontroller angebracht werden. Die Leuchtdioden D1 bis D4 mit den Vorwiderständen R11 bis R13 zeigen den Zustand der vier virtuellen Tasten am Touchpanel an. Die Stromversorgung besteht hier aus einer sehr einfachen Standardlösung. Ein Festspannungsregler (IC2) vom Typ 7805 übernimmt mit den Kondensatoren C4 bis C7 die Spannungsregelung. Die Diode D5 dient hier als Verpolungsschutz, und die Leuchtdiode D6 dient zusammen mit dem Strombegrenzungswiderstand R15 als Spannungskontrolle. 5.2 Stückliste Nr. Bezeichnung St. Lief. Bestell-Nr. Alt. Lief. Bestell-Nr. R1 - R6, R8, R9, R11 - R15 Widerstand 1k 13 Conrad R7, R10 Widerstand 47k 2 Conrad C1 - C3, C5, C6 Keramikkondensator 100nF RM Conrad C4 Mini-Elko 10µF/25V 1 Conrad C7 Tantal 1µF/35V 1 Conrad D1 - D4 Low-current-LED 5mm grün 4 Conrad D5 Diode 1N Conrad D6 Low-current-LED 3mm grün 1 Conrad T1, T3 Transistor BC557B 2 Conrad T2, T4, T5 Transistor BC547B 3 Conrad IC1 Mikrocontroller PIC16F88 1 Farnell Conrad IC2 Spannungsregler Conrad TP1 Touch-Panel 1 Tigal IC1 IC-Präzisionssockel 18polig 1 Conrad K1 Anschlussklemme 2polig 1 Conrad TP1 Touch-Panel-Connector 1 Tigal Platine Basismaterial (160 x 100mm) 1 Conrad Abstandsbolzen M3x10 4 Mutter M3 4 Tabelle 1: Demonstrationsbeispiel 1 (Touchpanel, Stückliste, Stand: September 2009) 5.3 Layout und Bestückungsplan Die Abbildung 9 zeigt das Layout für dieses Demonstrationsbeispiel. Es ist im Maßstab 1:1 und wie üblich spiegelverkehrt. Der Bestückungsplan ist in Abbildung 10 zu sehen. Der Nachbau sollte keine Probleme bereiten. Bei der Bestückung beginnt man üblicherweise mit den niedrigen Bauteilen.
10 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) 9 Abbildung 9: Demonstrationsbeispiel 1 (Touchpanel, Layout) Abbildung 10: Demonstrationsbeispiel 1 (Touchpanel, Bestückungsplan)
11 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) Software Der Quellcode ist zur besseren Übersicht in mehrere Dateien aufgeteilt: TouchPanel Demo.c beinhaltet das Hauptprogramm, die Interrupt-Service-Routine (ISR) und die Unterprogramme zur Initialisierung des Mikrocontrollers (PIC16F88) und zur Abfrage der virtuellen Tasten am Touchpanel. TOUCHPANEL.C beinhaltet die Unterprogramme zum Lesen der X- und Y-Koordinate des Touchpanel gemäß Abschnitt 4. TOUCHPANEL.H ist die Headerdatei zu TOUCHPANEL.C und beinhaltet die Portdefinitionen, die bei jeder Anwendung überprüft und ggf. angepasst werden müssen. mypic ADC.C beinhaltet das Hilfsunterprogramm zur Analog-Digital-Wandlung. mypic ADC.H ist die Headerdatei zu mypic ADC.C. Datei TouchPanel Demo.c: 1 / / 2 / Touchpanel Demonstrationsbeispiel / 3 / / 4 / / 5 / / 6 / Taste 1 Taste 3 / 7 / / 8 / / 9 / / 10 / Taste 2 Taste 4 / 11 / / 12 / / 13 / / 14 / / 15 / / 16 / interner Takt (4 MHz) / 17 / / 18 / Compiler : mikroc / 19 / / 20 / Entwickler : Stefan Buchgeher / 21 / Entwi ckl ungsbegi nn der Sof twar e : 1 5. August 2009 / 22 / Funktionsfaehig s e i t : 15. August 2009 / 23 / Letzte Bearbeitung : 16. August 2009 / 24 / / / Incl ude Dateien / 27 #include TOUCHPANEL.H / Str uktur en / 31 / keine Strukturen verwendet / / Externe R e g i s t e r / 35 / keine externen Register / / B i t s i n den exter nen R e g i s t e r n / 39 / keine externen Register / / Gl obal e R e g i s t e r / 43 char FlagISRHP ; 44 char ZaehlerZeitbasis100ms ;
12 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) / Bits in den globalen Registern / 48 / Register FlagISRHP / 49 #define FlagZeitbasis100ms FlagISRHP. F / Por tbel egung / 53 / Si ehe TOUCHPANEL.H / / Leuchtdioden / 56 #define LED Taste1 PORTB. F7 57 #define LED Taste2 PORTB. F5 58 #define LED Taste3 PORTB. F6 59 #define LED Taste4 PORTB. F / Konstanten / 63 // Konstanten fuer die Zeitbasen 64 #define KONSTZEITBASIS100MS // Konstanten f u e r d i e Tastenkoor di naten (Demo) 67 // Taste 1 68 #define KONSTTASTE1X #define KONSTTASTE1X #define KONSTTASTE1Y #define KONSTTASTE1Y // Taste 2 73 #define KONSTTASTE2X #define KONSTTASTE2X #define KONSTTASTE2Y #define KONSTTASTE2Y // Taste 3 78 #define KONSTTASTE3X #define KONSTTASTE3X #define KONSTTASTE3Y #define KONSTTASTE3Y // Taste 4 83 #define KONSTTASTE4X #define KONSTTASTE4X #define KONSTTASTE4Y #define KONSTTASTE4Y / Tabel l en / 90 / keine Tabellen / / Funkti onspr ototypen / 94 void Init (void) ; 95 void TouchPanelTastenRoutine ( void) ; / ISR Timer0 / / / 101 / Interrupt Service Routine : / 102 / / 103 / Aufruf : / 104 / a l l e 8.2 ms ( ungefaehr ) / 105 / / 106 / Aufgaben : / 107 / + Zeitbasis fuer 100 Millisekunde erzeugen / 108 / + Das Timer Interrupt Flag T0IF wieder loeschen / 109 / / 110 void interrupt (void) // Interruptroutine 111 { 112 ZaehlerZeitbasis100ms ; 113 if ( ZaehlerZeitbasis100ms == 0) // Botschaftsflag fuer 100ms Zeitbasis setzen 114 { 115 FlagZeitbasis100ms = 1;
13 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) ZaehlerZeitbasis100ms = KONSTZEITBASIS100MS ; // Zaehlregister fuer 100 ms 117 // Zeitbasis neu laden 118 } 119 INTCON. T0IF = 0; // Timer Interrupt Flag T0IF wieder loeschen 120 } / Unterprogramme und Funktionen / / / 126 / Init : / 127 / / 128 / Aufgabe : / 129 / I n i t i a l i s i e r u n g des Prozessor : / 130 / + Timer 0 (TMR0) loeschen / 131 / + Timer 0 ISR s o l l ca. a l l e 8,2ms aufgerufen werden, daher den Vorteiler mit / 132 / 1:32 laden ( bei einem 4 MHz Takt) / 133 / VT / 134 / ISR Aufruf [ us ] = = = 8192 us = 8, 2 ms / 135 / f [MHz] 4 / 136 / + internen Oszillator konfigurieren ( hier : 4MHz) / 137 / + Port A fuer das Touchpanel als Eingang ( fuer ADC) bzw. als Ausgang d efinieren / 138 / + Port B fuer die Leuchtdioden als Ausgang definieren und Inhalt loeschen / 139 / + ADC konfigurieren / 140 / + Zaehlregister fuer Zeitbasis i n i t i a l i s i e r e n / 141 / + Interrupt freigeben ( Timer0 freigeben durch Setzen von GIE und T0IE im / 142 / INTCON Register ) / 143 / / 144 / Uebergabeparameter : / 145 / keiner / 146 / / 147 / Rueckgabeparameter : / 148 / keiner / 149 / / 150 void Init (void) 151 { 152 // Timer 0 Interrupt konfigurieren 153 TMR0 = 0; // Timer 0 auf 0 voreinstellen 154 OPTION REG = 0b ; // Option Register (Bank 1) 155 / + Bi t 7 (nrbpu) : Pull Up Widerstaende am Port B : Pull Up aktiviert 157 > 1 : Pull Up deaktiviert Bit 6 (INTEDG) : Interrupt Edge Select Bit 159 > 0 : Interrupt on f a l l i n g edge of RB0/INT pin : Interrupt on r i s in g edge of RB0/INT pin Bit 5 (T0CS) : Timer 0 Clock source Select Bit 162 > 0 : Transition on RA4/T0CKI pin : Internal instruction cycle clock (CLKOUT) Bi t 4 (T0SE) : TMR0 Source Edge S e l e c t b i t 165 > 0 : Increment on low to high tranition : Increment on high to low tranition Bit 3 (PSA) : Prescaler Assignment bit 168 > 0 : Prescaler i s assigned to the TIMER0 module : Prescaler i s assigned to the WDT Bit 2 0 (PS2 : PS0) : Prescaler Rate Select bits 171 Bi t Value TMR0 Rate WDT Rate : 1:2 1: : 1:4 1: : 1:8 1: : 1:16 1:8 176 > 100 : 1:32 1: : 1:64 1: : 1:128 1: : 1: 256 1: / 181 // internen Oszillator konfigurieren 182 OSCCON = 0b ; // Oszillator Control Register (Bank 1) 183 / + Bi t 7 Reserve Bit 6 4 (IRCF2 :IRCF0) : Internal RC Oscillator 185 Frequency Select bits : khz (INTRC source drives clock )
14 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) : 125 khz : 250 khz : 500 khz : 1 MHz : 2 MHz 192 > 110: 4 MHz : 8 MHz Bit 3 (OSTS) : Oscillator Start up Time out 195 Status bit : Device i s running from T1OSC or INTRC 197 as a secondary system clock 198 > 1 : Device i s running from the primary 199 system clock Bi t 2 ( IOFS) : INTOSC Frequency S t a b l e b i t 201 > 0 : Frequency i s not stable : Frequency i s stable Bit 1,0 (SCS1:SCS0) : Oscillator Mode Select bits : Oscillator mode defined by Fosc<2:0> : T1OSC i s used for system clock 206 > 10: internal RC i s used for system clock : Reserved 208 / // Ports konfigurieren 211 TRISA = 0b ; // Richtungsregister Port A (0: Ausgang, 1: Eingang) 212 / ++ Bi t 7 6 Reserve Bi t 5 Port RA5: h i e r unbenutzt Bi t 4 Port RA4: h i e r unbenutzt Bit 3 Port RA3: hier analoger Eingang ( Touchpanel) Bit 2 Port RA2: hier analoger Eingang ( Touchpanel) Bi t 1 Port RA1: h i e r h i e r Ausgang ( Touchpanel) Bi t 0 Port RA0: h i e r h i e r Ausgang ( Touchpanel) 219 / TRISB = 0b ; // Richtungsregister Port B (0: Ausgang, 1: Eingang) 222 / + Bi t 7 Port RB7: h i e r Ausgang (LED Taste 1) Bi t 6 Port RB6: h i e r Ausgang (LED Taste 3) Bi t 5 Port RB5: h i e r Ausgang (LED Taste 2) Bi t 4 Port RB4: h i e r Ausgang (LED Taste 4) Bi t 3 Port RB3: h i e r unbenutzt Bi t 2 Port RB2: h i e r unbenutzt Bi t 1 Port RB1: h i e r unbenutzt Bi t 0 Port RB0: h i e r unbenutzt 230 / PORTB = 0; // ADC konfigurieren 235 ANSEL = 0b ; // ANSEL Register (0: Digital I /O, 1: Analog I /O) 236 / + Bi t 7 Reserve Bit 6 Port RB7/AN6: hier Digital I /O Bit 5 Port RB6/AN5: hier Digital I /O Bi t 4 Port RA4/AN4: h i e r unbenutzt Bi t 3 Port RA3/AN3: h i e r Analog I /O Bi t 2 Port RA2/AN2: h i e r Analog I /O Bit 1 Port RA1/AN1: hier Digital I /O Bit 0 Port RA0/AN0: hier Digital I /O 244 / ADCON0 = 0b ; // ADC Control Register 0 (Bank 1) 247 / ++ Bi t 7 6 (ADCS1: ADCS0) : A/D Conersion Clock S e l e c t 248 bits 249 IF ADSC2 = 0: : Fosc/2 ( bei fosz : MHz) 251 > 01 : Fosc/8 ( bei fosz : MHz) : Fosc/32 ( bei fosz : 5 20 MHz) : Frc ( bei RC Oszillator ) 254 IF ADSC2 = 1: : Fosc/4 ( bei fosz : MHz) : Fosc/16 ( bei fosz : MHz) : Fosc/64 ( bei fosz : 5 20 MHz)
15 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) : Frc ( bei RC Oszillator ) Bi t 5 3 (CHS2: CHS0) : Analog Channel S e l e c t b i t s 260 > 000: channel 0 (RA0/AN0) : channel 1 (RA1/AN1) : channel 2 (RA2/AN2) : channel 3 (RA3/AN3) : channel 4 (RA4/AN4) : channel 5 (RB6/AN5) : channel 6 (RB7/AN6) Bi t 2 (GO/DONE) : A/D Conversion Status Bi t 268 IF ADON = 1: 269 > 0 : A/D conversion not in progress : A/D conversion in progress Bi t 1 Reserve Bi t 0 (ADON) : A/D On Bi t : A/D converter module i s shut off 274 > 1 : A/D converter module i s operating 275 / ADCON1 = 0b ; // ADC Control Register 1 (Bank 1) 278 / + Bi t 7 (ADFM) : A/D Resul t Formated S e l e c t b i t s 279 > 0 : Left j u s t i f i e d : 280 in ADRESH: Bit 9 bis Bit in ADRESL: Bit 1, Bit 0, Rest : Right j u s t i f i e d : 283 in ADRESH: Bit 9 Bit in ADRESL: Bit 7 bis Bit Bi t 6 (ADCS2) : A/D Clock Di vi de by 2 S e l e c t b i t 286 > 0 : Disabled : A/D clock source i s divide by 2 when 288 system clock i s used Bi t 5, 4 (VCFG1:VCFG0) : A/D Voltage Ref er ence 290 Vref+ Vref : AVdd AVss : AVdd Vref : Vref+ AVss : Vref+ Vref Bi t 3 0 Reserve 296 / // Zaehlregister fuer Zeitbasis i n i t i a l i s i e r e n 299 ZaehlerZeitbasis100ms = KONSTZEITBASIS100MS ; // Zaehlregister fuer 100 ms Zeitbasis 300 // i n i t i a l i s i e r e n // Interrupt freigeben 303 INTCON = 0b ; // Interrupt Control Register (Bank 1) 304 / + Bit 7 (GIE) : Global Interrupt Enable bit : Disables a l l interrupts 306 > 1 : Enables a l l unmasked interrupts Bit 6 (PEIE) : Peripheral Interrupt Enable bit 308 > 0 : Disables a l l peripheral interrupts : Enables a l l unmasked peripheral interrupts Bit 5 (T0IE) : Timer 0 Overflow Interrupt Enable Bit : Disabled 312 > 1 : Enabled Bi t 4 (INTE) : RB0/INT Exter nal I n t e r r u p t Enable Bi t 314 > 0 : Disabled : Enabled Bi t 3 (RPIE) : RB Port Change I n t e r r u p t Enable Bi t 317 > 0 : Disabled : Enabled Bit 2 (T0IF) : Timer 0 Overflow Interrupt Flag bit 320 > 0 : TMR0 r egister did not overflow : TMR0 r egister has overflowed Bit 1 (INTF) : RB0/INT External Interrupt Flag bit 323 > 0 : RB0/INT external interrupt did not occur : RB0/INT external interrupt occurred Bit 0 (RBIF) : RB Port Change Interrupt Flag bit 326 > 0 : None of RB7:RB4 pins have changed state : One of the RB7:RB4 pins changed state 328 /
16 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) } / / 333 / TouchPanelTastenRoutine : / 334 / / 335 / Aufruf : / 336 / ca. a l l e 100 ms ( vom Hauptprogramm) / 337 / / 338 / Aufgabe : / 339 / Ermitteln, ob und welche der vier virtuellen Tasten am Touch Panel gedrueckt / 340 / wurde, und den virtuellen Tastenzustand toggeln und den Status mit den LEucht / 341 / dioden anzei gen. / 342 / / 343 / Zuordnung der virtuellen Tasten am Touch Panel : / 344 / / 345 / / 346 / Taste 1 Taste 3 / 347 / / 348 / / 349 / / 350 / Taste 2 Taste 4 / 351 / / 352 / / 353 / / 354 / / 355 / / 356 / Vorgehensweise : / 357 / + x und y Koordinaten von Touchpanel l e s e n / 358 / + Pruefen, ob d i e x und y Koordinate im Ber ei ch von Taste 1 l i e g t, wenn ja, den / 359 / Zustand der Taste 1 b e i einem Uebergang von n i c h t gedr ueckt zu gedr ueckt / 360 / in vertieren ( toggeln ) und je nach Aufgabe der Taste diese ausführen ( hier : den / 361 / Status der Taste mit e i n e r Leuchtdiode anzei gen / 362 / + Das selbe nun fuer die anderen drei Tasten / 363 / / 364 / Uebergabeparameter : / 365 / keiner / 366 / / 367 / Rueckgabeparameter : / 368 / keiner / 369 / / 370 / Anmerkungen : / 371 / + Bei dem hier verwendeten r es istiven Touch Panel kann immer nur eine Taste ge / 372 / drueckt werden. Mehrere Tasten g l e i c h z e i t i g ( also eine Tastenkombination ) i s t / 373 / bei r esistiven Touchpanels nicht möglich! / 374 / + das statische Register button status diehnt hier als H ilfsr egister, wobei die / 375 / Bits folgende Bedeutung haben : / 376 / Bi t 0: Zustand von Taste 1 (0 = Taste n i c h t gedrueckt, 1 = Taste gedr ueckt ) / 377 / Bit 1: H i l f s f l a g zur Erkennung einer nicht gedrueckt gedrueckt Flanke von / 378 / Taste 1 / 379 / Bi t 2: Zustand von Taste 2 (0 = Taste n i c h t gedrueckt, 1 = Taste gedr ueckt ) / 380 / Bit 3: H i l f s f l a g zur Erkennung einer nicht gedrueckt gedrueckt Flanke von / 381 / Taste 2 / 382 / Bi t 4: Zustand von Taste 3 (0 = Taste n i c h t gedrueckt, 1 = Taste gedr ueckt ) / 383 / Bit 5: H i l f s f l a g zur Erkennung einer nicht gedrueckt gedrueckt Flanke von / 384 / Taste 3 / 385 / Bi t 6: Zustand von Taste 4 (0 = Taste n i c h t gedrueckt, 1 = Taste gedr ueckt ) / 386 / Bit 7: H i l f s f l a g zur Erkennung einer nicht gedrueckt gedrueckt Flanke von / 387 / Taste 4 / 388 / + Die zulaessigen Bereiche der Tasten am Touch Panel sind durch die Konstanten / 389 / KONSTTASTExXx und KONSTTASTExYx begr enzt. / 390 / / 391 void TouchPanelTastenRoutine ( void) 392 { 393 char x, y ; 394 static char button status = 0; // Schritt 1: x und y Koordinaten von Touchpanel lesen 398 x = TP GetX() ; 399 y = TP GetY() ;
17 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) // Schritt 2: Taste if (( x >= KONSTTASTE1X1) && (x <= KONSTTASTE1X2) && (y >= KONSTTASTE1Y1) && (y <= KONSTTASTE1Y2) ) 403 { 404 if ( button status. F1 == 0) 405 { 406 button status. F1 = 1; if ( button status. F0 == 0) 409 { 410 button status. F0 = 1; 411 LED Taste1 = 1; 412 } 413 el se 414 { 415 button status. F0 = 0; 416 LED Taste1 = 0; 417 } 418 } 419 } 420 el se 421 { 422 button status. F1 = 0; 423 } // Schritt 3: Taste if (( x >= KONSTTASTE2X1) && (x <= KONSTTASTE2X2) && (y >= KONSTTASTE2Y1) && (y <= KONSTTASTE2Y2) ) 427 { 428 if ( button status. F2 == 0) 429 { 430 button status. F2 = 1; if ( button status. F3 == 0) 433 { 434 button status. F3 = 1; 435 LED Taste2 = 1; 436 } 437 el se 438 { 439 button status. F3 = 0; 440 LED Taste2 = 0; 441 } 442 } 443 } 444 el se 445 { 446 button status. F2 = 0; 447 } // Schritt 4: Taste if (( x >= KONSTTASTE3X1) && (x <= KONSTTASTE3X2) && (y >= KONSTTASTE3Y1) && (y <= KONSTTASTE3Y2) ) 451 { 452 if ( button status. F4 == 0) 453 { 454 button status. F4 = 1; if ( button status. F5 == 0) 457 { 458 button status. F5 = 1; 459 LED Taste3 = 1; 460 } 461 el se 462 { 463 button status. F5 = 0; 464 LED Taste3 = 0; 465 } 466 } 467 }
18 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) el se 469 { 470 button status. F4 = 0; 471 } // Schritt 5: Taste if (( x >= KONSTTASTE4X1) && (x <= KONSTTASTE4X2) && (y >= KONSTTASTE4Y1) && (y <= KONSTTASTE4Y2) ) 475 { 476 if ( button status. F6 == 0) 477 { 478 button status. F6 = 1; if ( button status. F7 == 0) 481 { 482 button status. F7 = 1; 483 LED Taste4 = 1; 484 } 485 el se 486 { 487 button status. F7 = 0; 488 LED Taste4 = 0; 489 } 490 } 491 } 492 el se 493 { 494 button status. F6 = 0; 495 } 496 } / Hauptprogramm / / / 501 / Aufgaben des Hauptprogramms: / 502 / + Controller i n i t i a l i s i e r e n ( Unterprogramm INIT) / 503 / + Taetigkeiten /Unterprogramme, die a l l e zyklisch durchgefuehrt werden muessen : / 504 / + a l l e 100 ms: Touchpanel abfragen, ob eine v i r t u e l l e Taste gedrueckt wurde / 505 / ( Unterprogramm TouchPanelTastenRoutine ) / 506 / / 507 void main (void) 508 { 509 // Controller i n i t i a l i s i e r e n 510 Init () ; // Endlosschleife 513 while (1) 514 { 515 if ( FlagZeitbasis100ms) 516 { 517 // Touchpanel abfragen, ob eine v i r t u e l l e Taste gedrueckt wurde 518 TouchPanelTastenRoutine () ; // Botschaftsflag ( fuer 100ms Zeitbasis ) zuruecksetzen 521 FlagZeitbasis100ms = 0; 522 } 523 } 524 } Datei TOUCHPANEL.C: 1 / / 2 / Unterprogramme zum Lesen der x und y Koordinate von einem r e s i s t i v e n Touchpanel / 3 / / 4 / / 5 / / 6 / / 7 / / 8 / / 9 / /
19 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) / / 11 / / 12 / / 13 / / 14 / Compiler : mikroc / 15 / / 16 / Entwickler : Stefan Buchgeher / 17 / Entwicklungsbeginn der Software : 24. Juli 2009 / 18 / Funktionsfaehig s e i t : 24. Juli 2009 / 19 / Letzte Bearbeitung : 16. August 2009 / 20 / / / Incl ude Dateien / 23 #include TOUCHPANEL.H 24 #include mypic ADC.H / Unterprogramme zum Lesen der x und y Koordinate / / / 30 / TP GetX : / 31 / / 32 / Aufgabe : / 33 / x Koordinate von Touchpanel l e s e n : / 34 / / 35 / Vorgehensweise : / 36 / + Portpin DRIVEA = 1 und Portpin DRIVEB = 0 ( Rechts : +Vcc, Links : Vss, / 37 / Oben : hochohmig, Unten : x Koordinate ) / 38 / + 5ms warten / 39 / + x Wert (Unten) lesen / 40 / / 41 / Uebergabeparameter : / 42 / keine / 43 / / 44 / Rueckgabeparameter : / 45 / x Koordinate ( ) / 46 / / 47 char TP GetX(void) 48 { 49 char x Koordinate ; // Portpin DRIVEA = 1 und Portpin DRIVEB = 0 ( Rechts : +Vcc, Links : Vss, 53 // Oben : hochohmig, Unten : x Koordinate ) 54 TP PORT DRIVEA = 1; 55 TP PORT DRIVEB = 0; // 5ms warten 58 Delay ms (5) ; // x Wert (Unten) lesen 61 x Koordinate = ADC8(TP CHAN READX) ; return ( x Koordinate ) ; 64 } / / 68 / TP GetY : / 69 / / 70 / Aufgabe : / 71 / y Koordinate von Touchpanel l e s e n : / 72 / / 73 / Vorgehensweise : / 74 / + Portpin DRIVEA = 0 und Portpin DRIVEB = 1 (Oben : +Vcc, Unten : Vss, / 75 / Rechts : hochohmig, Links : y Koordinate ) / 76 / + 5ms warten / 77 / + y Wert ( Links ) lesen / 78 / / 79 / Uebergabeparameter : / 80 / keine /
20 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) / / 82 / Rueckgabeparameter : / 83 / y Koordinate ( ) / 84 / / 85 char TP GetY(void) 86 { 87 char y Koordinate ; // Portpin DRIVEA = 0 und Portpin DRIVEB = 1 (Oben : +Vcc, Unten : Vss, 91 // Rechts : hochohmig, Links : y Koordinate ) 92 TP PORT DRIVEA = 0; 93 TP PORT DRIVEB = 1; // 5ms warten 96 Delay ms (5) ; // y Wert ( Links ) lesen 99 y Koordinate = ADC8(TP CHAN READY) ; return ( y Koordinate ) ; 102 } Datei TOUCHPANEL.H: 1 / / 2 / Header f u e r d i e Unterprogramme zum Lesen der x und y Koordinate von einem / 3 / r e s istiven Touchpanel / 4 / / 5 / Compiler : mikroc / 6 / / 7 / Entwickler : Stefan Buchgeher / 8 / Entwicklungsbeginn der Software : 24. Juli 2009 / 9 / Funktionsfaehig s e i t : 24. Juli 2009 / 10 / Letzte Bearbeitung : 16. August 2009 / 11 / / / Gl obal e R e g i s t e r / 15 / keine globalen Register / / Por tbel egung / 19 #define TP PORT DRIVEA PORTA. F1 20 #define TP PORT DRIVEB PORTA. F / Analoge Kanaele / 24 #define TP CHAN READX 3 25 #define TP CHAN READY / Funkti onspr ototypen / 29 char TP GetX(void) ; 30 char TP GetY(void) ; Datei mypic ADC.C: 1 / / 2 / Unterprogramme zum Lesen des PIC i n t e r n e n ADC Moduls / 3 / / 4 / Compiler : mikroc / 5 / / 6 / Entwickler : Stefan Buchgeher / 7 / Entwicklungsbeginn der Software : 24. Juli 2009 / 8 / Funktionsfaehig s e i t : 24. Juli 2009 / 9 / Letzte Bearbeitung : 24. Juli 2009 / 10 / / 11
21 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) / Incl ude Dateien / 13 #include mypic ADC.H / Unterprogramm zur Analog D i g i t a l Wandlung / / / 18 / ADC8: / 19 / / 20 / Aufgabe : / 21 / Analog Digital Wandlung mit dem PIC interne ADC fuer den ausgewaehlten ADC Kanal / 22 / starten, auf das Wandlungsergebnis warten und dieses dem aufrufenden Programm / 23 / zurueckgeben. / 24 / / 25 / Uebergabeparameter : / 26 / kanal : / 27 / / 28 / Rueckgabeparameter : / 29 / 8 hoeherwertigen Bits der AD Wandlung (PIC Register : ADRESH) / 30 / / 31 / Vorgehensweise : / 32 / + ADC Kanal auswaehlen ( Bits <3:5> im Register ADCON0). Dazu muss die Kanal Nummer / 33 / an diese Position geschoben werden und mit dem Register ADCON0 verknuepft werden / 34 / + ca. 50 Mikrosekunden ( us ) warten. Diese Zeit benoetigt der PIC um den internen / 35 / Kondensator mit der zu messenden Analogspannung zu l aden. / 36 / + Analog Digital Wandlung starten. Dazu das Flag GO (im Register ADCON0) setzen. / 37 / + Warten, bis der PIC mit der Wandlung f e r t i g i s t. Der PIC setzt das Flag GO auto / 38 / matisch zurueck, wenn er mit der Analog Digital Wandlung f e r t i g i s t. / 39 / + Aus den Registern ADRESL und ADRESH das Ergebnis zusammensetzen und an das auf / 40 / r uf ende Unterprogramm ( oder Hauptprogramm) zurueckgeben / 41 / / 42 / Anmerkung : / 43 / Das Ausgabeformat der ADC Wandlung, also wie die 10 Ergebnisbits in den Registern / 44 / ADRESL und ADRESH abgelegt werden wird an anderer S t e lle ( z.b. im Unterprogramm / 45 / INIT) kon figu riert. / 46 / / 47 char ADC8( char kanal ) 48 { 49 ADCON0 = ADCON0 & 0b ; 50 kanal = kanal << 3; 51 ADCON0 = ADCON0 kanal ; Delay us (50) ; ADCON0.GO = 1; 56 while(adcon0.go) ; return (ADRESH) ; 59 } Datei mypic ADC.H: 1 / / 2 / Header f u e r d i e Unterprogramme zum Lesen des PIC i n t e r n e n ADC Moduls / 3 / / 4 / Compiler : mikroc / 5 / / 6 / Entwickler : Stefan Buchgeher / 7 / Entwicklungsbeginn der Software : 24. Juli 2009 / 8 / Funktionsfaehig s e i t : 24. Juli 2009 / 9 / Letzte Bearbeitung : 24. Juli 2009 / 10 / / / Funkti onspr ototypen / 14 char ADC8(char kanal ) ;
22 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) Anmerkungen zur Software Der Quellcode für dieses erste Demonstrationsbeispiel wurde in C mit der freien Demoversion des mikroc-compilers erstellt. Die Software besteht im Wesentlichen aus den folgenden Programmteilen: kurzes Hauptprogramm am Ende des Quellcodes von TouchPanel Demo.c, Zeilen 507 bis 524 kurze Interrupt-Service-Routine (kurz: ISR), in der Datei TouchPanel Demo.c, Zeilen 110 bis Unterprogramm zur Initialisierung des PIC16F88 (Unterprogramm Init in der Datei TouchPanel Demo.c, Zeilen 150 bis 329). 1 Unterprogramm zur Abfrage der virtuellen Tasten am Touchpanel (Unterprogramm TouchPanelTastenRoutine in der Datei TouchPanel Demo.c, Zeilen 391 bis 496). 2 Unterprogramme zur Bestimmung der Koordinaten am Touchpanel (Unterprogramme TP GetX und TP GetY in der Datei TOUCHPANEL.C, Zeilen 47 bis 64 bzw. Zeilen 85 bis 102). 1 Hilfs-Unterprogramm zur Analog-Digital-Wandlung mit dem PIC-internen ADC- Hardware-Modul (Unterprogramm ADC8 in der Datei mypic ADC.C, Zeilen 47 bis 59). Interrupt-Service-Routine (kurz: ISR): Die ISR (in der Datei TouchPanel Demo.c, Zeilen 110 bis 120) wird alle 8,2ms aufgerufen und besitzt hier nur die Aufgabe eine 100-ms-Zeitbasis zu erzeugen, indem sie ein Botschaftsflag für das Hauptprogramm erzeugt. Das Hauptprogramm reagiert auf dieses Botschaftsflag, indem es das Unterprogramm zur Ermittlung, ob eine virtuelle Taste am Touchpanel gedrückt wurde aufruft. Durch diesen Mechanismus wird dieses Unterprogramm zyklisch, alle 100ms aufgerufen. Damit eine Zeit von ca. 100ms entsteht, muss die ISR 12-mal aufgerufen werden (12 x 8,2ms = ca. 98ms also ca. 100ms). Bei jedem ISR-Aufruf muss also ein Zählregister um 1 vermindert werden. Besitzt es danach den Wert 0, so sind 100ms (genauer: 98ms) vergangen. Nun wird das Botschaftsflag FlagZeitbasis100ms im Register FlagISRHP gesetzt, und das Zählregister muss mit dem Wert 12 neu geladen werden. Der Wert 12 wird hier durch die Konstante KONSTZEITBASIS100MS ersetzt. Die Zeit von 8,2ms ergibt sich, weil als Takt der interne 4-MHz-Takt verwendet wird (Register OSCCON, Zeile 182) und weil der Vorteiler (VT) im Register OPTION REG mit dem Wert 1:32 geladen wird (Zeile 154). ISRAUFRUF[µs] = V T f Takt [MHz] = = 8192µs = 8.2ms
23 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) 22 Hauptprogramm: Das Hauptprogramm (main, Datei: TouchPanel Demo.c, Zeilen 507 bis 524) befindet sich nach der Initialisierung (mit dem Unterprogramm Init) in einer Endlosschleife. Diese Schleife besitzt nur die Aufgabe ständig das Botschaftsflag FlagZeitbasis100ms zu prüfen. Ist dieses Botschaftsflag gesetzt, so muss vom Hauptprogramm eine bestimmte Aufgabe ausgeführt werden. Diese Aufgaben sind in Form von Unterprogrammen vorhanden. Hier hat es die Aufgabe das Unterprogramm zur Abfrage des Touchpanels aufzurufen (Zeile 518). Wichtig ist, dass das Botschaftsflag wieder gelöscht werden muss (Zeile 521). Unterprogramm Init: Das Unterprogramm Init (Datei: TouchPanel Demo.c, Zeilen 150 bis 329) dient zur Initialisierung des Mikrocontrollers. Hier werden unter anderem die Ports konfiguriert (Port dient als Eingang oder als Ausgang), der oder die Timer eingestellt usw. Dieses Unterprogramm ist vom Controllertyp abhängig und je nach Anwendung mehr oder weniger umfangreich. In diesem Unterprogramm werden auch die globalen Register initialisiert. Hier, bei diesem Demonstrationsbeispiel das Zählregister für die 100-ms-Zeitbasis (Zeile 299). Unterprogramm TouchPanelTastenRoutine: Das Unterprogramm TouchPanelTastenRoutine (Datei: TouchPanel Demo.c, Zeilen 391 bis 496) ist das wesentliche Unterprogramm für dieses Demonstrationsbeispiel. Es überprüft regelmäßig, ob am Touchpanel eine der vier virtuellen Tasten gedrückt wurde. Dazu muss es zunächst die X- und die Y-Koordinate mit den im Abschnitt 4 (ab Seite 3) beschriebenen Unterprogrammen TP GetX und TP GetY ermitteln (Zeilen 398 und 399). Danach wird überprüft, ob diese Koordinaten im Bereich der ersten virtuellen Taste liegen (Zeile 402). Nur wenn diese Koordinaten im Bereich der ersten Taste liegen, und wenn diese Taste vor dem Aufruf des Unterprogramms noch nicht gedrückt wurde (Zeile 404) so erfolgt nun das Toggeln des Tastenzustandes und der Leuchtdiode (Zeilen 408 bis 417). Beachte: Damit bei einem längeren Drücken auf das Touchpanel der Tastenzustand und die Leuchtdiode nicht ständig toggeln ist ein Hilfsbit notwendig. Dieses Hilfsbit wird gesetzt, sobald die Taste gedückt wurde (Zeilen 404 und 406), und wird wieder gelöscht, wenn die Koordinaten außerhalb dieser Taste sind (Zeile 422). Dieser Vorgang muss nun für die weiteren drei virtuellen Tasten wiederholt werden. Wichtig: Dieses Unterprogramm muss im Hauptprogramm regelmäßig (zyklisch) aufgerufen werden (Siehe Hauptprogramm, Datei: TouchPanel Demo.c, Zeile 518). Unterprogramme TP GetX und TP GetY: Diese beiden Unterprogramme wurden bereits im Abschnitt 4 (ab Seite 3) sehr ausführlich behandelt, so dass sie hier nicht mehr näher erläutert werden müssen.
24 5 DEMONSTRATIONSBEISPIEL 1 (TOUCHPANEL) 23 Wichtig: In der Datei TOUCHPANEL.H müssen die Portpins und die analogen Kanäle gemäß der Demonstrationsschaltung nach Abbildung 8 (Seite 8) definiert werden, Zeilen 19, 20, 24 und 25. Unterprogramm ADC8: Das Unterprogramm ADC8 (Datei: mypic ADC.C, Zeilen 47 bis 59) dient zur Analog-Digital- Wandlung mit dem PIC-internen-Hardwaremodul und entspricht der Vorgabe im Datenblatt zum PIC16F88 [5]. Sonstiges: Am Beginn des Quellcodes (in der Datei TouchPanel Demo.c) befinden sich die folgenden Definitionen und Einstellungen: Einbinden externer Codeteile (Zeile 27) Definition der globalen Register für die ISR (Zeilen 43 und 44) Portdefinition (hier für die vier Leuchtdioden, Zeilen 56 bis 59) Konstanten für die Erzeugung der 100-ms-Zeitbasis (Zeile 64) und für die Erkennung der vier virtuellen Tasten (Zeilen 68 bis 86) Die Funktionsprototypen für die hier verwendeten Unterprogramme (Zeilen 94 und 95) Ab Zeile 110 beginnt der Quellcode der ausreichend mit Kommentaren versehen ist Ein kleiner Nachteil beim mikroc-compiler ist, dass die Konfigurationsbits für den PIC- Mikrocontroller in der IDE gesetzt werden müssen. Ich persönlich würde diese lieber im Quellcode mit einer geeigneten Anweisung setzen. Hier sind die notwendigen Einstellungen für den PIC16F88 für dieses Demonstrationsbeispiel: CP OFF DEBUG OFF WRT ENABLE OFF CPD OFF LVP OFF BODEN OFF MCLR OFF PWRTE ON
25 6 DEMONSTRATIONSBEISPIEL 2 (TOUCHSCREEN) 24 WDT OFF INTRC IO IESO OFF CFG2 FCMEN OFF CFG2 6 Demonstrationsbeispiel 2 (Touchscreen) Eine typische Anwendung für ein Touchpanel ist das Touchscreen. Bei einem Touchscreen wird das Touchpanel über einem Grafik-Display befestigt. Dadurch ergibt sich eine sehr kompakte Bedien- und Anzeigeeinheit. Das Grafik-Display zeigt Tasten in Form von Rechtecken an, und ein Druck auf das darüberliegende, durchsichtige Touchpanel löst die gewünschte Reaktion aus. Das zweite Demonstrationsbeispiel zeigt dies an einem einfachen Besipiel mit zwei Tasten (Abbildung 11). Abbildung 11: Demonstrationsbeispiel 2 (Foto)
26 6 DEMONSTRATIONSBEISPIEL 2 (TOUCHSCREEN) 25 Die Abbildung 12 zeigt die Koordinaten der beiden virtuellen Tasten am Touchpanel. Abbildung 12: Demonstrationsbeispiel 2 (Koordinaten der virtuellen Tasten) 6.1 Schaltung (Hardware) Die Abbildung 13 zeigt die Schaltung für das zweite Demonstrationsbeispiel. Abbildung 13: Demonstrationsbeispiel 2 (Touchscreen, Schaltung) Der Wesentliche Unterschied zum ersten Demonstrationsbeispiel ist das Grafik-Display (LCD1) mit einer Auflösung von 128 x 64 Pixel. Dadurch ist auch ein größerer Mikrocontroller (IC1) mit zusätzlichen Portpins notwendig. Für dieses Demonstrationsbeispiel wird daher der PIC16F877 verwendet, der mit einem externen 20-MHz-Takt versorgt wird (X1, C5, C6 und R14). Der PIC16F877 lässt sich sehr gut in der Schaltung programmieren. Diese Methode wird ICSP genannt. ICSP steht für In-Circuit-Serial-Programming.
27 6 DEMONSTRATIONSBEISPIEL 2 (TOUCHSCREEN) 26 Der Reset wird hier mit einem RC-Glied bestehend aus R13 und C3 erzeugt. Zusätzlich kann ein Reset jederzeit mit dem Taster S1 ausgelöst werden. Da der Reseteingang des Mikrocontrollers (MCLR, Pin 1) auch gleichzeitig die Programmierspannung (ca. 13V) bei der ICSP-Programmierung ist, darf während einer Programmierung kein Reset ausgelöst werden. Durch die Diode D1 ist ein Reset durch das RC-Glied (R13 und C3) während einer Programmierung via ICSP nicht möglich. Für die Beschaltung des Touchpanel (TP1), für den Koppelkondensator (hier: C4) und für die Stromversorgung gilt das gleiche wie beim ersten Demonstrationsbeispiel. 6.2 Stückliste Nr. Bezeichnung St. Lief. Bestell-Nr. Alt. Lief. Bestell-Nr. Widerstand 0 Ohm SMD Conrad R1 - R6, R8, R9, R15 Widerstand 1k 9 Conrad R7, R10 Widerstand 47k 2 Conrad R11 Trimmer 10k 1 Conrad R12 Widerstand 10 Ohm 1 Conrad R13 Widerstand 10k 1 Conrad R14 Widerstand 270 Ohm 1 Conrad C1, C2, C4, C8, C9 Keramikkondensator 100nF RM Conrad C3, C7 Mini-Elko 10µF/25V 2 Conrad C5, C6 Keramikkondensator 22pF RM Conrad C10 Tantal 1µF/35V 1 Conrad D1 Diode 1N Conrad D2 Diode 1N Conrad D3 Low-current-LED 3mm grün 1 Conrad T1, T3 Transistor BC557B 2 Conrad T2, T4, T5 Transistor BC547B 3 Conrad IC1 Mikrocontroller PIC16F877(A) 1 Farnell Conrad IC2 Spannungsregler Conrad X1 Quarz 20 MHz 1 Conrad LCD1 Grafik-Display 128 x 64 Pixel 1 Tigal TP1 Touch-Panel 1 Tigal IC1 IC-Präzisionssockel 40polig 1 Conrad K1 Buchsenleiste 5polig 1 Conrad K2 Anschlussklemme 2polig 1 Conrad LCD1 Stiftleiste 20polig 1 Conrad JP1 Stiftleiste 2polig 1 Conrad TP1 Touch-Panel-Connector 1 Tigal JP1 Jumper, schwarz 1 Conrad S1 Taster 1 Conrad Platine Basismaterial (160 x 100mm) 1 Conrad Abstandsbolzen M3x10 4 Mutter M3 4 Abstandsbolzen M2.5x10 4 Beilagscheibe M2.5 4 Zylinderkopfschraube M2.5x6 4 Tabelle 2: Demonstrationsbeispiel 2 (Touchscreen, Stückliste, Stand: September 2009) 6.3 Layout und Bestückungsplan Die Abbildung 14 zeigt das Layout für dieses Demonstrationsbeispiel. Es ist im Maßstab 1:1 und wie üblich spiegelverkehrt. Der Bestückungsplan ist in Abbildung 15 zu sehen. Der Nachbau sollte auch bei diesem Demonstrationsbeispiel keine Probleme bereiten. Bei der Bestückung beginnt man auch hier üblicherweise mit den niedrigen Bauteilen.
28 6 DEMONSTRATIONSBEISPIEL 2 (TOUCHSCREEN) 27 Abbildung 14: Demonstrationsbeispiel 2 (Touchscreen, Layout) Abbildung 15: Demonstrationsbeispiel 2 (Touchscreen, Bestückungsplan)
29 6 DEMONSTRATIONSBEISPIEL 2 (TOUCHSCREEN) 28 Achtung: Die Drahtbrücken in Form von SMD-Widerständen (0 Ohm) auf der Lötseite nicht vergessen! 6.4 Software Auch bei diesem Demonstrationsbeispiel ist der Quellcode zur besseren Übersicht in mehrere Dateien aufgeteilt: TouchScreen Demo.c beinhaltet das Hauptprogramm, die Interrupt-Service-Routine (ISR) und die Unterprogramme zur Initialisierung des Mikrocontrollers (PIC16F877) und zur Abfrage der virtuellen Tasten am Touchpanel. TOUCHPANEL.C beinhaltet die Unterprogramme zum Lesen der X- und Y-Koordinate des Touchpanel gemäß Abschnitt 4. TOUCHPANEL.H ist die Headerdatei zu TOUCHPANEL.C und beinhaltet die Portdefinitionen, die bei jeder Anwendung überprüft und ggf. angepasst werden müssen. mypic ADC.C beinhaltet das Hilfsunterprogramm zur Analog-Digital-Wandlung. mypic ADC.H ist die Headerdatei zu mypic ADC.C. Achtung: Für dieses zweite Demonstrationsbeispiel ist die kostenpflichtige Vollversion des C-Compilers mikroc notwendig! Datei TouchScreen Demo.c: 1 / / 2 / Touchscreen Demonstrationsbeispiel / 3 / / 4 / / 5 / / 6 / / 7 / / 8 / Taste 1 Taste 2 / 9 / / 10 / / 11 / / 12 / / 13 / / 14 / / 15 / externer Takt (20 MHz) / 16 / / 17 / Compiler : mikroc / 18 / / 19 / Entwickler : Stefan Buchgeher / 20 / Entwicklungsbeginn der Software : 24. Juli 2009 / 21 / Funktionsfaehig s e i t : 24. Juli 2009 / 22 / Letzte Bearbeitung : 16. August 2009 / 23 / / / Incl ude Dateien / 26 #include TOUCHPANEL.H
30 6 DEMONSTRATIONSBEISPIEL 2 (TOUCHSCREEN) / Str uktur en / 30 / keine Strukturen verwendet / / Externe R e g i s t e r / 34 / keine externen Register / / B i t s i n den exter nen R e g i s t e r n / 38 / keine externen Register / / Gl obal e R e g i s t e r / 42 char FlagISRHP ; 43 char ZaehlerZeitbasis100ms ; / Bits in den globalen Registern / 47 / Register FlagISRHP / 48 #define FlagZeitbasis100ms FlagISRHP. F / Por tbel egung / 52 / Si ehe TOUCHPANEL.H / / Konstanten / 56 // Konstanten fuer die Zeitbasen 57 #define KONSTZEITBASIS100MS // Konstanten f u e r d i e Tastenkoor di naten (Demo) 60 // Taste 1 61 #define KONSTTASTE1X #define KONSTTASTE1X #define KONSTTASTE1Y #define KONSTTASTE1Y // Taste 2 66 #define KONSTTASTE2X #define KONSTTASTE2X #define KONSTTASTE2Y #define KONSTTASTE2Y / Tabel l en / 73 / keine Tabellen / / Funkti onspr ototypen / 77 void Init (void) ; 78 void TouchPanelTastenRoutine ( void) ; / ISR Timer0 / / / 84 / Interrupt Service Routine : / 85 / / 86 / Aufruf : / 87 / a l l e 6.5 ms ( ungefaehr ) / 88 / / 89 / Aufgaben : / 90 / + Zeitbasis fuer 100 Millisekunde erzeugen / 91 / + Das Timer Interrupt Flag T0IF wieder loeschen / 92 / / 93 void interrupt (void) // Interruptroutine 94 { 95 ZaehlerZeitbasis100ms ; 96 if ( ZaehlerZeitbasis100ms == 0) // Botschaftsflag fuer 100ms Zeitbasis setzen 97 {
31 6 DEMONSTRATIONSBEISPIEL 2 (TOUCHSCREEN) FlagZeitbasis100ms = 1; 99 ZaehlerZeitbasis100ms = KONSTZEITBASIS100MS ; // Zaehlregister fuer 100 ms 100 // Zeitbasis neu laden 101 } 102 INTCON. T0IF = 0; // Timer Interrupt Flag T0IF wieder loeschen 103 } / Unterprogramme und Funktionen / / / 109 / Init : / 110 / / 111 / Aufgabe : / 112 / I n i t i a l i s i e r u n g des Prozessor : / 113 / + Timer 0 (TMR0) loeschen / 114 / + Timer 0 ISR s o l l ca. a l l e 6,5ms aufgerufen werden, daher den Vorteiler mit / 115 / 1: 128 l aden ( b e i einem 20 MHz Takt) / 116 / VT / 117 / ISR Aufruf [ us ] = = = us = ms / 118 / f [MHz] 20 / 119 / + Port A und C fuer das Touchpanel als Eingang ( fuer ADC) bzw. als Ausgang / 120 / definieren (Anmerkung : Port B und Port D werden fuer das Grafik Display im / 121 / Hauptprogramm d e f i n i e rt! ) / 122 / + ADC konfigurieren / 123 / + Zaehlregister fuer Zeitbasis i n i t i a l i s i e r e n / 124 / + Interrupt freigeben ( Timer0 freigeben durch Setzen von GIE und T0IE im / 125 / INTCON Register ) / 126 / / 127 / Uebergabeparameter : / 128 / keiner / 129 / / 130 / Rueckgabeparameter : / 131 / keiner / 132 / / 133 void INIT(void) 134 { 135 // Timer 0 Interrupt konfigurieren 136 TMR0 = 0; // Timer 0 auf 0 voreinstellen 137 OPTION REG = 0b ; // Option Register (Bank 1) 138 / + Bi t 7 (nrbpu) : Pull Up Widerstaende am Port B : Pull Up aktiviert 140 > 1 : Pull Up deaktiviert Bit 6 (INTEDG) : Interrupt Edge Select Bit 142 > 0 : Interrupt on f a l l i n g edge of RB0/INT pin : Interrupt on r i s in g edge of RB0/INT pin Bit 5 (T0CS) : Timer 0 Clock source Select Bit 145 > 0 : Transition on RA4/T0CKI pin : Internal instruction cycle clock (CLKOUT) Bi t 4 (T0SE) : TMR0 Source Edge S e l e c t b i t 148 > 0 : Increment on low to high tranition : Increment on high to low tranition Bit 3 (PSA) : Prescaler Assignment bit 151 > 0 : Prescaler i s assigned to the TIMER0 module : Prescaler i s assigned to the WDT Bit 2 0 (PS2 : PS0) : Prescaler Rate Select bits 154 Bi t Value TMR0 Rate WDT Rate : 1:2 1: : 1:4 1: : 1:8 1: : 1:16 1: : 1:32 1: : 1:64 1: > 110 : 1:128 1: : 1: 256 1: / // Ports konfigurieren 166 TRISA = 0b ; // Richtungsregister Port A (0: Ausgang, 1: Eingang) 167 / ++ Bi t 7 6 Reserve Bi t 5 Port RA5: h i e r unbenutzt
Baubericht für den AX81-GKR Einleitung
Baubericht für den AX81-GKR Einleitung Der AX81-GKR ist eine Modifikation des AX81 auf Basis des AVRChipbasic2 von Jörg Wolfram. Siehe auch www.jcwolfram.de/projekte/avr/ax81/main.php und www.jcwolfram.de/projekte/avr/chipbasic2/main.php
Anleitung TempCW 2011
TempCW - Wirberg 0 30.09.0 Anleitung TempCW 0 vorläufig Inhaltsverzeichnis Aufbauanleitung... Platine... Programmierstecker... Bestückung...3 Inbetriebnahme... 5 Spannungsversorgung... 5 LEDs... 5 NF Teil...
Serielladapter SerCon V1.1
Serielladapter SerCon V1.1 Programmierinterface & V24 auf TTL Wandler Copyright 2007 Holger Buß www.mikrokopter.com Dokument-Version V0.3 SerCon www.mikrocontroller.com SerCon V1.1 Der SerCon V1.1 ist
CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich
Seite 1 von 10 CU-R-CONTROL Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32 Autor: Christian Ulrich Datum: 08.12.2007 Version: 1.00 Seite 2 von 10 Inhalt Historie
Qt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk.
Ablaufsteuerung Sequenzer, als Schaltstufen für den Amateurfunk. DF1JM Juli 2011 Eine Sequenz ist eine Reihenfolge. Auf den Amateurfunk bezogen sind Sequenzer Schaltstufen, die in einer festgelegten Zeit-
easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice
easyident Türöffner Art. Nr. FS-0007 Wir freuen uns, das sie sich für unser Produkt easyident Türöffner, mit Transponder Technologie entschieden haben. Easyident Türöffner ist für Unterputzmontage in 55mm
PicKit 3. Programmierung mit dem USB-Programmer PICkit3 (Microchip) AB-2010-04
PicKit 3 Programmierung mit dem USB-Programmer PICkit3 (Microchip) AB-2010-04 In diesem Dokument wird ein Umbau beschrieben. Für die Funktion des Umbaus gibt es keine Garantie. Für durch diesen Umbau entstandene
Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1
Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
3.14 Die Programmieroberfläche Programmierung
121 3.14 Die Programmieroberfläche Programmierung Besonderheiten Die Oberflächen der einzelnen Quellen (3S, KW-Software, Siemens-TIA-Portal, logi.cad 3, PAS4000) sind in sich unterschiedlich. Aber auch
The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung
The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen
Elektronische Kerze Flackerlicht mit PIC-Mikrocontroller
Elektronische Kerze Flackerlicht mit PIC-Mikrocontroller Stefan Buchgeher 7. Juli 2009 www.stefan-buchgeher.info kontakt@stefan-buchgeher.info Großambergstraße 106/3, A-4040 Linz (Österreich) ++43/699/11
Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX
Allgemeines Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX Stand 21.11.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3010, tiptel 3020 und tiptel 3030
Simulation LIF5000. Abbildung 1
Simulation LIF5000 Abbildung 1 Zur Simulation von analogen Schaltungen verwende ich Ltspice/SwitcherCAD III. Dieses Programm ist sehr leistungsfähig und wenn man weis wie, dann kann man damit fast alles
S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine
PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so
Dokumentation IBIS Monitor
Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt
S7-Hantierungsbausteine für R355, R6000 und R2700
S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über
Quanton Manual (de) Datum: 20.06.2013 URL: http://wiki:8090/pages/viewpage.action?pageid=9928792 )
Datum: 20.06.2013 URL: http://wiki:8090/pages/viewpage.action?pageid=9928792 ) Inhaltsverzeichnis 1 quanton flight control rev. 1 3 1.1 Anschlüsse für Peripheriegeräte 3 1.1.1 Eingänge / Ausgänge 3 1.1.2
Artikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert
! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006
!"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst
Versuch 3: Sequenzielle Logik
Versuch 3: Sequenzielle Logik Versuchsvorbereitung 1. (2 Punkte) Unterschied zwischen Flipflop und Latch: Ein Latch ist transparent für einen bestimmten Zustand des Taktsignals: Jeder Datensignalwechsel
SharePoint Demonstration
SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit
Anleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
Benutzung der LS-Miniscanner
Benutzung der LS-Miniscanner Seit Januar 2010 ist es möglich für bestimmte Vorgänge (Umlagerungen, Retouren, Inventur) die von LS lieferbaren Miniscanner im Format Autoschlüsselgröße zu benutzen. Diese
Aufbau und Bestückung der UHU-Servocontrollerplatine
Aufbau und Bestückung der UHU-Servocontrollerplatine Hier im ersten Bild ist die unbestückte Platine zu sehen, die Bestückung der Bauteile sollte in der Reihenfolge der Höhe der Bauteile geschehen, also
Interrupt-Programmierung
Interrupt-Programmierung Am Beispiel des ATMEGA16 Microcontrollers Beispiel: Messung der Betriebszeit Die Betriebszeit zeigt an, wie lange der Rechner seit dem Booten läuft Hier: Aktualisierung der Betriebszeit
1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.
1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während
How to do? Projekte - Zeiterfassung
How to do? Projekte - Zeiterfassung Stand: Version 4.0.1, 18.03.2009 1. EINLEITUNG...3 2. PROJEKTE UND STAMMDATEN...4 2.1 Projekte... 4 2.2 Projektmitarbeiter... 5 2.3 Tätigkeiten... 6 2.4 Unterprojekte...
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
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!
Local Control Network Technische Dokumentation
Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige
RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen
Elektronik Praktikum / Digitaler Teil Name: Jens Wiechula, Philipp Fischer Leitung: Prof. Dr. U. Lynen Protokoll: Philipp Fischer Versuch: 3 Datum: 24.06.01 RS-Flip Flop, D-Flip Flop, J-K-Flip Flop, Zählschaltungen
Aufbauanleitung Wortwecker 135x135mm 2
Aufbauanleitung Wortwecker 135x135mm 2 Rückseite der Platine Vorderseite der Platine LED Matrix Begonnen wird mit dem Einlöten der 5mm Kurzkopf- LEDs auf der Vorderseite der Platine. Die abgeflachte Seite
Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
Mikrocontroller - Schnelleinstieg
Mikrocontroller - Schnelleinstieg Am Beispiel des Atmel Mega8 Philipp Fabian Benedikt Maier Mikrocontroller Schnelleinstieg Seite 1 Mikrocontroller - Schnelleinstieg: - Was ist ein Mikrokontroller? - Welche
MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013
Einbindung des MC-Hx Modul als MODBus TCP Slave MB DataTec GmbH Stand: 01.2013 Kontakt: MB DataTec GmbH Friedrich Ebert Str. 217a 58666 Kierspe Tel.: 02359 2973-22, Fax 23 Web : www.mb-datatec.de e-mail:
Local Control Network
Netzspannungsüberwachung (Stromausfallerkennung) Die Aufgabe Nach einem Stromausfall soll der Status von Aktoren oder Funktionen wieder so hergestellt werden, wie er vor dem Stromausfall war. Die Netzspannungsüberwachung
XY-Plotter. Hardware. Software µp. Software PC. von Thomas Wagner
XY-Plotter von Thomas Wagner Im folgendem wird ein XY-Plotter beschrieben, der universell einsetzbar ist, jedoch für einen speziellen Einsatzzweck entworfen wurde: die Übertragung, Anzeige und Speicherung
1. Kennlinien. 2. Stabilisierung der Emitterschaltung. Schaltungstechnik 2 Übung 4
1. Kennlinien Der Transistor BC550C soll auf den Arbeitspunkt U CE = 4 V und I C = 15 ma eingestellt werden. a) Bestimmen Sie aus den Kennlinien (S. 2) die Werte für I B, B, U BE. b) Woher kommt die Neigung
Telefonschnittstelle Art.Nr. 1211/131G
Telefonschnittstelle Art.Nr. 1211/131G Achtung! Vor der ersten Verwendung sollte die Besetztonauswertung angepasst werden Mit dieser Schnittstelle kann die PROMAS, ein Extension-Modul 1211/EXT, oder ein
Sensor board EB003-00-2
Sensor board EB003-00-2 Inhalt 1. Über dieses Dokument...2 2. Allgemeine Information...3 3. Board-Layout...4 4. Schaltungsbeschreibung...5 Anhang 1 Schaltplan Copyright Matrix Multimedia Limited 2005 seite
HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie
HorstBox (DVA-G3342SD) Anleitung zur Einrichtung der Telefonie Beim Hauptanschluss haben Sie die Wahl zwischen einem ISDN und einem Analoganschluss. Wählen Sie hier den Typ entsprechend Ihrem Telefonanschluss.
Tutorial - www.root13.de
Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk
Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014
Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...
Lavid-F.I.S. Ablaufbeschreibung für. Arbeitszeiterfassung. Lavid-F.I.S.
Lavid-F.I.S. Ablaufbeschreibung für Dauner Str. 12, D-41236 Mönchengladbach, Tel. 02166-97022-0, Fax -15, Email: info@lavid-software.net 1. Inhalt 1. Inhalt... 2 2. Verwendbar für... 3 3. Aufgabe... 3
Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.
ewon - Technical Note Nr. 001 Version 1.3 Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten. 19.10.2006/SI Übersicht: 1. Thema 2. Benötigte Komponenten
AVR Net-IO. Der originale von Pollin vertriebene Bausatz hat folgende Eckdaten:
AVR Net-IO 2013 DL2USR Bitte alles sorgfältig lesen. Weitere Hinweise enthält die Readme.txt im Softwareordner. Keine Garantie für Vollständigkeit und Fehlerfreiheit, kein Support in irgendeiner Art! Ein
einfache PIC-Übungsprogramme
einfache PIC-Übungsprogramme Schreibe in MPLAB für das PIC-Übungsboard 01 mit dem PIC16F88 folgendes Programm, assembliere und dokumentiere dieses, schreibe es anschließend mittels dem Programmiergerät
Bedienungsanleitung LCQ-Meter (DG5MK) Stand 24.10.2014
Bedienungsanleitung LCQ-Meter (DG5MK) Stand 24.10.2014 Das Bild zeigt die Bedienungs- und Anschlußelemente des LCQ-Meters: Adjust LCD Contrast UB1 7 30 V Potentiometer zum Einstellen des Display-Kontrastes
Bedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de
GEVITAS-Sync Bedienungsanleitung Stand: 26.05.2011 Copyright 2011 by GEVITAS GmbH www.gevitas.de Inhalt 1. Einleitung... 3 1.1. Installation... 3 1.2. Zugriffsrechte... 3 1.3. Starten... 4 1.4. Die Menü-Leiste...
Kleines Handbuch zur Fotogalerie der Pixel AG
1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link
Arbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
Bilder zum Upload verkleinern
Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr
Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014
Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014 Aufgabe: Entwurf und Implementierung eines Weckers auf Basis des MSP430 Education Systems Beschreibung: Gegenstand des Praktikums ist der
Einführungskurs MOODLE Themen:
Einführungskurs MOODLE Themen: Grundlegende Einstellungen Teilnehmer in einen Kurs einschreiben Konfiguration der Arbeitsunterlagen Konfiguration der Lernaktivitäten Die Einstellungen für einen Kurs erreichst
8.1 Grundsätzlicher Aufbau der Beispiele
107 8 Beispiele Nachdem nun viele theoretische Grundlagen gelegt wurden, kann man mit dem Programmieren eines Mikrocontrollers beginnen. In den folgenden Kapiteln werden verschiedene Möglichkeiten der
Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,
Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit, Wie kann ein PDF File angezeigt werden? kann mit Acrobat-Viewern angezeigt werden auf jeder Plattform!! (Unix,
DOKUMENTATION VOGELZUCHT 2015 PLUS
DOKUMENTATION VOGELZUCHT 2015 PLUS Vogelzucht2015 App für Geräte mit Android Betriebssystemen Läuft nur in Zusammenhang mit einer Vollversion vogelzucht2015 auf einem PC. Zusammenfassung: a. Mit der APP
Virtual Channel installieren
Virtual Channel installieren Inhaltsverzeichnis 1. Voreinstellungen... 3 2. Virtual Channel herunterladen... 3 3. Virtual Channel konfigurieren... 4 4. Ausdruck... 6 5. Tipps und Tricks... 7 Sorba EDV
Kurzanleitung. Hotel Modus. Version 1.0.1 / MB82 / MB82S<, Stand 29.04.2013. Vestel Germany GmbH Parkring 6 85748 Garching bei München
Kurzanleitung Hotel Modus Version 1.0.1 / MB82 / MB82S
Mediumwechsel - VR-NetWorld Software
Mediumwechsel - VR-NetWorld Software Die personalisierte VR-NetWorld-Card wird mit einem festen Laufzeitende ausgeliefert. Am Ende der Laufzeit müssen Sie die bestehende VR-NetWorld-Card gegen eine neue
upsdrpc_c5_aufbau 05.03.2006 Anleitung zum Aufbau von upsdrpc für den Einsatz als Funkrufpapagei in einem Funkgerät C5.
upsdrpc_c5_aufbau 05.03.2006 Anleitung zum Aufbau von upsdrpc für den Einsatz als Funkrufpapagei in einem Funkgerät C5. Abgeleitet von der allgemeinen Baubeschreibung zu upsdrpc. Bitte beachten Sie, dass
Regiometer. Bedienungsanleitung
Regiometer Bedienungsanleitung INHALT 1. Hardware Anforderungen 3 2. Installation 4 3. Der erste Start ( Regiometer freischalten ) 6 4. Regiometer Bedienelemente 8 5. Regiometer Profile 9 6. Regiometer
Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.
Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen
icloud nicht neu, aber doch irgendwie anders
Kapitel 6 In diesem Kapitel zeigen wir Ihnen, welche Dienste die icloud beim Abgleich von Dateien und Informationen anbietet. Sie lernen icloud Drive kennen, den Fotostream, den icloud-schlüsselbund und
Einführung in die Welt der Microcontroller
Übersicht Microcontroller Schaltungen Sonstiges Einführung in die Welt der Microcontroller Übersicht Microcontroller Schaltungen Sonstiges Inhaltsverzeichnis 1 Übersicht Möglichkeiten Einsatz 2 Microcontroller
In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.
Tutorial: Wie erfasse ich einen Termin? In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können. Neben den allgemeinen Angaben zu einem
Der Aufbau der Uhr ist sehr einfach, weil nur sehr wenige Bauteile eingelötet werden müssen.
Der Aufbau der Uhr ist sehr einfach, weil nur sehr wenige Bauteile eingelötet werden müssen. Sie benötigen folgende Bauteile um die IN-18 Blue Dream Nixie Clock aufzubauen: Menge Teil Beschreibung 1 BRD1
Einführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
Erstellen von x-y-diagrammen in OpenOffice.calc
Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei
Das Inline Konzept im IBK Tonstudio
Das Inline Konzept im IBK Tonstudio Dieses Dokument beschreibt, wie im IBK Tonstudio der TU Graz ein Inline System eingerichtet und konfiguriert wird. Inline heißt, dass für jeden Kanalzug der Konsole
Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH
Dokumentenverwaltung Copyright 2012 cobra computer s brainware GmbH cobra Adress PLUS ist eingetragenes Warenzeichen der cobra computer s brainware GmbH. Andere Begriffe können Warenzeichen oder anderweitig
Stepperfocuser 2.0 mit Bootloader
Stepperfocuser 2.0 mit Bootloader Info Für den Stepperfocuser 2.0 gibt es einen Bootloader. Dieser ermöglicht es, die Firmware zu aktualisieren ohne dass man ein spezielles Programmiergerät benötigt. Die
Highspeedaufnahmen mit dem Arduino Uno Board
Highspeedaufnahmen Die Idee Ich hatte schon länger vor mal ein platzendes Ei in dem Moment zu fotografieren indem es aufschlägt. Alle Versuche das von Hand hinzubekommen schlugen fehl. Angeregt durch den
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER
Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER Abamsoft Finos in Verbindung mit der Webshopanbindung wurde speziell auf die Shop-Software shop to date von DATA BECKER abgestimmt. Mit
Programmierung Weichenmodul S/D Tafel 1
Programmierung Weichenmodul S/D Tafel 1 Voraussetzungen: Fahrspannung ist abgeschalten (rote Taste an MC 2004 oder Einfrieren im Traincontroller) Programmiertaste am Modul ist gedrückt (rote LED leuchtet),
ARCO Software - Anleitung zur Umstellung der MWSt
ARCO Software - Anleitung zur Umstellung der MWSt Wieder einmal beschert uns die Bundesverwaltung auf Ende Jahr mit zusätzlicher Arbeit, statt mit den immer wieder versprochenen Erleichterungen für KMU.
GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY
GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY Vorteile der Verwendung eines ACTIVE-DIRECTORY Automatische GEORG Anmeldung über bereits erfolgte Anmeldung am Betriebssystem o Sie können sich jederzeit als
LPT1 Anschluss mit PCMCIA Karte
1. Allgemeines LPT1 Anschluss mit PCMCIA Karte verwendete Hardware: Lenze PC Systembusadapter EMF 2173-V003 PCMCIA Karte Firma QUATECH Typ SPP-100 Auf die Installation der PCMCIA Karte wird hier nicht
Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.
Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1. Vorweg: Die neue MTK Firmware 1.9 (AXN1.51_2776_3329_384.1151100.5_v19.bin) ist
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Einleitung Es kommt vor, dass im Handel Disketten angeboten werden, die Styles und Registrationen
Zähler- und Zeitgeber-Baugruppen
Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,
Barcodedatei importieren
Barcodedatei importieren Inhaltsverzeichnis 1 Schnittstelle Barcodedatei importieren... 2 1.1 Funktion... 2 1.2 Konfiguration... 2 1.2.1 Lizenz... 2 1.2.2 Einstellungen... 2 1.2.3 Vorarbeiten... 3 1.2.3.1
E-Mail Postfach in cpanel erstellen
Anleitung Datum: 20. Mai 2011 Version: 1.0 E-Mail Postfach in cpanel erstellen E-Mail Konto / cpanel Glarotech GmbH Inhaltsverzeichnis E-Mail Konto erfassen...3 1. Anmeldung im Control-Panel...3 2. Postfächer
GeoPilot (Android) die App
GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen
Bedienungsanleitung Version 1.0
Botex DMX Operator (DC-1216) Bedienungsanleitung Version 1.0 - Inhalt - 1 KENNZEICHEN UND MERKMALE...4 2 TECHNISCHE ANGABEN...4 3 BEDIENUNG...4 3.1 ALLGEMEINES:...4 3.2 BEDIENUNG UND FUNKTIONEN...5 4 SZENEN
FORUM HANDREICHUNG (STAND: AUGUST 2013)
FORUM HANDREICHUNG (STAND: AUGUST 2013) Seite 2, Forum Inhalt Ein Forum anlegen... 3 Forumstypen... 4 Beiträge im Forum schreiben... 5 Beiträge im Forum beantworten... 6 Besondere Rechte der Leitung...
Digitalelektronik 4 Vom Transistor zum Bit. Stefan Rothe
Digitalelektronik 4 Vom Transistor zum Bit Stefan Rothe 2015 04 21 Rechtliche Hinweise Dieses Werk von Thomas Jampen und Stefan Rothe steht unter einer Creative Commons Attribution-Non- Commercial-ShareAlike-Lizenz.
Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.
040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl
AVR Experimentierboard
Vorwort Damit ich eine flexible und anpassungsfähige Experimentier- und Entwicklungs-Umgebung bekomme, habe ich nach einer kostengünstige Lösung gesucht. Hierbei bin ich auf das Atmel-Evalutionboard von
Objektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
Mikrocontroller Grundlagen. Markus Koch April 2011
Mikrocontroller Grundlagen Markus Koch April 2011 Übersicht Was ist ein Mikrocontroller Aufbau (CPU/RAM/ROM/Takt/Peripherie) Unterschied zum Mikroprozessor Unterschiede der Controllerarten Unterschiede
Wie wird ein Jahreswechsel (vorläufig und endgültig) ausgeführt?
Wie wird ein (vorläufig und endgültig) ausgeführt? VORLÄUFIGER JAHRESWECHSEL Führen Sie unbedingt vor dem eine aktuelle Datensicherung durch. Einleitung Ein vorläufiger Jahresabschluss wird durchgeführt,
INSTALLATIONSANLEITUNG
INSTALLATIONSANLEITUNG MASTER UPDATE 2.1.0.4 2014 Gambio GmbH. www.gambio.de Inhaltsverzeichnis 1 Changelog 3 2 Datensicherung 3 3 Installation Master Update 4 3.1 Update von Shopsystemen v2.0.7c bis v2.0.15.4
MSI TECHNOLOGY. RaidXpert AMD. Anleitung zur Installation und Konfiguration MSI
MSI TECHNOLOGY GMBH RaidXpert AMD Anleitung zur Installation und Konfiguration MSI RaidXpert AMD Inhalt 1.0 Voreinstellungen für ein Raid System im BIOS... 3 2.0 Einstellungen für ein Raid System im Utility...
Professionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE
DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE UND ZEILENABSTAND Word 2010 und 2007 Jedes neue leere Dokument, das mit Word 2010 erstellt wird, basiert auf einer Dokumentvorlage mit dem Namen Normal.dotx.