www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AT90S4433 -> PORTC/PINC


Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

an PORTD sind Taster, an PORTB sind LED's (gegen Masse).

Das folgende Programm funktioniert auch:

//-------------------
#include <avr/io.h>

int main(void)
{
  DDRB  = 0xFF;
  PORTB = 0x00;

  DDRD  = 0x00;
  PORTD = 0xFF;

  for(;;)
      PORTB = ~PIND;
}
//-------------------

Wird eine Taste gedrückt, leuchted die korrespondierende
LED.

Wenn ich jetzt aber statt PORTD den PORTC verwende:

//-------------------
#include <avr/io.h>

int main(void)
{
  DDRB  = 0xFF;
  PORTB = 0x00;

  DDRC  = 0x00;
  PORTC = 0xFF;

  for(;;)
      PORTB = ~PINC;
}
//-------------------

dann werden alle LED's eingeschaltet und kein
Tastendruck ausgewertet.

Spielt mir hier vielleicht der ADC einen Streich?
Muss man den ADC explizit ausschalten?

Ich dachte, man kann alle Ports prinzipiell als
digitale I/O's verwenden und wenn man was Spezielles
machen will, muss das extra konfiguriert werden.

Joline

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du AVCC/AGND angeschlossen?

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. Sollte man das tun?
Muss ich gleich noch mal im Datenblatt nachlesen.

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich das richtig lese, benötigt man AVCC/AGND nur wenn man den
ADC benutzen will. Aber genau das will ich ja nicht, sondern ich
brauche nur digitale Eingänge.

Autor: ---- (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lies noch mal nach und schliess es an!

----, (QuadDash).

Autor: Ingo Henze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lustigerweise steht im Datenblatt:

"AVCC is the supply voltage for Port A and the A/D Converter. If the
ADC is not used, this pin must be connected to VCC. If the ADC is used,
this pin should be connected to VCC via a low-pass filter."

Es soll doch aber Port C, und nicht Port A verwendet werden :-)

Aber egal, man sollte an AVCC tatsächlich die Betriebsspannung (und an
AGND auch GND) anschließen, "Port A" dürfte nur ein Druckfehler sein,
oder?

Gruß
Ingo

Autor: Joline (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke. Wenn man beides anschließt, funktioniert alles wie gewünscht.

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.