Events

:

:

Elektronik | Funk | Software

Der Technik-Blog

  • Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden

    Der Technik-Blog

    Amtel Studio ATMega328 LED Blink Example in C++

    ATMega328 LED Blink Beispiel

    Alex @ AEQ-WEB

    Zu diesem Artikel gibt es auch ein Video auf Youtube: Standanlone AVR ATMega328 Blink Beispiel in C mit Amtel Studio

    In diesem Artikel zeigen wir, wie ein ATMega328 in Amtel Studio programmiert wird und wie die Software auf den Mikrocontroller mittels Programmer (AVRISP) geladen wird. Als einfaches Beispiel lassen wir eine LED auf dem PIN 15 (PORTB1) blinken. Dazu ist eine LED sowie ein Vorwiderstand von 220 Ohm notwendig. Informationen zum Grundaufbau der Schaltung gibt es im vorherigen Beitrag, wo wir den Bootloader brennen.

    Werbung:

    ATMega328 Schaltplan

    Auch in diesem Beispiel wird der ATMega328 auf einem Steckbrett betrieben. Neben der 5V Stromversorgung ist auch hier der Programmer über ISP angeschlossen. Zusätzlich verwenden wir auch hier einen externen Taktgeber mit 16 Mhz. Auf den Pin 15 (PORTB1) wird dann die Anode der LED angeschlossen und die Kathode über den 220 Ohm Widerstand in Serie mit der Masse verbunden. Wenn der Mikrocontroller das erste Mal programmiert wird, muss sichergestellt werden, dass der Bootloader bereits gebrannt ist.

    Amtel Studio Projekt erstellen

    Wenn die Hardware fertig angeschlossen ist, so kann mit der Entwicklung der Software gestartet werden. In Amtel Studio wird ein neues Projekt erstellt. Dabei wird als Projekttyp "GCC C Executable Project" ausgewählt und anschließend ein Projektname definiert. Nach dem Klick auf "OK" öffnet sich noch das Fenster, wo der richtige Mikrocontroller (ATMega328P oder ATMega328) ausgewählt werden muss. Danach wird die Projektmappe mit den notwendigen Projektdateien erzeugt. In der C-Datei (main.c) befindet sich bereits ein Teil vom Code, der jetzt noch so erweitert wird, dass die LED blinkt. Der gesamte Code sieht wie folgt aus:

    #define F_CPU 16000000UL
    #include <avr/io.h>
    #include <util/delay.h>
    
    int main(void)
    {
    	DDRB |= (1<<DDB1);
        while (1) 
        {
    	PORTB |= (1<<PORTB1);
    	_delay_ms(1000);
    	PORTB &= ~ (1<<PORTB1);
    	_delay_ms(1000);
        }
    }

    Wie der Code funktioniert

    Als Erstes wird die Taktfrequenz definiert (#define F_CPU 16000000UL). Diese entspricht der Frequenz vom Oszillator welche in diesem Aufbau 16MHz (16000000Hz) beträgt. In den weiteren zwei Zeilen werden zwei Bibliotheken in das Projekt integriert. Im Hautprogramm wird als Erstes der Pin 15 (PORTB1) als digitaler Ausgang definiert. Danach wird der restliche Code in der While-Schleife dauerhaft ausgeführt. Dabei wird der PORTB1 eingeschaltet, dann wird eine Sekunde gewartet, bis der PORTB1 wieder ausgeschaltet wird. Bevor PORTB1 wieder eingeschaltet wird, wird erneut eine Sekunde gewartet.

    Werbung:

    Upload und Test

    Wenn der Code vollständig ist, kann unter dem Punkt "DEBUG" das Projekt starten. Beim ersten Start wird noch nach den Programmer gefragt. Dabei muss der angeschlossene Programmer ausgewählt werden und der Upload fortgesetzt werden. Während diesem Vorgang blinkt der Programmer kurz auf und danach sollte die LED bereits blinken. In Amtel Studio steht dann in der Ausgabe das der Build erfolgreich war.


    122X122

    Über den Autor

    Alex, der Gründer von AEQ-WEB. Seit über 10 Jahren beschäftigt er sich mit Computern und elektronischen Bauteilen aller Art. Neben den Hardware-Projekten entwickelt er auch Webseiten, Apps und Software für Computer.

    Top Artikel in dieser Kategorie:

    ATMega328 4Bit LCD Display Control

    ATMega328 16x2 4-Bit LCD Display

    • DE/EN

    In diesem Artikel zeigen wir, wie mit dem ATMega328 ein 16x2 Zeichen LCD Display mit 4-Bit angesteuert wird. Programmiert wird alles in C mit dem Amtel Studio

    Weiterlesen
    ATMega328 Bootloader Flash - AVRISP mk2 Programmer

    ATMega328 AVRISP Bootloader

    • DE/EN

    In diesem Beitrag zeigen wir, wie ein ATMega328 mit dem AVRISP Programmer geflashed wird und welche Bauteile für den eigenständigen Betrieb benötigt werden.

    Weiterlesen

    Social Media

    Werbung:


    Neue Artikel


    Events

    • Keine zukünftigen Events vorhanden