1 / 21

Ampelsteuerung

Ampelsteuerung. EL4 Projekt WS 2004 Microcontroller 2. Inhalt. Aufgabenstellung Hardware Software. Aufgabenstellung. Ampelsteuerung in C auf Z8 Platine. Programmierung einer Ampelsteuerung und Bau einer Hardware für eine Straßenkreuzung mit Fußgänger-Überwegen.  

rahim-hunt
Télécharger la présentation

Ampelsteuerung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ampelsteuerung EL4 Projekt WS 2004 Microcontroller 2

  2. Inhalt • Aufgabenstellung • Hardware • Software

  3. Aufgabenstellung • Ampelsteuerung in C auf Z8 Platine. • Programmierung einer Ampelsteuerung und Bau einer Hardware für eine Straßenkreuzung mit Fußgänger-Überwegen.   • Realisierung von drei Betriebsarten: Ampelbetrieb, Blinkbetrieb und Aus. • Programmentwicklung mit Entwicklungskitt der Firma Zilog, einem JATG fähigen Z8-Encore Prozessor Z8F6423

  4. Zilog Z8 Encore! Flash Microcontrollers Development Tools

  5. Die Kreuzung • Zeichnung

  6. Ablaufschema der Ampelsteuerung

  7. Hardware für LED Steuerung

  8. Z8 Encore! Z8F0822 Evaluation Board JP2 Leiste

  9. Portverteilung

  10. Portcodes

  11. Beispiel für die Ampelphase 1: Um die Hauptstrasse auf Rot zu schalten, wird PCOUT auf den Binärcode von PC4 gesetzt. Um die Nebenstrasse und Linksabbieger auf Rot zu setzen, müssen PA4 und PA0 logisch mit ODER verknüpft werden. 0001 0000 ODER 0000 0001 0001 0001 Dies entspricht Dezimal 17

  12. Ampelphasen

  13. Software • Projektdateien • Pseudocode • Entwicklungsumgebung

  14. Liste der Programmdateien Erstellung des Projekts: Ampel.pro

  15. Programm Main.c im Pseudo-Code 1 Deklarierung der globalen Variablen BUSY = 1 RUN = 0 Deklarierung der Variablen ProgStat und Initialisierung mit BUSY Hauptprogramm beginnt Deklarierung einer Variablen phase und Initialisierung mit 1 Initialisierungsprogramm Port A Initialisierungsprogramm Port C Wiederhole immer Fall phase Setzen der Ports Timer starten und Zeit übergeben phase plus 1 setzen Wenn phase == 15 Dann phase wieder auf 1 setzen

  16. Programm Main.c im Pseudo-Code 2 Deklaration des start_timer Unterprogramms, das eine Zählvariable counter übergeben bekommt. Für i=0 bis counter, wiederhole Interrupt deaktivieren Timer0 Initialisierung aufrufen Interrupt aktivieren Wiederhole immer, solange bis Timer Interrupt ausgelöst hat (Status = RUN) ProgStat wieder auf BUSY setzen

  17. Programm Gpio.c im Pseudo-Code Initialisierung von Port A Port A Address Register auf Data-Direction-Mode setzen Port A Control Register auf Output setzen Port A mit 0x00 initialisieren Initialisierung von Port C Port C Address Register auf Data-Direction-Mode setzen Port C Control Register auf Output setzen Port C mit 0x00 initialisieren Port A & C LED´s löschen Port A & C mit 0x00 überschreiben Port A & C LED´s anschalten Port A & C mit 0xFF überschreiben

  18. Programm Timer.c im Pseudo-Code Initialisierungsprogramm Timer 0 Timer Anfangswert auf 0x00 setzen Timer Reloadwert auf 0xFFFF setzen Timer auf Einzeldurchlauf-Modus setzen Timer Vorzähler auf 128 setzen (Reload Value - Start Value) * Prescale)/System Clock Frequency (Hz) = ( 0xFFFF * 128 )/ 18.432MHz = 0.46sec

  19. Timer in C-Code #include <eZ8f0422.h> #include "main.h" //Interrupt routine #pragma interrupt void isr_timer0(void) { setStatus(RUN); } //Intialize Timer-0 void init_timer0(void) { SET_VECTOR(TIMER0, isr_timer0); T0H = 0x00; // Timer High T0L = 0x00; // Timer Low T0RH = 0xFF; // Reload High T0RL = 0xFF; // Reload Low T0CTL = 0xF8; // Prescale is set to 128/One Shot Timer Mode 1111 1000 }

  20. Wir danken für eure Aufmerksamkeit und wünschen euch noch viel Erfolg im Studium

More Related