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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.