4.4.1   Programmieren der Front-LED am ASURO
    
Problembeschreibung
Schriftliche Problemlösung
Technische Aspekte zur Problemlösung                                 <= zurück zur
Technische Informatik
Grafische Problemlösung
Ausblicke
Vertiefungsfragen
Schülerprojektdokumentationen                       weiter zum nächsten Projekt =>    Programmieren eines Strobe-Lights am ASURO
 
an den
 Anfang
Problembeschreibung

Nach dem Einschalten soll die rote LED vorne
unterhalb des ASUROs dauerhaft leuchten.
 
an den
 Anfang
Schriftliche Problemlösung


in Kurzform:
                    erste Befehl: initialisiere PortD6                    zweiter Befehl: schalte PortD6 an             dritter Befehl: while (1)                 
                      (PortD6 auf Ausgang setzen)                                    (Front LED an)                                     (Endlosschleife)


 
 
an den
 Anfang
Technische Aspekte zur Problemlösung



zum Vergrößern auf die Abbildung klicken

Simulation mit PSPICE

 
  
an den
 Anfang
Arbeiten mit ASURO-Funktionen auch im AVR Studio



1.   asuro.h (aus FirstTry) in obiges Verzeichnis kopieren

2.   asuro.c (aus FirstTry, hier zum Download bereits mit geändertem Pfad: #include "avr/asuro.h" in Zeile 29)
      mit in den Projektordner, z. B. "projekt_front_led" kopieren
                                                                                                
3.   => rechte Maustaste auf Source Files, dann Add Existing Source File (s) => asuro.c



4.   Im Quelltext asuro.h mit <avr/asuro.h> einbinden

 

   
an den
 Anfang
Grafische Problemlösung mit ASURO-Funktionen - der Programmablaufplan


Das erste Symbol [ start main ] stellt den Start der Hauptfunktion dar. 

Mit dem darauf folgenden Symbol
[ Init() ] wird der erste Prozess des Systems beschrieben, der alle weiteren Prozesse startet.
Es werden folgende Prozesse gestartet:
Um diese zu visualisieren, benutzt man die einfachen Rechtecke.

1. Infrarot wird eingeschaltet


2. RS 232 (serielle Schnittstelle) wird eingeschaltet

3. .... (
es folgen viele weitere Befehle)

4. Switchschalter wird eingeschaltet   


5. Switchfunktion ebenfalls eingeschaltet



Sobald diese Prozesse ausgeführt wurden, wechselt man automatisch in die nächste Funktion. Jetzt wird der bereits vorgeschriebene Front LED Befehl 
[
Front LED (on)] ausgeführt!

1. Port D6 auf Ausgang gerichtet

2. Port D6 eingeschaltet.

Am Ende kommen main-Funktion und die damit verbundenen Befehle in eine Endlosschleife [ while (1) ].

Nur solange diese Schleife auf 1 steht (1 = wahr), ist die main-Funktion gezwungen  auf diesem Befehl zu verweilen.


Programmablaufplan als Dateityp *.dia


produced by S.M., H.L.,
D.N., J.F., N.S., M.P.
                                                                          
                                                                                                 
 

FrontLED_vorschau

zum Öffnen der größeren Darstellung im pdf-Format auf die Abbildung klicken

   
an den
 Anfang
Umsetzung in den Quelltext mit ASURO-Funktionen

hier noch mit dem Notepad ++ (winAVR) und speziellem Makefile

 
 #include <asuro.h>                     // asuro.h einbinden, Header-bzw. Bibliotheksdatei
 
 int main ( void )                      // jedes C-Programm hat eine main-Funktion
 {

     Init ();                           // Funktionen definieren
     FrontLED ( ON );                   // Front LED einschalten

     while ( 1 )                        // Endlosschleife
     {                                  // solange Bedingung wahr (1 = wahr)
         ;                              // tue nichts
     }
    
     return 0;                          // Der Rückgabewert der main-Funktion
 }                                      // mit Datentyp int gibt 0 zurück

   

 
 

 
    

an den
 Anfang
Grafische Problemlösung "ganz dicht am Mikrocontroller"

 

Programmablaufplan als Dateityp *.dia

und hier die Software, um den Programmablaufplan zu bearbeiten:
Dia für Windows

                                                                                                 
 

   

 

an den
 Anfang
Umsetzung in den Quelltext "ganz dicht am Mikrocontroller"



 
#include <avr/io.h>                // io.h einbinden, Header-bzw. Bibliotheksdatei
 
 int main ( void )                  // jedes C-Programm hat eine main-Funktion
 {                                  // beim Aufrufen der main-Funktion wird nichts
                                    // (engl. void) übergeben
 
     DDRD  = 0b01000000;            // Daten-Richtung einstellen, Bit 6  auf 1 (Ausgang)
     PORTD = 0b01000000;            // Port anschalten, Port D6
                                    // Zählung von rechts beginnend mit Bit 0

     while ( 1 )                    // Endlosschleife
     {                              // solange Bedingung wahr (1 = wahr)
         ;                          // tue nichts
     }
    
     return 0;                      // Der Rückgabewert der main-Funktion
 }                                  // mit Datentyp int gibt 0 zurück


 

   
an den
 Anfang

Vertiefungsfragen zum Thema

 

1. Frage                  Beschreiben Sie, wie man im AVR Studio ein neues Projekt anlegt.

=> Antwort              - Im Welcome Fenster den Button "New Projekt" anklicken.
                              - Projekt Typ, Namen und Speicherort auswählen.
                              - Im nächsten Fenster Plattform und Chip auswählen.

2. Frage                  Beschreiben Sie den Programmablauf des Projektes Front LED on mit eigenen Worten.

=> Antwort              - Der Port D6 wird initialisiert und damit auf Ausgang gesetzt.
                              - Der Port D6 wird eingeschaltet, die Spannung wird auf die Front LED geschaltet, die            
                                daraufhin leuchtet.  

                              - Es wird eine Schleife mit der Bedingung 1 (immer wahr) geschaltet (Endlosschleife). So lange
                                die Bedingung erfüllt ist,  tut der Asuro nichts anderes.


3. Frage                 Nennen Sie die zwei Befehle, mit denen man sagt, was der Port D6 tun soll im Projekt   "Front LED on".

=> Antwort              -   DDRD   = 0b01000000;

                              -   PORTD = 0b01000000;

4. Frage                Mit welchen Befehlen werden die "ASURO-Funktionen" eingebunden?

=> Antwort            -    #include <avr/asuro.h>

                            -    Init();

5. Frage               Suchen Sie die Fehler! (3 Fehler)

   #include <asuro.hex>                // asuro.h einbinden, Header-bzw. Bibliotheksdatei
 
   int main ( void )                   // jedes C-Programm hat eine main-Funktion
   {
       Init ();                        // Funktionen definieren
       FrontLED ( ON );                // Front LED einschalten

       while ( 0 )                     // Endlosschleife
       {                               // solange Bedingung wahr (1 = wahr)
         ;                             // tue nichts
       }       
   
       return 0;                       // Der Rückgabewert der main-Funktion
   }                                   // mit Datentyp int gibt 0 zurück


=> Antwort   

    #include <asuro.h>                  // asuro.h einbinden, Header-bzw. Bibliotheksdatei
 
   int main ( void )                    // jedes C-Programm hat eine main-Funktion
   {
       Init ();                         // Front LED einschalten
       FrontLED ( ON );                 // Funktion definieren

       while ( 0 )                      // Endlosschleife
       {                                // solange Bedingung wahr (1 = wahr)
           ;                            // tue nichts
       }
   
       return 0;                        // Der Rückgabewert der main-Funktion
   }                                    // mit Datentyp int gibt 0 zurück

 


   

Abgeschlossene Schülerprojekte:





Stand:
01.12.2007

 <= zurück zu Technische Informatik