ATMEGA8 + Pullups by PD7 + PD6

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hallo,
ich will die Ports PD6 und PD7 als digitale Eingänge benutzen.
Dazu brauche ich aber den eingebauten Pullup.
Wie kann ich den einschalten ????

ACSR = 0x80 ;  -> Eigentlich sollte dann der Komperator aus sein, warum
gibt es dann keine Pullups ??


Eigentlich sollte das gehen Zitat Datenblatt :

Port D (PD7..PD0) Port D is an 8-bit bi-directional I/O port with
internal pull-up resistors (selected for each
bit). The Port D output buffers have symmetrical drive characteristics
with both high sink
and source capability. As inputs, Port D pins that are externally pulled
low will source
current if the pull-up resistors are activated.

Was muß ich noch beachten ???
AD Wandler abschalten ?


mfg Andreas Rütten



Re: ATMEGA8 + Pullups by PD7 + PD6

Quoted text here. Click to load it

DDRD.7 = 0;
DDRD.6 = 0; /*  port pins auf eingang */
PORTD.7 =1;
PORTD.6 =1; /* eingänge mit pullup */

Um die Pullups einzuschalten müssen die Ausgänge auf 1 gesetzt werden.

Gruß
Wolf


Re: ATMEGA8 + Pullups by PD7 + PD6


Wolf-Ruediger Juergens schrieb:

Quoted text here. Click to load it

Ja, aber das ist nicht das Problem ,
ich habe das berücksichtigt.
PORTD=0xff;
DDRD=0x14;



Quoted text here. Click to load it


Re: ATMEGA8 + Pullups by PD7 + PD6

Quoted text here. Click to load it

Dann bleibt nur noch das PUD BIT, das muß 0 sein. Siehe Tabelle 20 und
21 im ATMega8 Manual.

Gruß
Wolf


Re: ATMEGA8 + Pullups by PD7 + PD6


Wolf-Ruediger Juergens schrieb:

Quoted text here. Click to load it

Hmm,
Das setzt doch die Pullups für alle IO Ports oder ?
Also ich habe das Problem wirklich nur auf PD5 PD6

Ich verwende folgende Ini Routine ....

// Input/Output Ports initialization
PORTB=0xFF;
DDRB=0xff;

// Port C initialization
PORTC=0x38;
DDRC=0x30;

// Port D initialization
PORTD=0xff;
DDRD=0x14;

// External Interrupt(s) initialization
// INT0: Off
// INT1: On
// INT1 Mode: Falling Edge
GICR |=0x80;
MCUCR=0x08;
GIFR=0x80;

// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUXAD%C_VREF_TYPE;
ADCSRA=0x85;
SFIOR&=0xEF;

ACSR = 0x80 ;

Quoted text here. Click to load it




Re: ATMEGA8 + Pullups by PD7 + PD6

Quoted text here. Click to load it


Dann mach doch mal nur die beiden obigen Befehle im Init, wie sieht es
dann nach einem Reset aus?

Gruß
Wolf



Site Timeline