mikrocontroller.net

Forum: Compiler & IDEs Port A normal verwenden?


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, hab da mal ne Frage und zwar möchte ich auf einem Atmega 16 die 
PortsA und C als Eingänge benutzen, hab aber das Gefühl, dass Port A 
nicht wirklich erklannt wird.
Muss ich da was umnstellen, damit er als normal Port erkannt wird?
Es werden nur taster angeschlossen.

Und wo muss ich AREF anschließen ?

Glg Klaus

Ach ja diesen Code Ausschnit bezieh sich auf PortA
if(                                // Wenn

      ! (
     ( PINA & ( 1 << PA1 ) )         // Eingang1
        &&                             // UND
       ( PINA & ( 1 << PA2 ) )         // Eingang2
        &&                             // UND
       ( PINC & ( 1 << PC2 ) )          // Eingang3
      &&                             // UND
       ( PINA & ( 1 << PA3 ) )         // Eingang4
      &&                             // UND
       ( PINA & ( 1 << PA4 ) )         // Eingang5
      &&                             // UND
       ( PINA & ( 1 << PA5 ) )         // Eingang6
      &&                             // UND
       ( PINA & ( 1 << PA6 ) )         // Eingang7
      &&                             // UND
       ( PINA & ( 1 << PA7 ) )         // Eingang8
        &&                             // UND
       ( PINA & ( 1 << PA0 ) )         // Eingang9
      &&                             // UND
       ( PINC & ( 1 << PC7 ) )         // Eingang10
        &&                             // UND
       ( PINC & ( 1 << PC6 ) )         // Eingang11
      &&                             // UND
       ( PINC & ( 1 << PC5 ) )         // Eingang12
      &&                             // UND
       ( PINC & ( 1 << PC4 ) )         // Eingang13
      &&                             // UND
       ( PINC & ( 1 << PC3 ) )         // Eingang14
     )
  
      )  


Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aref gehört normalerweise mit 100n gegen Masse geklatscht, hat aber mit 
Deinem Problem nichts zu tun.

Port A ist - wenn Du es nicht anders initialisiert hast (DDR, DIDR, ..) 
Input.  Davor (also nach dem Reset) ist es normaler Input.

Obiges lässt sich einfacher schreiben:
 if (!((PORTA == 0xff) && ((PORTB & 0xfc) == 0xfc))) 

Um alle Pins von Port C zu verwenden, musst Du JTAG abgestellt haben - 
aber Deine Frage ging ja nach Port A.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

und nicht vergessen, AVCC anzuschließen (das GND auch).

Gruß aus Berlin
Michael

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.