Forum: Mikrocontroller und Digitale Elektronik Attiny2313A Eingangsports


von Rainer V. (Gast)


Lesenswert?

Liebe Leute,

fange gerade mit Assemblerprogrammierung an und habe sofort Problem mit 
Attiny auf Pollin-Board. Die drei Taster sind mit jeweils 100K gegen Gnd 
terminiert. Wenn ich einen Tasterstatus einlesen will, dann ist dieser 
immer auf "1" . T offen ca. 2,7V, T geschlossen 5V. Sicher ist das ein 
triviales Problem, aber ich kann die Ports natürlich nicht einlesen. ist 
das bekannt oder verstehe ich etwas grundsätzliches nicht?
Danke....

: Verschoben durch User
von Axel R. (Gast)


Lesenswert?

Da werden die internen Pullups aktiv sein, die dann mit den 100K gegen 
GDN einen Spannungsteiler bilden. Schalte diese mal testweise aus.

von Peter X. (peter_x)


Lesenswert?

Rainer Von römer schrieb:
> dann ist dieser
> immer auf "1" .

Das Schaltbild des Evaluation-Boards könnte sehr nützlich sein.

von Axel R. (Gast)


Lesenswert?

mit jeweils 100k gegen GND terminiert == Widerstand gegen Masse.
Wenn er drückt und 5V hat == Schalter gegen Plus.
Wenn er 2.7V misst == PullUp (typ.80-120K)aktiv und 100K gegen GND.
> Das Schaltbild des Evaluation-Boards könnte sehr nützlich sein.
https://www.mikrocontroller.net/articles/Diskussion:Pollin_ATMEL_Evaluations-Board

von Rainer V. (Gast)


Lesenswert?

der Link von axelr war sehr hilfreich. Die Beschaltung der Taster ist 
auch bei mir so. Leider ist das Problem aber noch nicht gelöst. Habe 
zwischenzeitlich 2 Dinge versucht. Habe einen PullDown Widerstand auf 
10K reduziert. Das hat funktioniert. Hatte danach einen Nullpegel von 
0,5V. Dies geschah in Zusammenhang mit USART-Initialisierung. Taster 
gedrückt - Zeichen an Terminal gesendet.
Dann habe ich mich an die Ansteuerung eines LCD-Displays gemacht. 
Gleiche simple Überlegung. Taster gedrückt - Zeichen auf LCD ausgeben. 
Hat auch erst funktioniert. Da ich aber dann den 2ten Taster mit 
reingenommen habe und ein paar logische Fehler eingebaut hatte, bin ich 
erst einmal nicht auf die Taster gestossen. Messen brachte zu Tage, dass 
die Portpegel nun immer 0V waren. Auch das Abstellen der internen 
PullUps hat nichts gebracht. Nun frage ich mich, Taster oder Attiny 
kaputt?
Muß ich noch weiter drüber nachdenken :-)

von Georg G. (df2au)


Lesenswert?

Rainer Von römer schrieb:
> Nun frage ich mich, Taster oder Attiny
> kaputt?

Ich tippe eher auf einen Programmfehler in Zeile 42

von Rainer V. (Gast)


Lesenswert?

Hi Georg, ja die verflixte 42ste Zeile. Habe aber mittlerweile das 
Progrämmchen so weit runtergekocht, dass eigentlich bei gedrücktem 
Taster nur noch eine LED aufleuchten sollte! Tut sie aber nicht, weil am 
Tasterport nix als 0V anliegen. Überlege schwer, ob ich nicht erst mal 
meinen 2ten Attiny einstecke. Aber - und ich schreibe es echt ungern - 
es hat ein paar mal funktioniert. Muß also weiter denken ...

von Kai M. (kai_mauer)


Lesenswert?

Rainer Von römer schrieb:
> Hi Georg, ja die verflixte 42ste Zeile.

Er will Deinen Quelltext sehen. Das sollte diese verklausulierte 
Andeutung
ausdrücken.

Rainer Von römer schrieb:
> Nun frage ich mich, Taster oder Attiny
> kaputt?

Prüfe die Taster mit dem Durchgangsprüfer, das gibt Gewissheit.

Baue die Tasterei nach diesem Artikel um:
http://www.mikrocontroller.net/articles/Diskussion:Pollin_ATMEL_Evaluations-Board

Das erspart jede Menge Sackgang und Verdruss.

von Thomas (kosmos)


Lesenswert?

PUD Bit setzen, suche einfach im Datenblatt danach.

von Rainer V. (Gast)


Lesenswert?

Hi, habe jetzt erst einmal die Taster des Pollin-Boards auf Aktiv-Low 
umgebaut. Kann ich nur jedem empfehlen, der mit dem Pollin-Board 
arbeiten will! (Link von axelr)
Und mein Problem lag tatsächlich am defekten Taster1. Wenn ich per 
Prüfleitung den Eingang auf Low ziehe, dann funzt auch mein 
Progrämmchen. Desgleichen, wenn ich T2 oder T3 abfrage.
Jetzt noch eine Frage zum Entprellen. Ich mache die Abfrage auf Low am 
Portpin mit

[GuckObStarten:
    sbic  pinD, Taster2  ;wenn Taster Ta2=0 gedrückt
    rjmp  GuckObStarten]

Da sollte Entprellen doch nicht nötig sein?!

Danke Allen für die Antworten und wenn noch Interesse an meinem Code 
besteht, werde ich ihn einstellen, wenn die LCD-Ansteuerung so funzt, 
wie ich mir das vorgestellt habe.

von Axel R. (Gast)


Lesenswert?

Wenn Du sbic ein paar mal untereinanderschreibst. muss zumidest in der 
Zeit, ind er die Zeilen abgearbeitet werden der pin auf Low liegen.
1
[code]
2
GuckObStarten:
3
sbic  pinD, Taster2  ;wenn Taster Ta2=0 gedrückt
4
sbic  pinD, Taster2  ;wenn Taster Ta2=0 gedrückt
5
sbic  pinD, Taster2  ;wenn Taster Ta2=0 gedrückt
6
sbic  pinD, Taster2  ;wenn Taster Ta2=0 gedrückt
7
sbic  pinD, Taster2  ;wenn Taster Ta2=0 gedrückt    
8
rjmp  GuckObStarten
9
[/code]

PS ich habe mal "[code]" stehen lassen. So ist das gemeint mit dem 
Syntaxt.
Offenbar bist Du da durcheinander geraten?
Ich habs jetzt hier zusätzlich noch mal in "[pre]..[/pre.]" gesetzt, 
damit man's sieht

[ingrid]
Eine richtige Entprellung ist das natürlich NICHT!
[/ingrid]

von Rainer V. (Gast)


Lesenswert?

Hi Leute und axelr,

danke, und ich gebe dir,axelr, recht, dass das keine rechte Entprellung 
ist. Aber nach dem ersten Low muß das Programm in ein Unterprogramm 
gehen und etwas (viel) machen, bevor ich in die Tasterabfrage 
zurückgehe. Nicht so etwas wie LED an Port x-an... Zur Sicherheit warte 
ich nach Ende des U-Programms noch 5mS. Das funzt! Aber mittlerweile 
sind auch die 2 anderen Taster defekt! Hätte ich nicht erwartet und ist 
voll blöd!
Und kann einen ganz schön Nerven kosten. Die schalten jetzt alle nur 
noch nach Lust und Laune! Hardware, die ich fast nie verdächtige (en 
mußte) aber so isses!

Danke Rainer

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.