www.mikrocontroller.net

Forum: Compiler & IDEs Port auf Masse legen


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

wie schreibt man ein Programm in C das mir
den Port PC1 auf Masse legt?

Gibt es bereits irgendwo
eine fertige delay-Funktion?

Thomas

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich kann leider noch keine funktionierende Glaskugel und kann nicht
riechen was für einen Compiler oder welcher Mikrocontroller du
verwendest.
Also schreib erst mal ein Paar genauere Informationen in deine Fragen
und du erhälst sinnvollere Antworten!

Gruß, Florian

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"wie schreibt man ein Programm in C das mir
den Port PC1 auf Masse legt?"

PC1=0;


"Gibt es bereits irgendwo
eine fertige delay-Funktion?"

Viele Compiler enthalten sowas. Ist natürlich nicht sonderlich genau,
wird ja auch in der Regel nur dazu benutzt irgendwelche Minimalzeiten
(z.B. Pulsbreiten) zu garantieren.

Von sehr großen Delays (>10ms) ist abzuraten, sie behindern zu sehr den
Programmfluß, d.h. solche Programmer sind später nicht oder nur schwer
erweiterbar.


Peter

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich benutze WinAVR.
Möchte die Pins PC0 bis PC2 meines
ATmega32 auf Masse legen, schreibt man
das so?
Zumindest wirds compiliert.

#include <avr/io.h>

int main(void)
{
  //Ausgang
  DDRC = 0x0F;

  //HIGH setzen
  PORTC = 0x0F;

return 0;
}

Flash ich dieses Programm
auf den Controller passiert
überhaupt nix. Gibt da noch
etwas das ich einstellen
oder setzen muß?

Tom

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...auf Masse legen...//HIGH setzen..."

was denn nun ?

Entscheide Dich.

Außerdem: main-Loop vergessen.


Peter

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommentar HIGH war Schrott, sorry aber
bin Anfänger.
Hab das Programm jetzt folgendermaßen
geändert. Ist das korrekt?


#include <avr/io.h>

 int main(void)
 {

 //Ausgang
  DDRC = 0x0F;

  while(1)
  {
  //Low setzen
        PORTC = 0x00;
  }
  return 0;
 }

Nach dem flashen liegt jetzt allerdings
nur PC1 auf Masse! Muss man jeden Port
einzeln setzen? Mit der Zuweisung PC0 = 0
kann ich aber nicht compilieren.

Tom

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FAQ beachten:

http://savannah.nongnu.org/download/avr-libc/doc/a...

Die JTAG-Sache dürfte auch für Deinen ATmega32 relevant sein.

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.