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


von Joline (Gast)


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

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hast du AVCC/AGND angeschlossen?

von Joline (Gast)


Lesenswert?

Nein. Sollte man das tun?
Muss ich gleich noch mal im Datenblatt nachlesen.

von Joline (Gast)


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.

von ---- (Gast)


Lesenswert?

Lies noch mal nach und schliess es an!

----, (QuadDash).

von Ingo Henze (Gast)


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

von Joline (Gast)


Lesenswert?

Danke. Wenn man beides anschließt, funktioniert alles wie gewünscht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.