Atmega8 interne Pullups undefiniert, extern geht

OP #1139603
Lesenswert?
• ▲
▼
hallo, ich  wollte gerade einen solches 4-wege kreuz+taster (von einem 
handy) an einen atmega8 schalten, gesagt, getan.

gnd=gnd
die anderen 5 anschlüsse auf PD2-6 am atmega8

dann
  DDRD &= ~(1<<PD2);
  DDRD &= ~(1<<PD3);
  DDRD &= ~(1<<PD4);
  DDRD &= ~(1<<PD5);
  DDRD &= ~(1<<PD6);

dannach

  PORTD |= (1<<PD2) | (1<<PD3) | (1<<PD4) | (1<<PD5) | (1<<PD6);


und: die dinger schwingen, gehen undefiniert und nix passt ... also 
extern mit 10K gegen +3,3V verbunden,

  PORTD |= (1<<PD2) | (1<<PD3) | (1<<PD4) | (1<<PD5) | (1<<PD6);

raus, und: es geht ...

jetzt versteh ich die welt nichtmehr, es handelt sich um einen atmega8l8 
der mit ca. 3,2 volt betrieben wird ...

abgefragt wird in der art:

if(PIND&(1<<PD2))ret|=0b10000000; // links
if(PIND&(1<<PD3))ret|=0b00100000; // oben
if(PIND&(1<<PD4))ret|=0b00010000; // rechts
if(PIND&(1<<PD5))ret|=0b01000000; // unten


kann mir da einer helfen?, oder sollte man generell die internen pullups 
lieber nicht verwenden...

das atmega8l8 läuft zusätzlich mit 1mhz SPI (LCD) und 9600 baud uart 
ständig nebenher, kann es sein, das dort bei verwendung der internen 
etwas dazwischenfunkt ...

ich wollte die externen bauteile so niedrig wie möglich halten, da ich 
ziemlich wenig platz für das fertige teil habe.
OP #1139721
Lesenswert?
• ▲
▼
entprellen tu ich softwaremässig, da es ziemlich unkritisch ist, was 
hier passiert, lcd-mässig (spi) wird da nix überschrieben, das problem 
ist halt, das die bits kippen, ohne das man dem schalter auch nur 
anguckt, keine ahnung was da los ist, überlege momentan alles in SMD zu 
machen, dann stören die 5 extra wiederstände nicht, oder smd 
wiederstände zu nehmen, das geht zur not auch, aber eigenartig ist es 
trotzdem ...
einzig und allein PD0 und PD1 ist noch auf D angeschlossen, wobei PD1 
eine LED ist, die an/aus ist, aber auf "dauer" an/aus und PD0 ist die SS 
Leitung vom Original Gerät, das ding schwingt ständig, da ich mich mit 
einem multiplexer zwischen LCD und bestehendes gerät gehangen habe, PD0 
ist dann zum "hören" ob ich sicher umschalten kann .... das könnte man 
ja mal auf einen anderen pin legen, der weiter weg ist, aber eigentlich 
dürfte das nicht sein ...

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