Port A normal verwenden?

Gast #1602198
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
1
if(                                // Wenn
2

3
      ! (
4
     ( PINA & ( 1 << PA1 ) )         // Eingang1
5
        &&                             // UND
6
       ( PINA & ( 1 << PA2 ) )         // Eingang2
7
        &&                             // UND
8
       ( PINC & ( 1 << PC2 ) )          // Eingang3
9
      &&                             // UND
10
       ( PINA & ( 1 << PA3 ) )         // Eingang4
11
      &&                             // UND
12
       ( PINA & ( 1 << PA4 ) )         // Eingang5
13
      &&                             // UND
14
       ( PINA & ( 1 << PA5 ) )         // Eingang6
15
      &&                             // UND
16
       ( PINA & ( 1 << PA6 ) )         // Eingang7
17
      &&                             // UND
18
       ( PINA & ( 1 << PA7 ) )         // Eingang8
19
        &&                             // UND
20
       ( PINA & ( 1 << PA0 ) )         // Eingang9
21
      &&                             // UND
22
       ( PINC & ( 1 << PC7 ) )         // Eingang10
23
        &&                             // UND
24
       ( PINC & ( 1 << PC6 ) )         // Eingang11
25
      &&                             // UND
26
       ( PINC & ( 1 << PC5 ) )         // Eingang12
27
      &&                             // UND
28
       ( PINC & ( 1 << PC4 ) )         // Eingang13
29
      &&                             // UND
30
       ( PINC & ( 1 << PC3 ) )         // Eingang14
31
     )
32
  
33
      )
#1602218
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:
1
 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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren