Ich habe die Programme mit Absicht recht einfach, übersichtlich und kurz gehalten, um einem Anfänger das Einarbeiten in die Materie zu erleichtern. Sie sind in sinnvoller Reihenfolge aufgelistet, zum Schluss erfolgt jeweils die Zusammenfassung in einer so genannten Funktionsbibliothek, welche später bequem per include-Anweisung verwendet werden kann.
Prinzipiell finde ich, dass es besser ist, sich etappenweise die einzelnen Funktionen selbst zu erarbeiten, da man nur so ein Verständnis für die Funktionsweise des Controllers entwickeln kann.
Zwar funktioniert auch das Verwenden fertiger Funktionsbibliotheken oft gut, nur spätestens bei der Fehlersuche ist man gezwungen, sich doch tief greifend mit den einzelnen Funktionen auseinander zu setzen.
Ich habe in den meisten Programmen zunächst auf die Verwendung von Interrupts verzichtet.

Programme:

Grundlagen:        simple_delayroutinen.c
LED- und Tasterspielereien:        blinker.c
                                                     lauflicht.c
                                                     led_taster.c
Prellroutine:    prellroutine.c

USART:

Initialisieren des USART zum Senden ATmega -> PC:        usart_init_txd.c
Initialisieren des USART zum Empfangen PC -> ATmega:        usart_init_rxd.c
USART-Bibliothek:        usart_bibliothek.h
Beispiel zur Verwendung der Bibliothek:        usart_bsp.c
Beispiel zur Verwendung von Interrupts des USART:        usart_bsp_interrupts.c
Beispiel für Realisierung einer User-PC-MC Interface mit Hilfe des USART: usart_interface.c

ADC:

Initialisieren des ADC an PC5:        adc.c
ADC-Bibliothek:        adc_bibliothek.h
Beispiel zur Verwendung der Bibliothek:       
adc_bsp.c
Beispiel der Anwendung von USART, ADC und Interrupts:       
adc_bsp_interrupt.c

PWM:

Initialisierung der PWM und Ausgabe an ATmega Ports:        pwm_init.c
Beispiel für Anwendung der PWM:        pwm_bsp.c

Timer:

Im Sekundentakt blinkende LED realisiert mit Timer/Counter0:        timer_bsp_interrupts.c

Interrupts:

Initialisierung von INT1, INT0 und Beispiel:        externe_interrupts.c

LCD:

Download auf der Homepage von Peter Pfleury (siehe Links), dort wird eine gut gewartete universelle Bibliothek samt Beispielen zur Verfügung gestellt. Man muss ja nicht ständig das Rad neu erfinden.

SPI:

Initialisierung und Verwendung des SPI:        spi_bibliothek.h
Beispiel für die Anwendung des SPI:    SPI_ATMega8.zip

Makefile für Programmierung mit avrdude:        makefile

Makefile für Programmierung mit Pony-Prog:        makefile

Aktuelle Makefiles liegen immer dem WinAVR-Package bei. Wer tiefer in die Materie einsteigen möchte, dem kann ich die Verwendung des Programms mfile empfehlen. Dieses liegt auch WinAVR bei. Bei meinen Projekten habe ich auch immer ein makefile beigelegt, so dass diese direkt kompiliert werden können.

 

Ab hier beginnt die Programmsammlung zu allen AVR-Projekten, die mich beschäftigt haben. Inwieweit der Code hilfreich und übersichtlich ist, kann ich schlecht beurteilen, ich habe ihn hier nur der Vollständigkeit halber veröffentlicht.

PI-Regler:

Implementierung und Anwendung eines PI-Reglers:        pi_regler.c

IR-Remote-Control:

Programm für einfache Fernsteuerungsaufgaben:        ir.c

Ultraschall:

Ultraschall Entfernungsmessung Variante 1:        ultrasonic_usart.c
Ultraschall Entfernungsmessung Variante 2:        ultrasonic2.c

Funkuhr:

Programm zur vorgestellten Funkuhr:        funkuhr.zip
Programm zur zweiten vorgestellten Funkuhr:        funkuhr2.zip

Temperatursensoren:

Programm zum Temperatursensor DS18S20 von MAXIM:        ds18s20.zip
Projekt zum Temperatursensor DS1620 von MAXIM:        ds1620.zip
Programm zum Temperatursensor AD592AN:        ad592an.zip
Einige Routinen für den SHT71/75:        sht75.zip

Beispiel für den LM75 Temperatursensor:        Temperatursensor_LM75_Software.zip

EEPROM AT24Cxxx:

Beispielprojekt incl. Bibliothek für o.g. EEPROM-Familie:        EEPROM Beispielprojekt.zip

Wireless:

Programm zum Easy-Radio Transceiver:        EasyRadio.zip

PCF8591 mit 8 Bit:

Programm zum AD/DA-Wandler:        pcf8591.zip

DA-Wandler DA7394 mit 12 Bit:

Programm zum DA-Wandler:        DA7394 Beispiel.zip

AD-Wandler MCP3202 mit 12 Bit:

AD-Wandler MCP3202:        MCP3202-Beispiel.zip

Digitaler Poti mit 8 Bit Auflösung:

Beispielprogramm für MCP41xxx und MCP42xxx:        MCP41xxx & MCP42xxx.zip

8 Bit Portexpander PCF8574:

Beispielprogramm für den PCF8574:             Portexpander Beispiel.zip

Real-Time-Clock DS1302:

Beispielprogramm für den RTC-Schaltkreis:        RTC DS1302 Software.zip
Komplett-Paket zur RTC:        RTC DS1302 complete.zip

 

Zurück zur Startseite.