Forum: Mikrocontroller und Digitale Elektronik Problem mit Eingängen ATtiny15l


von Küdens (Gast)


Lesenswert?

hiho @ all,

nach einer Pause habe ich ein altes Projekt von mir wieder 
herausgekramt, an welchem ich vor längerer Zeit gearbeitet habe. Da ich 
mich bei diesem zuletzt ein wenig in meiner Programmierung festgefahren 
hatte, wollte ich nun anstatt den externen Interrupt zu nutzen einfach 
standardmäßig 2 Eingänge verwenden.


Ich nutze einen ATtiny15L.

Laut Datenblatt geht meiner Meinung nach hervor, das man PB0-PB5 als 
Ein/-Ausgänge nutzen kann. Mit einem kleinen Testprogramm konnte ich die 
einzelnen PINs als Ausgang ansprechen. Leider habe ich ein Problem die 
Pins als Eingänge zu verwenden.

Mein Testprogramm hierzu:
1
ldi r16, 0b00000001 //Vorinitialisierung des Ports-PIN 0 wird Ausgang
2
out DDRB, r16 //Vorinitialisierung des Ports
3
4
main:
5
6
sbis PORTB, 3 //schaue ob PIN 3(in dem Fall jetzt) gesetzt is
7
rjmp main //wenn "nein" springe hoch zu main
8
sbi PORTB, 0 //wenn "ja", setzte Pin 0 auf PORTB
9
rjmp main

Ja was soll ich sagen, wenn ich auf Pin3 ein highsignal geben, bleibt 
die Ausgang low und wird nicht gesetzt.

Das Eingangssignal erzeuge ich mit einen entprelltem Taster welchen ich 
mit VCC des Mikroprozessors und mit Pin3 verbunden habe. Ich habe auch 
schon gemessen, dass bei betätigen des Tasters die 5V an Pin3 anliegen.

Weiß jemand was ich falsch mache? Oder kann man mit dem ATtiny15L gar 
nicht standardmäßig auf Eingänge zugreifen!?

von AVR-User (Gast)


Lesenswert?

Ich zitiere aus dem Tutorial:

"Dabei ist wichtig, zur Abfrage der Eingänge nicht etwa Portregister 
PORTx zu verwenden, sondern Eingangsregister PINx. Die Abfrage der 
Pinzustände über PORTx statt PINx ist ein häufiger Fehler beim 
AVR-"Erstkontakt" "

von Küdens (Gast)


Lesenswert?

werde ich gleich ma probieren, obwohl es in der Simulation so geklappt 
hat :(

von Küdens (Gast)


Lesenswert?

Okay, es klappt...


nunja ich habe immer mal ab und zu etwas programmiert und angenommen es 
wäre so richtig gewesen.

Ich werde mich in Zukunft zwingen Tutorials zu lesen.

Danke dir trotzem.

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.