mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ausgang in C für 2sec setzen


Autor: Schüler F.F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
möchte mit C einen kleinen Roboter programmieren der frei herumfährt;
hat jemand ein fertiges Programm oder kann mir jemand helfen:
1. Ausgangs Port (Motor) für 2 Sekunden setzen, wie lautet die
Anweisung?
2. Wie kann ich 2 Signal(eingänge) einlesen mit Abbruchbedingung?
MfG

Autor: Hubert.G (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachdem du in C anscheinend nicht sehr fit bist würde ich dir raten
zuerst mal das AVR-GCC-Tutorial durchzuarbeiten (auf dieser Seite links
oben), dann haben sich einige Fragen von ganz alleine gelöst, beim Rest
wird dir gerne geholfen.

Autor: Franjo Rupcic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also zuerst denke ich solltest du den Leuten hier mittelen mit welchem
µC du das ganze vor hast und eventuell welches Board,
Entwicklungsumgebung etc.

Für die 2 Sekunden benötigst du einen Timer oder zum Anfang einfacher
eine delay Funktion (wait) wie z.B.

static void delay(void )
{
  volatile int i,j;

  for (i=0;i<500;i++)
    for (j=0;j<1000;j++);
}

zu deiner Frage 1: Ausgangs Port (Motor)

einen PIN als OUTPUT definieren .. doch du solltest dir dann im
Datenblatt ensprechend anschauen wieviel Spannung und Strom dann am PIN
anliegen und ob das vür den Eingang des Motors den du verwändest reicht
oder du noch zusätzlich eine Schaltung mit entsprechender
Strom/Spannungsversorgung brauchst

zu Frage 2: Wie kann ich 2 Signal(eingänge) einlesen mit
Abbruchbedingung?

Ebenfalls mit PINS die als Eingang definiert sind. Das einlesen kannst
dann eventuell ebenfalls einfach tun mit

//warten sollange Eingang nicht gesetzt
while(INPUT1 == 0){}

...

oder mit einem Externen Interrupt

Autor: Schüler F.F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, vor hab ich das mit einem ATmega8 µC auf einem Anfänger
MyAVR-Board. Entwicklungsumgebung ist AVR Studio 4.12. Soll also ein
Roboter (wie so ein Panzer, mit Ketten und so, also Motor links&rechts)
werden, der durch die gegen fährt. Vorne hab ich Ihm drei
Infrarot-Sensoren drangebaut; einer direkt vorne und die anderen beiden
vorne an den Ecken. Und dann wenn der Robi Hindernis erkennt z.B. die
Sensoren "vorne" und "rechts" sind geschaltet dann soll er anhalten
Sekunde später nach links drehen (Motor links läuft rückwärts, Motor
rechts vorwärts für 1sek (nicht 2 wie oben angegeben), und dann färt er
wieder gerade aus.
Also wie das Programm aussehen soll weiß ich wohl nur die genauen
Befehle nicht. Hab mir ein C-Tutorial durchgelesen, bin dann aber mit
den dort erwähnten Ports, Pins und Registern voll durcheinander
gekommen, weil irgendwie steht in zwei Kapiteln dasselbe aber doch
irgendwie anders.
Hilfe wäre sehr hilfreich:-)
MfG

Autor: Uwe Stark (uwe_stark)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie ich sehe bist du ein Anfänger in sachen Mikrcontroller, fange erst
mal ganz klein an und nicht gleich einen Roboter. Dann solltest du
ausser C auch die Datenblätter lesen können damit du auch weisst was
der Controller überhaupt kann und welche Pins wofür geeignet sind.

Gruß
Uwe

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.