Forum: Compiler & IDEs Port A normal verwenden?


von Klaus (Gast)


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
      )

von Hc Z. (mizch)


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.

von Michael U. (amiga)


Lesenswert?

Hallo,

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

Gruß aus Berlin
Michael

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.