mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Simple Tiny13 Schaltung - funktioniert nicht


Autor: Benjamin Barth (revolutionfx)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an alle,
ich bin gerad dabei meine ersten Geh-Versuche auf dem ATTiny13 zu 
machen.
Habe dazu ein einfaches Programm in WinAVR unter AVRStudio geschrieben, 
simuliert (funktioniert) und auf den µC geladen.
Darauf hin habe ich auf einem Breedboard die Schaltung zusammen 
gestöpselt.

Wenn ich jetzt Saft drauf gebe blinken die LEDs sofort (evtl. wie in der 
ersten If-Funktion beschrieben), die Schalter haben keinen Effekt.

Habe darauf hin den Tiny mal mit einem Multimeter nachgeprüft, jeder Pin 
führt 5V (Programm-Fehler?).

Vllt. guckt mal jemand drüber und gibt mir nen Tipp.

Vielen Dank
Gruß ben

Autor: Jonathan Strobl (joni-st) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

jeder Pin deines µC's hat einen internen Pullup, der offene Eingänge auf 
5V legt. Dieser ist offensichtlich angeschaltet, da du immer 5V misst. 
Schalten jetzt deine Taster, bleiben es immer noch 5V. Entweder du 
schaltest den integrierten Pullup ab und machst einen externen Pulldown 
dran (kompliziert), oder du lässt deine Schalter nach GND schalten 
(einfach). Normalerweise lässt man Schalter immer nach GND schalten, das 
geht einfacher und besser.

Gruß
Jonathan


P.S.: Die Pullups werden mit dem PORT-Register geschaltet (wenn der Pin 
eine Eingang ist). PORTB.x = 0: Pullup aus, PORTB.x = 1: Pullup an.

Autor: Jonathan Strobl (joni-st) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Übrigens: wenn du den RESET-Pin wirklich wie im Schaltplan auf GND 
schaltest, sollte da eigentlich gar nix blinken...

Gruß
Jonathan

Autor: Benjamin Barth (revolutionfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja stimmt, Reset auf Vcc, mein Fehler.

Ok also Pullups für Eingänge An
PORTB |= (1<<PB3)|(1<<PB4);

If-Fkt. Parameter auf
if(!PINB & (1<<PIN3/bzw PIN4))

und die Taster einfach auf GND anstatt Vcc legen, oder?

gruß ben

Autor: philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja

Autor: Jonathan Strobl (joni-st) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, ich kann leider kein C, aber wenn diese if-Zeile nun bei einem 
Low-Pegel deine Routinen ausführt, dann stimmt jetzt alles.

Gruß
Jonathan

Autor: Benjamin Barth (revolutionfx)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, Problem ist jetzt nur das die Simulation jetzt nicht mehr 
funktioniert.

gruß ben

Autor: Jonathan Strobl (joni-st) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Teste es einfach direkt auf dem µC. Nur so kann man ganz sicher sein, 
dass es mit der Hardware geht.


P.S.: Zum Testen sollte man besser noch Schutzwiderstände vor Ein- und 
Ausgänge schalten. Nur zur Sicherheit, falls man doch mal was falsch 
macht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.