mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny13 BASCOM programm geht nicht


Autor: Jay Dragon (jaydragon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe volgendes programm geschrieben und es geht nicht was mache ich 
falsch?
$regfile = "attiny13.dat"
$crystal = 1000000

Config Portb.1 = Output
Config Portb.2 = Output
Config Portb.3 = Input
Config Portb.4 = Input

Portb.1 = 0
Portb.2 = 1


Do

If Portb.3 = 1 Then Portb.1 = 1

If Portb.4 = 1 Then Portb.2 = 1

Waitms 1

Loop

End

Fehlerbeschreibung: Wenn ich ein von den beiden Input Pins gegen masse 
lege will der Output nicht auf High gehen.

MfG
Jay

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn ich ein von den beiden Input Pins gegen masse lege will der
> Output nicht auf High gehen.

> If Portb.3 = 1 Then Portb.1 = 1

Hab keine Ahnung von Bascom. Aber muss nicht der Eingang auf High
gelegt werden, damit sich am Ausgang etwas ändert?

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau nur nicht ins Datenblatt des Tiny13! Denn ein Blick ins Datenblatt 
des Controllers könnte Dir Verraten, dass Eingänge nicht PORT, sondern 
PIN heißen. Ich vermute mal, dass BASCOM diese Bezeichnungen auch 
verwendet. Du könntest auch feststellen, dass der Tiny13 nicht mit 1MHz 
rennt, sondern mit 1,2MHz.

Also, bitte auf keinen Fall ins Datenblatt schaun, das ist nur was für 
dumme ASM-Programmierer...

...

Autor: Paul Baumann (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Nimm diesen, den ich angefügt habe.

MfG Paul

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P.S.
Guck mal in der Bascom-Hilfe nach "Config Port". Da steht es auch drin, 
was Hannes sagte. Ich habe es bei Dir nicht geändert, da ich nicht weiß, 
was Du damit noch machen willst.

Paul

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Config Portb.3 = Input
http://www.roboternetz.de/wissen/index.php/Bascom#...

Config Pinb.3 = Input
Config Pinb.4 = Input

> Wenn ich ein von den beiden Input Pins gegen masse...

Wieso sollte der Eingangspin auf HIGH (1) gehen, wenn du ihn auf Masse 
legst? Masse ist LOW, 0 , Nada. Wenn du durch Verbindung mit Masse 
schalten willst, arbeitest du im Active Low Betrieb 
(http://www.mikrocontroller.net/articles/AVR-GCC-Tu...)

Die Hardware müsste fürs Schalten gegen Masse eher so aussehen: (2. Bild 
bei http://www.mikrocontroller.net/articles/AVR-Tutori... 
eventuell mit einer Besonderheit bei R2!!!) und die Stelle im 
Programmcode so:

If Pinb.3 = 0 Then Portb.1 = 1

Und du musst dann eventuell (deinen Hardwareaufbau hast du ja nicht 
beschrieben/Schaltplan fehlt) was mit den Internen Pullup Widerständen 
an beiden Pins einstellen damit bei fehlender Masse eine 1 anliegt.

Hier die Besonderheit bei R2 im Link oben: den Zweig mit R2 und Vcc hast 
du durch das Zuschalten des internen Pullups "in den µC" verlegt.

Portb.3 = 1
Portb.4 = 1

> Loop

In deiner Schleife stellen sich Portb.1 und Portb.2 nie mehr auf 0 
zurück. Einmal Programm ausprobiert, bleiben die Portpins auf 1.

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.