kramann.info
© Guido Kramann

Login: Passwort:










Mikrocontroller
1 Einfuehrung
..1.1 Entwicklungsgeschichtliches
..1.2 Maschinensprache
..1.3 Assemblerbeispiel
..1.4 Sprachwahl
..1.5 Praxis
....1.5.1 Digital_IO
....1.5.2 Byteoperationen
....1.5.3 AVR_Studio
....1.5.4 Testboard
....1.5.5 Aufgaben
....1.5.6 Do_it_yourself
......1.5.6.1 Ampel
......1.5.6.2 Programmierer
..1.6 Literatur
..1.7 Programmierer
....1.7.1 Bauverlauf
....1.7.2 KurzreferenzLow
....1.7.2 Kurzreferenz_16PU
..1.8 Uebung1
..1.9 BoardAtHome
....1.9.1 Software
....1.9.2 Hardware
....1.9.3 Knoppix
....1.9.4 Aufbau
....1.9.5 LED
2 Oszillator
..2.1 Assembler
..2.2 Interner_RC
..2.3 Quarz
..2.4 Taktgenerator
3 DigitalIO
..3.1 Elektrische_Eigenschaften
..3.2 Pullup_Widerstaende
..3.3 Bitmasken_Eingang
..3.4 Bitmasken_Ausgang
..3.5 Tic_Tac_Toe
....3.5.1 DuoLEDs
....3.5.2 Schaltplan
....3.5.3 Spielfeld
....3.5.4 Anwahl
....3.5.5 Kontrolle
..3.6 Laboruebung2
..3.7 Laboruebung2_alt
4 PWM
..4.1 Prinzip
..4.2 Nutzen
..4.3 Generierung
..4.4 Programmierung
..4.5 Servos
..4.7 Laboruebung3
..4.8 LoesungUE3
..4.9 Uebung6
5 LichtKlangKugeln
..5.1 LED
..5.2 RGB
..5.3 Sensoren
..5.4 lautsprecher
..5.5 tonerzeugung
6 UART
..6.1 Bussysteme
..6.2 UART
..6.3 RS232
..6.4 Hardware
..6.5 Senden
..6.6 Hyperterminal
..6.7 Empfangen
..6.8 Broadcast
..6.9 Uebung4
7 Infrarot
..7.1 schalten
..7.2 seriell
..7.3 Uebung
8 OOP
..8.1 Probleme
..8.2 Konzept
..8.3 Statisch
..8.4 Datentypen
..8.5 RS232
....8.5.1 Prozedural
....8.5.2 Analyse
....8.5.3 Umsetzung
....8.5.4 Vererbung
....8.5.5 Statisch
....8.5.6 Performance
..8.6 Fahrzeug
9 ADW
..9.1 ADW
..9.2 Zaehler
10 Peripherie
..10.1 RS232Menue
..10.2 ASCIIDisplay
..10.3 Tastenmatrix
..10.4 Schrittmotor
..10.5 Zaehler
..10.6 Uebung7
11 SPI
..11.1 Testanordnung
..11.2 Register
..11.3 Test1
..11.4 Test2_Interrupt
..11.5 Test3_2Slaves
..11.6 Laboruebung
12 EEPROM
13 I2C
..13.1 MasterSendByte
..13.2 MasterSend2Bytes
..13.3 MasterReceiveByte
..13.4 MasterReceive2Bytes
14 Anwendungen
..14.1 Mechatroniklabor
....14.1.1 Biegelinie
....14.1.2 Ausbruchsicherung
....14.1.3 Einachser
....14.1.4 AV
....14.1.5 Vierradlenkung
....14.1.6 Kommunikation
..14.2 Sinuserzeugung
....14.2.1 Variante1
....14.2.2 Variante2
....14.2.3 Variante3
....14.2.4 Variante4
..14.3 Laboruebung8
..14.4 Loesung_Ue8
..14.5 SPI_Nachtrag
20 Xubuntu

1.9.5 Erster Versuch: Blink-LED

1.9.5 First attempt: Blinking LED (EN google-translate)

1.9.5 Pierwsza próba: migająca dioda LED (PL google-translate)


Warranty disclaimer: The following hard- and software solutions are supplied "as is" without warranty of any kind.


LED ergänzt: Kathode über 100Ω-Widerstand (braun-schwarz-braun) gegen Masse (GND) und mit der Anode an Pin 20 des ATmega32 angeschlossen (PD6).

Bild 1.9.5-1: LED ergänzt: Kathode über 100Ω-Widerstand (braun-schwarz-braun) gegen Masse (GND) und mit der Anode an Pin 20 des ATmega32 angeschlossen (PD6).

  1. Ergänzen der Grundschaltung um den Anschluß der LED gemäß obigem Bild.
  2. Nachfolgenden Quelltext unter /mnt-system/test.c speichern (z.B. mit Texteditor Leafpad).
  3. Root-Terminal öffnen, darin...
  4. ...mit cd /mnt-system in das Quelltextverzeichnis gehen,
  5. ...mit avr-gcc -O2 -mmcu=atmega32 test.c -o test.elf Quelltext kompilieren,
  6. ...mit avr-objcopy -O ihex -j .text -j .data test.elf test.hex .hex-Datei erzeugen,
  7. ...mit avrdude -c ponyser -p m32 -P /dev/ttyS0 -U flash:w:./test.hex:a Mikrocontroller flashen, wenn COM-Anschluß vorhanden, oder
  8. ...mit avrdude -c ponyser -p m32 -P /dev/ttyUSB0 -U flash:w:./test.hex:a Mikrocontroller flashen, wenn USB-Seriell-Umsetzer verwendet wird.
  • Hier noch einmal die Liste der Befehle, die im Root-Terminal ausgeführt werden:
cd /mnt-system
avr-gcc -O2 -mmcu=atmega32 test.c -o test.elf
avr-objcopy -O ihex -j .text -j .data test.elf test.hex
avrdude -c ponyser -p m32 -P /dev/ttyS0 -U flash:w:./test.hex:a
oder
avrdude -c ponyser -p m32 -P /dev/ttyUSB0 -U flash:w:./test.hex:a

Code 1.9.5-1: Befehlsliste für Test.

#include<avr/io.h>

int main()
{
    long pause;
    DDRD |= 0b01000000;
    while(1)
    {
        PORTD |= 0b01000000;
        for(pause=0;pause<50000;pause++)
            DDRD |= 0b01000000; //Dummy-Befehl
        PORTD &= 0b10111111;
        for(pause=0;pause<50000;pause++)
            DDRD |= 0b01000000; //Dummy-Befehl        
    }
}

Code 1.9.5-2: Quelltext test.c für eine blinkende LED bei PD6.